Bash

用於通過 SSH 連接到不同主機的 Bash 自動完成功能

  • January 28, 2015

我有一大堆伺服器,我通常ssh一直都在。有什麼方法可以使用bashorzsh這樣我就可以保留主機名列表,並且 bash 自動完成會遍歷文件,並在我輸入主機名的前幾個字母時為我提供以這些字母開頭的框的建議。

Zsh完成適用於所謂的 ssh 書籤。這些是~/.ssh/config.

例如,

 host baz
   hostname 192.168.1.2
   port 22
   user warrick

 host bar
   hostname example.com
   port 2200
   user kevin
   identityfile /home/warrick/.ssh/ec2.pem

man ssh_config查看完整的選項列表。

編輯

我正在使用ohmyzsh的完成腳本:

https://raw.github.com/robbyrussell/oh-my-zsh/master/lib/completion.zsh

以與 類似的方式ohmyzsh,我將上面的腳本放入~/.zsh/libs/completion.zsh並將其添加到~/.zshrc.

# ~/.zshrc
for f in ~/.zsh/libs/*; do
 source $f
done

bash 補全包包括ssh命令補全,包括:

  • ssh
  • ssh-add
  • ssh-copy-id
  • sshfs

你可以在這裡瀏覽原始碼:https ://alioth.debian.org/scm/browser.php?group_id=100114

引用自:https://unix.stackexchange.com/questions/50054