Мне нужно управлять 5 серверами (ssh, туннель и т. д.). Так есть ли способ/плагин для выполнения свободного текстового поиска и выполнения команды? Например, я сопоставляю предложение с командой bash и фильтрую в терминале с помощью свободного текстового поиска. Я знаю о поиске по истории с помощью команды ctrl + R, но это немного обременительно — просматривать все IP-адреса, чтобы найти нужный сервер.
Например
Text : "ssh to server 1" >> "ssh nirojan@ipaddress"
Text : "tunnel to server 5" "ssh -L 5234:localhost:5433 "
решение1
Специально для SSH
Определите псевдонимы хоста в файле конфигурации вашего клиента SSH.~/.ssh/config
. Например:
Host server1
Hostname ipaddress
User nirojan
Host server5-tunnel
Hostname server5
LocalForward 5234:localhost:5433
Тогда ssh server1
эквивалентно nirojan@ipaddress
, и т. д. Преимущество этого метода в том, что он работает со всем, что использует SSH под капотом, например rsync -a somefile server1:some/directory
.
Если вы включили контекстно-зависимое дополнение в bash или zsh, оболочка будет дополнять псевдонимы хостов, где вы сможете использовать их с такими командами, как ssh
, sftp
, rsync
и т. д.
Кроме того, если вам нужно сделать то же самое на нескольких серверах, см.Автоматически запускать команды по SSH на многих серверах
решение2
Если ваша оболочка поддерживает псевдонимы (см. раздел комментариев), вы можете использовать псевдонимы:
alias sshserv1='ssh [email protected]'
alias sshserv2='ssh [email protected]'
~/.bashrc
Например , вы бы поместили их в свой .
Более подробная информация здесь: http://tldp.org/LDP/abs/html/aliases.html
Альтернатива: блестящий hstr
инструмент (здесь:https://github.com/dvorka/hstr) — отличный поисковик по истории команд, превосходящий Ctrl+R по всем параметрам.