Pesquisa de texto livre para comandos bash

Pesquisa de texto livre para comandos bash

Tenho 5 servidores para gerenciar (ssh, túnel, etc). Então, existe uma maneira/plugin de realizar uma pesquisa de texto livre e executar um comando. Por exemplo, mapeio uma frase para um comando bash e filtro no terminal por meio de pesquisa de texto livre. Eu sei sobre a pesquisa de histórico com o comando ctrl + R, mas é um pouco complicado pesquisar todos os ips para encontrar o servidor relevante.

Por exemplo

Text : "ssh to server 1" >> "ssh nirojan@ipaddress"
Text : "tunnel to server 5" "ssh -L 5234:localhost:5433 "

Responder1

Para SSH especificamente

Defina aliases de host no arquivo de configuração do cliente SSH~/.ssh/config. Por exemplo:

Host server1
    Hostname ipaddress
    User nirojan

Host server5-tunnel
    Hostname server5
    LocalForward 5234:localhost:5433

Então ssh server1é equivalente a nirojan@ipaddresse assim por diante. A vantagem desse método é que ele funciona com tudo que usa SSH nos bastidores, por exemplo rsync -a somefile server1:some/directory.

Se você habilitou a conclusão sensível ao contexto no bash ou zsh, o shell completará os aliases do host onde você poderá usá-los com comandos como ssh, sftp, rsync, etc.

Além disso, se você precisar fazer a mesma coisa em vários servidores, consulteExecute comandos automaticamente por SSH em muitos servidores

Responder2

Se o seu shell suportar aliases (veja a seção de comentários), você poderá usar aliases:

alias sshserv1='ssh [email protected]'
alias sshserv2='ssh [email protected]'

Você colocaria isso no seu, ~/.bashrcpor exemplo.

Mais informações aqui: http://tldp.org/LDP/abs/html/aliases.html

Alternativamente: a hstrferramenta brilhante (aqui:https://github.com/dvorka/hstr) é um ótimo pesquisador de histórico de comandos e supera Ctrl+R em todas as frentes.

informação relacionada