¿Cuál es la forma más rápida de recargar el historial de comandos que comienzan con ciertos caracteres en Linux?

¿Cuál es la forma más rápida de recargar el historial de comandos que comienzan con ciertos caracteres en Linux?

En Dos podemos ingresar los primeros caracteres para filtrar el historial de comandos y encontrar el adecuado rápidamente. ¿Pero cómo hacer lo mismo en Linux?

por ejemplo cuando estoy probando un servidor local:

cd 
sudo /etc/init.d/vsftpd start
wget ...
ls
emacs ...
sudo /etc/init.d/vsftpd restart
sudo /etc/init.d/vsftpd stop
...

En Dos puedes escribir sudoy cambiar fácilmente entre los tres comandos que comienzan con él usando las teclas de flecha. Pero en Linux, ¿el siguiente comando es lo mejor que podemos hacer?

historty | grep sudo

No me gusta, porque la historia puede convertirse fácilmente en un desastre y también necesita la acción del mouse.

Respuesta1

Pon lo siguiente en tu ~/.inputrc:

"\e[A": history-search-backward
"\e[B": history-search-forward

Luego, después de escribir sudo, Upbuscará comandos que comiencen con sudo.

(Tendrá que reiniciar bash). (No estoy seguro si esto funciona en csh).

Respuesta2

En Bash (y la mayoría de aplicaciones similares basadas en readline) puedes presionar Ctrl-Rpara que aparezca una función de búsqueda en el historial:

$ date
Tue Feb  1 15:40:06 EET 2011
(reverse-i-search)`d': date

Al presionar Enteraquí me sale:

$ date
Tue Feb  1 15:40:06 EET 2011
$ date
Tue Feb  1 15:40:52 EET 2011

EDITAR:

Puede ver la lista completa de pulsaciones de teclas Bash relacionadas con el historialaquí.

Puede ver la lista actual de enlaces de teclado de búsqueda histórica:

$ bind -P | grep search | grep history
forward-search-history can be found on "\C-s".
history-search-backward can be found on "\e[5~".
history-search-forward can be found on "\e[6~".
non-incremental-forward-search-history can be found on "\en".
non-incremental-forward-search-history-again is not bound to any keys
non-incremental-reverse-search-history can be found on "\ep".
non-incremental-reverse-search-history-again is not bound to any keys
reverse-search-history can be found on "\C-r".

En mi caso, Page-Up/Down también se puede usar para buscar comandos que comiencen con lo que ya he escrito, como está configurado en mi /etc/inputrc:

# Page Up/Down cycles through history only for matching entries
"\e[5~": history-search-backward       # Previous
"\e[6~": history-search-forward        # Next

Respuesta3

Además de Ctrl+ R, puedes escribir !sudo+ Enteren bash y ejecutará elúltimocomando que comienza con sudo.

Respuesta4

Ingrese la primera letra como sudo, presione Ctrly luego o .

información relacionada