Saltar al contenido
jungladigital

Lo que escribiste ayer, en dos teclas

La terminal recuerda cada comando que ejecutaste. history te enseña la lista y Ctrl+R la busca por un pedazo: tres letras y aparece el comando largo que te funcionó ayer.

Ctrl+R en verde sobre fondo oscuro: lo que escribiste ayer, en dos teclas

Ayer copiaste la foto de la fachada a la carpeta de editadas con un comando largo, y hoy quieres repetirlo. lo encuentra, si tienes paciencia para pasar por los veinte comandos que vinieron después. Hay una forma mejor: la terminal recuerda todo lo que escribiste, y se le puede preguntar.

Este artículo se adapta a tu sistema

Todo queda anotado

Lo que hiciste ayer, tal cual, con sus números:

Mac
~/Documents/barbería la esquina
$ history    1  cd ~/Documents    2  ls    3  cd barbería\ la\ esquina/    4  ls    5  more menú\ de\ precios.txt    6  cd fotos\ del\ local/    7  ls    8  ls sillón\ 1.jpg    9  cd ..   10  mkdir fotos\ editadas   11  cp fotos\ del\ local/fachada.jpg fotos\ editadas/   12  ls fotos\ editadas

Ahí está el de la fachada, el número 11. Y ahí está el problema: leer una lista para encontrar una línea.

Windows

~\Documents\barbería la esquina
$ h  Id CommandLine  -- -----------   1 cd 'barbería la esquina'   2 ls   3 more 'menú de precios.txt'   4 cd 'fotos del local'   5 ls   6 cd ..   7 mkdir 'fotos editadas'   8 cp 'fotos del local\fachada.jpg' 'fotos editadas\'   9 ls 'fotos editadas'

Ahí está el de la fachada, el número 8. Y ahí está el problema: leer una lista para encontrar una línea.


La terminal guarda cada comando que ejecutas, en Mac y en Windows, y esa memoria sobrevive al cierre de la ventana porque es un archivo de texto más, escondido en tu carpeta de casa (.zsh_history en Mac, ConsoleHost_history.txt en Windows). Ya lo viste en tus primeros comandos como curiosidad; ahora es una herramienta: todo lo que te funcionó una vez está ahí, escrito bien, esperando. Lo que falta es una forma de pedirlo sin leer la lista.

Windows

En PowerShell, h lista solo la sesión actual; lo de ayer está en el archivo, y lo tienen y la búsqueda que viene. En PowerShell 7 la tabla trae una columna más, Duration, con lo que tardó cada comando.

Ctrl+R: búscalo por un pedazo

Tres letras de cualquier parte del comando bastan:

Mac
~/Documents/barbería la esquina
$ cp fotos\ del\ local/fachada.jpg fotos\ editadas/$ ls fotos\ editadasfachada.jpg
⌨ Teclas de esta sesión: Ctrl+R ⏎ Enter

Tres letras y Enter. Si la que aparece no es, otro Ctrl+R sigue buscando hacia atrás; Ctrl+C cancela.

Windows

~\Documents\barbería la esquina
$ cp 'fotos del local\fachada.jpg' 'fotos editadas\'$ ls 'fotos editadas'
⌨ Teclas de esta sesión: Ctrl+R ⏎ Enter

Tres letras y Enter. Si la que aparece no es, otro Ctrl+R sigue buscando hacia atrás; Esc sale de la búsqueda.


La búsqueda es incremental: con cada letra que agregas, la terminal te enseña la mejor coincidencia hasta ese momento, y con el pedazo que recuerdes alcanza, sea el nombre de la foto, la carpeta o el comando. Este es el atajo que separa a quien «sabe algo de terminal» de quien vive en ella, y es el más fácil de convertir en hábito: cada vez que vayas a presionar más de tres veces, Ctrl+R.

Mac

Habrás visto terminales que sugieren en gris el resto del comando mientras escribes. En Mac eso no viene de fábrica; es un añadido que se instala, y lo dejamos para cuando ya vivas en la terminal.

Windows

Si tu PowerShell es la versión 7, verás en gris cómo te sugiere el resto del comando mientras escribes: es su predicción a partir de tu historial. Escribe cp; si la sugerencia es la que querías, la acepta, y F2 la cambia a una lista para elegir. En Windows PowerShell 5, el que trae Windows, esa sugerencia no existe; Ctrl+R sí, y hace el mismo trabajo.

Aquí el mouse no tiene nada que ofrecer: no existe un historial de clics que se pueda buscar. Lo que sí existe es copiar un comando de una nota o de un chat, y pegarlo. De eso, y de cómo pegar sin miedo, va la última parada.