Últimamente paso mucho tiempo en la línea de comando, por lo que aprender algunos trucos en forma de combinaciones de teclas, etc, que me ayuden a ser mucho más ágil.
Cursor arriba/abajo
Pulsando la tecla de cursor arriba/abajo, puedes desplazarte por el historial de comandos ejecutados.
Es decir, si ejecutas un comando, por ejemplo ls -l
, puedes devolverlo a la línea de comando pulsando la tecla de cursor arriba. Pulsando repetidamente la tecla de cursor arriba (↑) retrocedes en el historial de comandos.
En el siguiente GIF muestro el historial de comandos con el comando history
y después pulso repetidas veces la tecla de cursor arriba ↑, con lo que se puede observar cómo se van mostrando los comandos ejecutados en orden cronológico inverso:
Puedes avanzar y retroceder por la historia de los comandos ejecutados usando las teclas de cursores arriba y abajo (↑ y ↓).
Ejecutar el último comando como root
¿Cuántas veces has lanzado un comando y sólo has obtenido como resultado un Access Denied
porque has olvidado lanzarlo usando sudo
?
En vez de pulsar ↑, ←, ←, …, ←, para retroceder al inicio de la línea y después escribir sudo
, es mucho más rápido y sencillo lanzar sudo !!
Limpiar la pantalla
Puedes limpiar la pantalla de la terminal lanzando el comando clear
(en Linux)… Pero es mucho más rápido conseguir lo mismo mediante la combinación Ctrl+l
:
Limpiando la línea de comandos
Con la combinación anterior limpias la pantalla, pero no lo que hayas escrito en la línea de comandos. Puedes pulsar repetidamente la tecla de borrar… o puedes usar la combinación Ctrl+u
; mediante esta combinación de teclas borras todo el contenido de la línea de comandos a la izquierda del cursor
$ scp file.txt operador@|rpi.local:/home/operador/
# Pulsando Ctrl+u, borramos todo a la izquierda del cursor
$ |rpi.local:/home/operador/
Puedes borrar el contenido de la línea de comandos a la derecha del cursor mediante la combinación Ctrl+k
.
$ scp file.txt operador@|rpi.local:/home/operador/
# Pulsando Ctrl+k, obtenemos:
$ scp file.txt operador@|
Combinando history y grep
Puedes combinar el comando history
y la capacidad de filtro del comando grep
para buscar un comando concreto que hayas ejecutado anterioremente:
Ejecutar un comando anterior
Un truco relacionado con la combinación anterior; una vez que hemos encontrado el comando que queremos volver a lanzar, es lanzar !
seguido por el número que aparece junto con el comando:
$ history | grep ssh
30 cat /etc/systemd/system/sshd.service
501 history | grep ssh
502 history | grep "ssh"
503 cat /etc/systemd/system/sshd.service
504 history | grep ssh
505 cat /etc/systemd/system/sshd.service
506 history | grep ssh
HypriotOS/armv6: pirate@rpi in ~
$ !30
cat /etc/systemd/system/sshd.service
[Unit]
Description=OpenBSD Secure Shell server
After=network.target auditd.service
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
...
Búsqueda inversa
El combo history + grep + ! #_de_comando
está bien, pero es muy largo; puedes conseguir lo mismo usando la combinación de teclas Ctrl+r
. En cuanto cambia el prompt, puedes escribir y el terminal mostrará la primera coincidencia en el historial de comandos:
Si hay varias coincidencias, puedes mostrarlas pulsando repetidamente Ctrl+r
de nuevo:
Resumen
Convierte la línea de comandos en un entorno mucho más productivo usando éstos y otros trucos.