Búsqueda de texto libre para comandos bash

Búsqueda de texto libre para comandos bash

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 server1es 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, rsyncetc.

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, ~/.bashrcpor ejemplo.

Más información aquí: http://tldp.org/LDP/abs/html/aliases.html

Alternativamente: la brillante hstrherramienta (aquí:https://github.com/dvorka/hstr) es un excelente buscador de historial de comandos y supera a Ctrl+R en todos los frentes.

información relacionada