bash コマンドのフリーテキスト検索

bash コマンドのフリーテキスト検索

管理するサーバーが 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

sshbash または zsh でコンテキスト依存の補完を有効にしている場合、シェルは、、、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 よりも優れています。

関連情報