我有 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 將完成主機別名,您可以將它們與ssh
、sftp
、rsync
等指令一起使用。
另外,如果您需要在多個伺服器上執行相同的操作,請參閱在許多伺服器上透過 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。