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

如果您在 bash 或 zsh 上啟用了上下文相關完成,則 shell 將完成主機別名,您可以將它們與sshsftprsync等指令一起使用。

另外,如果您需要在多個伺服器上執行相同的操作,請參閱在許多伺服器上透過 SSH 自動運行命令

答案2

如果您的 shell 支援別名(請參閱註解部分),您可以使用別名:

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。

相關內容