Respuestas:
Presione Ctrl+ Ry escriba ssh
. Ctrl+ Rcomenzará la búsqueda desde el comando más reciente al anterior (búsqueda inversa). Si tiene más de un comando que comienza con ssh
, presione Ctrl+ Runa y otra vez hasta que encuentre la coincidencia.
Una vez que haya encontrado la coincidencia, puede presionar Enterpara ejecutar el comando o el cursor izquierdo / derecho para simplemente seleccionar el texto del comando.
No hay una opción inversa predeterminada para que Ctrl+ Rinvierta la dirección de la búsqueda, pero aquí encontrará algunas sugerencias al respecto.
Hago una ligera variación de lo anterior, funciona bien para mí (si te refieres a tu historial de bash
En mi carpeta de inicio creo un archivo llamado
.inputrc
Adentro va esto
"\e[5~": history-search-backward
"\e[6~": history-search-forward
Nota: lo anterior ya no parece funcionar en 14.04, por lo que hace lo mismo:
"\e[A":history-search-backward
"\e[B":history-search-forward
Luego, escribiendo lo que desee de un comando anterior y usando los botones de página arriba / página dn busca el historial, siempre comenzando con la página arriba
Aquí hay otro método que usa comandos clásicos (es más probable que funcione en distribuciones). El historial de comandos se almacena en el archivo .bash_history
en su directorio de inicio, por lo que puede hacer esto:
grep "ssh" ~/.bash_history
No olvide la -i
bandera si necesita una búsqueda que no distinga entre mayúsculas y minúsculas.
history | grep ssh
mostrará solo la sesión temporal de ssh, así que buscaría esta respuesta.
Encontré la siguiente función en algún lugar de Internet y la he usado con gran efecto. Pon esto en tu ~/.bashrc
:
hgrep () {
history | egrep --color=auto --recursive "$@" | egrep --color=auto --recursive -v "hgrep $@"
}
Ahora volver a cargar su shell: exec bash
. Ahora tiene un nuevo comando, que puede usar así:
hgrep ssh
Le mostrará una lista de comandos coincidentes de su historial. Para ejecutar un comando, escriba !
seguido del número de comando. Aquí hay un ejemplo:
~:$ hgrep scp
207 tn scp foreign-teachers __HOST__:unity.log __HOST__:compiz.log .
421 tn scp scott-laptop __HOST__:Scott\ Severance.asc .
422 tn scp scott-laptop __HOST__:'Scott\ Severance.asc' .
468 tn scott-desktop scp -r Backgrounds/* __HOST__:Pictures/Backgrounds
469 tn scott-laptop scp -r Backgrounds/* __HOST__:Pictures/Backgrounds
470 scp -r Backgrounds/* 192.168.1.2:Pictures/Backgrounds
~:$ !207
Este enfoque me gusta más que Ctrl+ Rporque permite búsquedas mucho más flexibles y puedo ver múltiples resultados a la vez.
Si usa shell en Emacs ( M-x shell
) puede usar M-r
(es equivalente a Ctrl+ Ren un terminal ).
El historial es bueno pero limitado: prefiero configurar mi entorno bash para registrar todos los comandos que he ejecutado, además del directorio en el que se ejecutaron. Luego ejecuto un comando para enumerar todos los comandos Me he ejecutado en el directorio actual, que puedo canalizar a grep, etc., se llama 'plato', vea:
https://github.com/wolfwoolford/dish
Si quieres ir al grano, solo busca esto en tu .bashrc ( https://github.com/wolfwoolford/dish/blob/master/dishrc )
También hay un comando realmente útil que obtienes de forma gratuita llamado 'dishg', o dish global, que imprime todos los comandos que se ejecutan, independientemente del directorio. Obviamente, este solo es útil cuando se usa con grep y tail, etc.
Lo he estado usando durante años y es, literalmente, lo primero que instalo cada vez que configuro una nueva caja. Registra los comandos que ejecuta en archivos de texto en un directorio oculto (~ / .dish). Nunca he tenido un problema con el espacio en disco ...
Quería escribir esto como un comentario para @ssmy pero no pude obtener el formato en el comentario para cooperar.
Después de buscar en el historial history | grep ssh
, puede ejecutar el comando que desee escribiendo su número precedido por un signo de exclamación, por ejemplo !42
.
Ejemplo:
$ historia | grep ssh 5 ssh me@someserver.net 13 ssh me@someotherserver.net 42 ssh me@thisone.com $! 42