Ú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.