Cómo copiar y pegar texto en Bash Shell de Linux

Cómo copiar y pegar texto en Bash Shell de Linux

Conclusiones clave

  • Ctrl+C y Ctrl+V, que se utilizan comúnmente para copiar y pegar en aplicaciones gráficas, no funcionan en el símbolo del sistema del shell Bash.
  • Para copiar y pegar en el símbolo del sistema del shell Bash, puede usar Ctrl+Shift+C y Ctrl+Shift+V o hacer clic derecho con el mouse y seleccionar «Copiar» y «Pegar» en el menú contextual.
  • También puede presionar el botón central del mouse para pegar automáticamente el texto seleccionado en la ubicación del cursor.

¿Quiere copiar y pegar en la línea de comando del shell Bash? Le mostraremos múltiples técnicas, ya sea que prefiera el teclado o el mouse. Estos funcionan ya sea que esté en un escritorio gráfico o en un TTY tradicional basado en texto.

Los atajos de teclado habituales para copiar y pegar no funcionan

Copiar y pegar texto es una parte básica del uso de una computadora. Cuando las personas usan una computadora Linux por primera vez, ya sea que provengan del mundo Windows o macOS, a menudo se confunden al intentar copiar y pegar dentro de una ventana de terminal.

En Windows, se utiliza Ctrl+Cpara copiar una sección de texto resaltado y Ctrl+Vpegarlo. En macOS, usas Command+Ccopiarlo y Command+Vpegarlo. Siguen la misma convención de Ccopiar e Vinsertar.

Esas mismas pulsaciones de teclas funcionan en la mayoría de las aplicaciones gráficas de Linux, como el editor gedit o la suite ofimática LibreOffice . Ctrl+Ccopia el texto resaltado y Ctrl+Vlo pega en el cursor. Nuestro recién llegado a Linux probablemente ni siquiera piensa en el hecho de que estas convenciones se han trasladado a estas aplicaciones. Utilizan las pulsaciones de teclas de la memoria muscular y continúan con su trabajo.

Una vez que nuestro recién llegado abre una ventana de terminal e intenta copiar y pegar en el símbolo del sistema del shell Bash , todo cambia. Ctrl+Cy Ctrl+Vse les asignaron funciones mucho antes de que se pensara en copiar y pegar. De hecho, esas pulsaciones de teclas se reclutaron mucho antes de que se inventaran los shells gráficos, cuando un teletipo (TTY) era algo físico.

Ctrl+C y Ctrl+V en TTY

Cuando un TTY era un dispositivo físico, Ctrl+Cse eligió como una práctica combinación de teclas para generar una señal. Esa señal es SIGINT , que le indica al proceso actual que finalice. Debido a que una ventana de terminal es un TTY emulado, esa combinación de teclas (y muchas otras) se conservaron y replicaron en la emulación. Tenga en cuenta que es la ventana de terminal la que es la emulación. El shell Bash es un programa que se ejecuta en ese TTY emulado.

Podemos ver fácilmente las funciones que se han asignado a Ctrl+Cy Ctrl+V. Supongamos que escribe el siguiente comando y presiona «Entrar».

ls -R /

ls -R / en una ventana de terminal

Debido a que estamos usando la -Ropción (recursiva), el lscomando comenzará a enumerar todos los archivos y directorios, comenzando desde el directorio raíz. Después de un par de momentos, te das cuenta de que esto no es lo que querías, por lo que finalizas el proceso presionando Ctrl+C.

Ctrl+C

Ctrl+C en una ventana de terminal

El lsproceso se da por terminado. La evidencia visible de esto Ctrl+Cse resalta en la captura de pantalla. Se muestra como ^C.

La Ctrl+Vcombinación de teclas invoca “inserción textual”. Esto le permite ingresar una representación de una clave en lo que está escribiendo, en lugar de obtener el efecto de la clave. Para ver esto, pruebe los siguientes comandos (no escriba las comas). (Por ejemplo, para probar el primero, presione Ctrl+V y luego presione Entrar).

Ctrl+V, Enter Ctrl+V, PgDn Ctrl+V, RightArrow Ctrl+V, Esc

Ctrl+V, Ingresar en una ventana de terminal

