Tengo 5 servidores para administrar (ssh, túnel, etc). Entonces, ¿hay alguna forma/complemento para realizar una búsqueda de texto libre y ejecutar un comando? Por ejemplo, asigno una oración a un comando bash y la filtro en la terminal mediante búsqueda de texto libre. Conozco la búsqueda del historial con el comando Ctrl + R, pero es un poco engorroso buscar en todas las direcciones IP para encontrar el servidor relevante.
Por ejemplo
Text : "ssh to server 1" >> "ssh nirojan@ipaddress"
Text : "tunnel to server 5" "ssh -L 5234:localhost:5433 "
Respuesta1
Para SSH específicamente
Defina alias de host en su archivo de configuración de cliente SSH~/.ssh/config
. Por ejemplo:
Host server1
Hostname ipaddress
User nirojan
Host server5-tunnel
Hostname server5
LocalForward 5234:localhost:5433
Entonces ssh server1
es equivalente a nirojan@ipaddress
, y así sucesivamente. La ventaja de este método es que funciona con todo lo que usa SSH internamente, por ejemplo rsync -a somefile server1:some/directory
.
Si ha habilitado la finalización sensible al contexto en bash o zsh, el shell completará los alias de host donde podrá usarlos con comandos como ssh
, sftp
, rsync
etc.
Además, si necesita hacer lo mismo en varios servidores, consulteEjecute automáticamente comandos a través de SSH en muchos servidores
Respuesta2
Si su shell admite alias (consulte la sección de comentarios), puede usar alias:
alias sshserv1='ssh [email protected]'
alias sshserv2='ssh [email protected]'
Los pondrías en tu, ~/.bashrc
por ejemplo.
Más información aquí: http://tldp.org/LDP/abs/html/aliases.html
Alternativamente: la brillante hstr
herramienta (aquí:https://github.com/dvorka/hstr) es un excelente buscador de historial de comandos y supera a Ctrl+R en todos los frentes.