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 sudo
y 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-R
para 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 Enter
aquí 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 ↓.