Como comentario breve, puede observar que Enter está representado por ^M. Vimos anteriormente que Ctrl+Caparecía como ^C. Parecería que eso ^representa Ctrl. Probablemente Ctrl+Msignifique lo mismo que Enter. ¿Eso significa que podemos ingresar Enter escribiendo Ctrl+M? Pruébelo en una ventana de terminal. Ya verás que así es.

Entonces, claramente no podemos esperar Ctrl+Cy Ctrl+Vcopiar y pegar texto cuando ya tienen asignadas funciones tradicionales. Entonces, ¿qué podemos usar?

Ctrl+Mayús+C y Ctrl+Mayús+V

Se recuerdan fácilmente porque son muy similares a sus homólogos Ctrl+Shift+Cy Ctrl+Shift+V son reemplazos directos de Ctrl+Cy Ctrl+V.

Si resalta el texto en la ventana de la terminal con el mouse y lo presiona, Ctrl+Shift+Ccopiará ese texto en el búfer del portapapeles.

Ctrl+Shift+C

Ctrl+Shift+C en una ventana de terminal

Puede utilizar Ctrl+Shift+Vpara pegar el texto copiado en la misma ventana de terminal o en otra ventana de terminal.

Ctrl+Shift+V

Ctrl+Shift+V en una ventana de terminal

También puedes pegarlo en una aplicación gráfica como gedit. Pero tenga en cuenta que cuando pega en una aplicación (y no en una ventana de terminal), debe usar Ctrl+V.

Pegar desde una ventana de terminal al editor gedit

Y también puedes ir por el otro lado. Puede resaltar texto gedity presionar Ctrl+C, y luego pegarlo en una ventana de terminal usando Ctrl+Shift+V.

Copiar desde el editor gedit y pegar en una ventana de terminal

La combinación de teclas Ctrl+Insertes la misma que Ctrl+Shift+Cy la combinación Shift+Insertes la misma que Ctrl+Shift+V. La advertencia aquí es que solo se pueden usar dentro de la misma ventana de terminal.

Usando el mouse: clic derecho

Puede usar el mouse para copiar y pegar en una ventana de terminal. Tienes que usar el mouse para resaltar el texto que vas a copiar, así que ¿por qué no usarlo para realizar las acciones de copiar y pegar?

Una vez que haya resaltado algún texto, haga clic derecho con el mouse y seleccione «Copiar» en el menú contextual.

ventana de terminal con menú contextual y copia resaltada

Para pegar el texto copiado, haga clic derecho con el mouse una vez más y seleccione «Pegar» en el menú contextual.

ventana de terminal con menú contextual y pegar seleccionado

El texto se pega en la posición del cursor en la línea de comando. En este ejemplo, la ruta relativa se proporcionó incorrectamente y Bash no puede cambiar el directorio. El usuario perdió el «~/» desde el inicio de la ruta. Escribieron “~/” y luego copiaron el resto de la ruta de su intento anterior y lo pegaron en su segunda línea de comando.

Cuando presionan Enter, se mueven al directorio.

ventana de terminal con un directorio modificado logrado mediante copiar y pegar

Este ejemplo mostró cómo pegar en la misma ventana de terminal, pero puede usar esta técnica de clic derecho para pegar en diferentes ventanas de terminal. También puede pegar en aplicaciones gráficas utilizando este método.

Usando el mouse: botón central

Existe una forma aún más rápida de copiar y pegar usando el mouse, siempre que el mouse tenga un botón central. Si presionas la rueda de desplazamiento (¡suavemente!) y hace clic, tienes un botón central.

Resalte algo de texto en una ventana de terminal y luego presione el botón central. El texto resaltado se pega en la posición del cursor en la línea de comando. Copiar y pegar ocurren al mismo tiempo.

Entonces, resalte algún texto:

ventana de terminal con algo de texto resaltado

Luego presione el botón central:

ventana de terminal con texto resaltado pegado en la línea de comando

Puede utilizar este método para pegar entre ventanas de diferentes terminales y también en aplicaciones gráficas. Simplemente resalte el texto, vaya a la otra ventana de terminal o aplicación y presione el botón central.

Vieja escuela: sin ratón

¿Qué pasa cuando no tienes un mouse? Si no puedes resaltar ningún texto, ¿cómo puedes copiarlo y pegarlo?

Los servidores Linux a menudo se configuran sin un entorno de escritorio gráfico (GDE), lo que significa que no tienes acceso a un mouse. Incluso en una computadora Linux que ejecuta un entorno de escritorio gráfico como GNOME y tiene un mouse, habrá casos en los que no podrá usar el mouse para resaltar texto.

