Ich muss 5 Server verwalten (SSH, Tunnel usw.). Gibt es also eine Möglichkeit/ein Plugin, um eine Freitextsuche durchzuführen und einen Befehl auszuführen? Beispielsweise ordne ich einen Satz einem Bash-Befehl zu und filtere im Terminal per Freitextsuche. Ich kenne die Verlaufssuche mit dem Befehl Strg + R, aber es ist etwas umständlich, alle IPs zu durchsuchen, um den relevanten Server zu finden.
Zum Beispiel
Text : "ssh to server 1" >> "ssh nirojan@ipaddress"
Text : "tunnel to server 5" "ssh -L 5234:localhost:5433 "
Antwort1
Speziell für SSH
Definieren Sie Host-Aliase in Ihrer SSH-Client-Konfigurationsdatei~/.ssh/config
. Zum Beispiel:
Host server1
Hostname ipaddress
User nirojan
Host server5-tunnel
Hostname server5
LocalForward 5234:localhost:5433
Dann ssh server1
ist gleichbedeutend mit nirojan@ipaddress
usw. Der Vorteil dieser Methode besteht darin, dass sie mit allem funktioniert, was unter der Haube SSH verwendet, zum Beispiel rsync -a somefile server1:some/directory
.
Wenn Sie die kontextsensitive Vervollständigung für Bash oder Zsh aktiviert haben, vervollständigt die Shell Host-Aliase, wo Sie sie mit Befehlen wie ssh
, sftp
, rsync
, usw. verwenden können.
Wenn Sie dasselbe auf mehreren Servern tun müssen, lesen SieAutomatisches Ausführen von Befehlen über SSH auf vielen Servern
Antwort2
Wenn Ihre Shell Aliase unterstützt (siehe Kommentarbereich), können Sie Aliase verwenden:
alias sshserv1='ssh [email protected]'
alias sshserv2='ssh [email protected]'
Diese würden Sie ~/.bashrc
beispielsweise in Ihr Dokument einfügen.
Mehr Infos hier: http://tldp.org/LDP/abs/html/aliases.html
Alternativ: das geniale hstr
Tool (hier:https://github.com/dvorka/hstr) ist ein großartiger Befehlsverlaufssucher und schlägt Strg+R auf allen Fronten.