Freitextsuche für Bash-Befehle

Freitextsuche für Bash-Befehle

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 server1ist gleichbedeutend mit nirojan@ipaddressusw. 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 ~/.bashrcbeispielsweise in Ihr Dokument einfügen.

Mehr Infos hier: http://tldp.org/LDP/abs/html/aliases.html

Alternativ: das geniale hstrTool (hier:https://github.com/dvorka/hstr) ist ein großartiger Befehlsverlaufssucher und schlägt Strg+R auf allen Fronten.

verwandte Informationen