¿Quiere copiar y pegar en la línea de comandos 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 no funcionarán
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 de Windows o de macOS, a menudo se confunden cuando intentan copiar y pegar dentro de una ventana de terminal.
En Windows, utiliza Ctrl+C
para copiar una sección de texto resaltado y Ctrl+V
para pegarlo. En macOS, usas Command+C
para copiarlo y Command+V
para pegarlo. Siguen la misma convención de C
para copiar y V
para insertar.
Esas mismas pulsaciones de teclas funcionan en la mayoría de las aplicaciones gráficas de Linux, como el editor gedit o la LibreOffice sala de oficina.Ctrl+C
copia el texto resaltado y Ctrl+V
lo pega en el cursor. Nuestro recién llegado a Linux probablemente ni siquiera piensa en el hecho de que estas convenciones se han aplicado a estas aplicaciones. Usan 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 Cáscara de Bash símbolo del sistema, todo eso cambia. Ctrl+C
y Ctrl+V
se les asignaron funciones mucho antes de que se pensara en copiar y pegar. En realidad, esas pulsaciones de teclas fueron reclutadas mucho antes de que se inventaran las carcasas gráficas, cuando un teletipo (TTY) era algo físico.
Ctrl + C y Ctrl + V en TTY
Cuando un TTY era un dispositivo físico, Ctrl+C
se eligió como una práctica combinación de teclas para generar una señal. Esa señal es SIGINT, que le dice al procedimiento actual que termine. Debido a que una ventana de terminal es un TTY emulado, esa combinación de teclas (y muchas otras) se ha conservado y replicado en la emulación. Tenga en cuenta que es el ventana terminal esa 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+C
y Ctrl+V
. Suponga que escribe el siguiente comando y presiona «Enter».
ls -R /
Debido a que estamos usando el -R
(recursiva) opción la ls
El comando 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 procedimiento presionando Ctrl+C
.
Ctrl+C
los ls
el procedimiento finaliza. La evidencia visible del Ctrl+C
se resalta en la captura de pantalla. Se muestra como ^C
.
los Ctrl+V
combinación de teclas invoca «inserción literal». Esto le posibilita ingresar una representación de una clave en lo que está escribiendo, en lugar de obtener la efecto de la llave. Para ver esto, pruebe los siguientes comandos (no escriba las comas). (A modo de ejemplo, para probar el primero, presione Ctrl + V y posteriormente presione Entrar).
Ctrl+V, Enter
Ctrl+V, PgDn
Ctrl+V, RightArrow
Ctrl+V, Esc
Como comentario rápido, puede notar que Enter está representado por ^M
. Vimos antes que Ctrl+C
apareció como ^C
. Parece que ^
representa Ctrl
. Entonces Ctrl+M
probablemente significa lo mismo que Enter. ¿Eso significa que podemos ingresar Enter escribiendo Ctrl+M
? Pruébelo en una ventana de terminal. Verás que lo hace.
Entonces, claramente no podemos esperar Ctrl+C
y Ctrl+V
para copiar y pegar texto cuando ya disponen asignadas funciones tradicionales. Entonces, ¿qué podemos utilizar?
RELACIONADO: Cómo ser más productivo en Ubuntu usando atajos de teclado
Ctrl + Mayús + C y Ctrl + Mayús + V
Se recuerdan fácilmente debido a que son muy similares a sus contrapartes, Ctrl+Shift+C
y Ctrl+Shift+V
son reemplazos directos para Ctrl+C
y Ctrl+V
.
Si resalta texto en la ventana de la terminal con el mouse y presiona Ctrl+Shift+C
copiará ese texto en un búfer del portapapeles.
Ctrl+Shift+C
Puedes utilizar Ctrl+Shift+V
para pegar el texto copiado en la misma ventana de terminal o en otra ventana de terminal.
Ctrl+Shift+V
Además puede pegar en una aplicación gráfica como gedit
. Pero tenga en cuenta que cuando pegue en una aplicación, y no en una ventana de terminal; debes utilizar Ctrl+V
.
Y además puedes ir al otro lado. Puede resaltar texto en gedit
y golpea Ctrl+C
y posteriormente péguelo en una ventana de terminal usando Ctrl+Shift+V
.
La combinación de teclas Ctrl+Insert
es lo mismo que Ctrl+Shift+C
, y la combinación Shift+Insert
es lo mismo que Ctrl+Shift+V
. La advertencia aquí es que estos solo se pueden utilizar dentro de la misma ventana de terminal.
Uso del mouse: clic derecho
Puede utilizar el mouse para copiar y pegar en una ventana de terminal. Debes de utilizar el mouse para resaltar el texto que vas a copiar, por lo tanto ¿por qué no usarlo para realizar las acciones de copiar y pegar?
Una vez que haya resaltado algún texto, haga clic con el botón derecho del ratón y seleccione «Copiar» en el menú contextual.
Para pegar el texto copiado, haga clic derecho con el mouse una vez más y seleccione «Pegar» en el menú contextual.
El texto se pega en la posición del cursor en la línea de comando. En este ejemplo, la ruta relativa se ha proporcionado incorrectamente y Bash no puede cambiar de directorio. El usuario perdió el «~ /» desde el inicio de la ruta. Escribieron “~ /” y posteriormente 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.
Este ejemplo muestra cómo pegar en la misma ventana de terminal, pero puede utilizar esta técnica de clic derecho para pegar en diferentes ventanas de terminal. Además puede pegar en aplicaciones gráficas usando este método.
Uso del mouse: botón central
Existe una forma aún más rápida de copiar y pegar con el mouse, siempre que su mouse tenga un botón central. Si presiona la rueda de desplazamiento (¡suavemente!) Y hace clic, tiene un botón central.
Resalta un texto en una ventana de terminal y posteriormente presiona el botón central. El texto resaltado se pega en la posición del cursor en la línea de comando. La copia y el pegado ocurren al mismo tiempo.
Entonces, resalte algo de texto:
Posteriormente presiona tu botón central:
Puede usar este método para pegar entre diferentes ventanas de terminales y además en aplicaciones gráficas. Simplemente resalte el texto, muévase 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 ratón? Si no puede resaltar ningún texto, ¿cómo puede copiarlo y pegarlo?
Los servidores Linux a menudo se configuran sin un entorno de escritorio gráfico (GDE), lo que significa que no tiene acceso a un mouse. Inclusive 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á utilizar el mouse para resaltar texto.
A modo de ejemplo, es factible que haya cambiado a uno de los TTY adicionales. En las distribuciones modernas, estos se encuentran en Ctrl+Alt+F3
(TTY3) hasta Ctrl+Alt+F6
(TTY6). (Ctrl+Alt+F2
lo volverá a su sesión de GDE y Ctrl+Alt+F1
lo llevará a la pantalla de inicio de sesión de su GDE).
Tal vez inclusive esté usando 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 pegar, y pegar, y solo puede cortar y copiar desde la línea de comando actual. De todos modos, puede utilizar las teclas de flecha para desplazarse por su historial y hallar la línea de comando desde la que desea cortar, copiar y pegar.
Las pulsaciones de teclas que puede usar son:
- Ctrl + W: Corta la palabra antes 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 principio de la línea, cortará y copiará toda la línea.
- 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á toda la línea.
- Ctrl + Y: Pegue el último texto que se cortó y copió.
Pasemos a TTY3. (Use Ctrl + Alt + F1 para volver a su escritorio después).
Ctrl+Alt+F3
tty
Tenemos un archivo que queremos borrar, verifiquemos que esté aquí.
ls -l file_to_delete.txt
Si usamos la tecla de flecha hacia 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 lograremos nuestra tarea de borrar el archivo de una manera un poco prolongada.
Moviremos el cursor a la primera letra del nombre del archivo y posteriormente presionaremos Ctrl+K
. Esto eliminará esa parte de la línea y copiará el texto al búfer del portapapeles.
Presionaremos Retroceso hasta que borremos la línea.
Teclearemos el rm
para borrar el archivo.
Y ahora podemos golpear Ctrl+Y
y pegue el resto de la línea.
Esto completa nuestro comando y podemos presionar Enter para borrar el archivo.
Este tipo de cortar, copiar y pegar no se puede usar entre los TTY adicionales. No puede cortar, copiar y pegar entre TTY3 y TTY4, a modo de ejemplo.
Es mejor considerar los TTY adicionales como una línea de TTY físicos sentados uno al lado del otro. No hay forma de cortar y pegar entre los diferentes terminales físicos, y no hay forma de hacerlo en estas emulaciones.
RELACIONADO: Cómo funcionan las señales de Linux: SIGINT, SIGTERM y SIGKILL
Copia eso, control
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.
setTimeout(function(){
!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s) } (window, document,’script’,
‘https://connect.facebook.net/en_US/fbevents.js’);
fbq(‘init’, ‘335401813750447’);
fbq(‘track’, ‘PageView’);
},3000);