Al trabajar con la terminal, estamos continuamente escribiendo comandos, por lo que lo ideal es tener formas rápidas de volver a escribir comandos anteriores de forma instantánea, o incluso buscarlos. Existe una serie de comandos, atajos y combinaciones de teclas para hacer esta tarea mucho más sencilla.
La tecla arriba [↑]
Probablemente, la forma más sencilla de recuperar un comando escrito anteriormente es pulsar la tecla o cursor ↑ (arriba). Esto recuperará la linea escrita anteriormente, de forma que con ↑ (arriba) vamos hacia atrás en el historial de comandos anteriores y con ↓ (abajo) podemos avanzar e ir hacia adelante en dicho historial.
Autocompletado con TAB
Otro consejo muy útil es el de pulsar la tecla TAB para autocompletar los comandos o rutas que escribimos en la consola. Por ejemplo, si escribimos cd /h
e inmediatamente después pulsamos TAB el sistema autocompletará a cd /home
porque es la única opción disponible.
$ cd /etc/r
rc1.d/ rc3.d/ rc5.d/ rcS.d/ rsyslog.d/ rc0.d/
rc2.d/ rc4.d/ rc6.d/ resolvconf/ runit/
Como puedes ver, en el caso de que hubieran varias carpetas disponibles que empiecen por la letra indicada, al pulsar TAB, se nos mostrarán todas las opciones disponibles, permitiéndonos escribir algunos carácteres más para resolver la ambiguedad y poder autocompletar nuevamente al volver a pulsar TAB.
Saltar entre fragmentos
En algunas ocasiones, puedes que tengas comandos de terminal que sean muy largos y que tengan varios parámetros. Con las flechas de izquierda ← y derecha → puedes moverte sin borrar el texto, pero a veces queremos desplazarnos de forma más rápida.
Pulsando la combinación de teclas CTRL + ← o CTRL + →, podemos saltar rápidamente de un fragmento a otro, saltándo entre palabras o carácteres especiales, lo que suele ser mucho más cómodo en ciertas situaciones.
$ ffmpeg -i video.mp4 -ss 1:30 -to 4:50
Por ejemplo, en este comando de ejemplo, si estamos situados al final del todo el texto y pulsamos la combinación de teclas CTRL + ←, saltamos al 5
, luego al 4
, luego al t
, y así sucesivamente. Normalmente salta entre palabras (espacios), pero al usar carácteres especiales como :
, .
o -
, también los tiene en cuenta.
Consultar el historial
Si no recuerdas bien el comando que necesitas, lo mejor sería examinar el historial cuidadosamente, en buscar del comando que interesa. Para ello, utilizaremos el comando history
.
Escribiendo history
mostraremos un listado con los últimos comandos, donde el número más pequeño es el comando más antiguo, y el número más grande, el comando más reciente:
$ history
1 clear
2 ls -l
3 cd /home/manz
4 cat index.html
5 cd /var/www/html
Sabiendo esto, tenemos algunos trucos interesantes:
!4
Ejecuta el comando número4
. En este caso,cat index.html
.!cd
Ejecuta el último comando que empieza porcd
. En este caso,cd /var/www/html
.!cd:p
Recupera el último comando que empieza porcd
, pero sin ejecutarlo.
Si al comando history
le indicamos un guión seguido de un número, se nos mostrarán sólo los últimos comandos en la cantidad indicada. Por ejemplo:
# Últimos 2 comandos
history -2
50 man ls
51 cd /etc
Obviamente, ese 2
podemos cambiarlo por el número de comandos que nos interesen.
Sin embargo, si hemos escrito muchos comandos, es posible que nos lleve mucho tiempo encontrarlo pulsando la tecla ↑. Para evitar esto, y si recordamos parte del comando, podemos pulsar la combinación de teclas Ctrl+R y nos aparecerá un mensaje como el siguiente:
(reverse-i-search)`':
Ahora, solo tenemos que escribir la parte del comando que buscamos, y nos irá apareciendo comandos anteriores que coincidan con lo escrito.
Atajos rápidos
Existen ciertos atajos rápidos que pueden ser muy interesantes para realizar acciones frecuentes, como por ejemplo los comandos especiales !!
o !$
.
Si queremos volver a ejecutar el último comando que escribimos por última vez, podemos simplemente utilizar el comando rápido !!
:
$ cat /home/manz/hello.txt
Hola amigos míos
$ !!
Hola amigos míos
Observa que se ha ejectado el comando anterior, ya que vuelve a mostrar la salida del comando que escribimos antes. De la misma forma que !!
vuelve a ejecutar el último comando, con !!:p
se muestra el comando, pero no se ejecuta.
La mayoría de estos atajos, al añadirle al final :p
, recupera el comando sin llegarlo a ejecutar.
Por otro lado, !$
ejecuta el último argumento del último comando:
$ cat /home/manz/hello.txt
Hola amigos míos
$ ls -lh !$
-rw-r--r-- 1 manz manz 34B Jun 20 15:36 /home/manz/hello.txt
Observa que ls -lh !$
en este caso sería equivalente a ejecutar ls -lh /home/manz/hello.txt
.
Saltarse el historial
Si quieres ejecutar un comando y que no se guarde en el historial, basta con añadir un espacio antes del comando a ejecutar. Se ejecutará igualmente, pero no se guardará en el historial. Esto puede ser especialmente interesante si tienes que escribir una contraseña o datos que no quieres que queden registrados en el historial.
Borrar el historial
Si queremos vaciar y borrar el historial, podemos ejecutar el siguiente comando:
$ history -c
Ahora, si nuevamente escribimos history
para consultar el historial, no mostrará nada porque está vacío. Empezará a registrar comandos a partir de este momento.