Por ejemplo, es posible que haya cambiado a uno de los TTY adicionales. En las distribuciones modernas, estos se encuentran desde Ctrl+Alt+F3(TTY3) hasta Ctrl+Alt+F6(TTY6). ( Ctrl+Alt+F2lo regresará a su sesión de GDE y Ctrl+Alt+F1lo llevará a la pantalla de inicio de sesión de su GDE).

Quizás incluso esté utilizando un dispositivo TTY de hardware genuino para conectarse a una computadora Linux o Unix.

De cualquier manera, estas técnicas funcionarán para usted. El punto a recordar aquí es que esto no es copiar y pegar, es cortar, copiar y pegar, y solo puede cortar y copiar desde la línea de comando actual. Por supuesto, puede usar las teclas de flecha para desplazarse por su historial y encontrar la línea de comando que desea cortar, copiar y pegar.

Las pulsaciones de teclas que puedes utilizar son:

  • Ctrl+W : corta la palabra delante del cursor y agrégala al búfer del portapapeles.
  • Ctrl+K : corta la parte de la línea después del cursor y agrégala al búfer del portapapeles. Si el cursor está al inicio de la línea, cortará y copiará la línea completa.
  • Ctrl+U : corta la parte de la línea antes del cursor y agrégala al búfer del portapapeles. Si el cursor está al final de la línea, cortará y copiará la línea completa.
  • Ctrl+Y : pega el último texto que se cortó y copió.

Pasemos a TTY3. (Utilice Ctrl+Alt+F1 para volver a su escritorio después).

Ctrl+Alt+F3 tty

tty3 en una ventana de terminal

Tenemos un archivo que deseamos eliminar, verifiquemos que esté aquí.

ls -l file_to_delete.txt

ls -l file_to_delete.txt en una ventana de terminal

Si usamos la tecla de flecha arriba, llamaremos al último comando que usamos fuera del historial de comandos. Podríamos simplemente editar esta línea, pero el objetivo es demostrar cómo cortar, copiar y pegar, por lo que realizaremos nuestra tarea de eliminar el archivo de una manera un poco prolongada.

Comando recuperado del historial de comandos en una ventana de terminal

Moveremos el cursor a la primera letra del nombre del archivo y luego presionaremos Ctrl+K. Esto eliminará esa parte de la línea y copiará el texto al búfer del portapapeles.

El efecto de Ctrl+K en una ventana de terminal

Pulsaremos Retroceso hasta borrar la línea.

Línea borrada con retroceso en una ventana de terminal

Escribiremos rmpara eliminar el archivo.

rm en una ventana de terminal

Y ahora podemos pegar Ctrl+Yy pegar el resto de la línea.

El efecto de Ctrl+Y en una ventana de terminal

Esto completa nuestro comando y podemos presionar Enter para eliminar el archivo.

Archivo eliminado sin mensaje de error en una ventana de terminal

Este tipo de cortar, copiar y pegar no se puede utilizar entre los TTY adicionales. No puede cortar, copiar y pegar entre TTY3 y TTY4, por ejemplo.

Es mejor considerar los TTY adicionales como una línea de TTY físicos uno al lado del otro. No hay forma de cortar y pegar entre los distintos terminales físicos, y tampoco hay manera de hacerlo en estas emulaciones.

Copia eso, controla

Cualquiera que sea la situación en la que se encuentre al utilizar una computadora con Linux, habrá una manera de copiar y pegar. Tienes opciones. Algunas de ellas son opciones extrañas, pero al menos hay opciones.

Comandos de Linux

Archivos

tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · tipo · renombrar · zip · descomprimir · montar · desmontar · instalar · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · parche · convertir · rclone · triturar · srm · scp · gzip · chattr · cortar · buscar · umask · wc · tr

Procesos

alias · pantalla · arriba · nice · renice · progreso · strace · systemd · tmux · chsh · historial · at · lote · gratis · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · tiempo de espera · pared · · matar · dormir · sudo · su · tiempo · agregar grupo · usermod · grupos · lshw · apagar · reiniciar · detener · apagar · contraseña · lscpu · crontab · fecha · bg · fg · pidof · nohup · pmap

Redes

netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *