linux中給ssh命令加上自動完成功能

來源:互聯網
上載者:User

於是我迴歸到了使用Linux的命令列終端,通過建立多個alias來滿足不同的ssh參數的情況,比如有的需要用key,有的需要用密碼;再將所有的伺服器添加到某個文字檔中以列表的方式進行更新,同時將其內容作為這些alias的自動完成列表,用起來感覺非常不錯。

具體配置:
定義alias

 代碼如下 複製代碼

[dong.guo@heydevops ~]$ vim .bashrc

alias sshads='ssh -t -i /home/dong.guo/workspace/sshkeys/key_adsymp -l adsymp'
alias sshrootdraw='sshpass -p "drawbridge" ssh -l root'
alias sshrootkey='ssh -t -i /home/dong.guo/workspace/sshkeys/key_root -l root'
建立伺服器列表檔案,輸入所有的伺服器主機名稱
[dong.guo@heydevops ~]$ head -n 10 /home/dong.guo/workspace/autocomp/servers.list

 
api1e
api2e
api3e
c1e
c2e
c3e
c4e
c5e
cb1e
cb2e

給建立的alias加上自動完成功能 www.111cn.net

 代碼如下 複製代碼

[dong.guo@heydevops ~]$ vim .bashrc

# Enable auto-completion of servers via sshads, sshrootdraw and sshrootkey
function _servers() {
  COMPREPLY=()
  local cur=${COMP_WORDS[COMP_CWORD]};
  local com=${COMP_WORDS[COMP_CWORD-1]};
  case $com in
    'sshads')
      local servers=($(cat /home/dong.guo/workspace/autocomp/servers.list))
      COMPREPLY=($(compgen -W '${servers[@]}' -- $cur))
      ;;
    'sshrootdraw')
      local servers=($(cat /home/dong.guo/workspace/autocomp/servers.list))
      COMPREPLY=($(compgen -W '${servers[@]}' -- $cur))
      ;;
    'sshrootkey')
      local servers=($(cat /home/dong.guo/workspace/autocomp/servers.list))
      COMPREPLY=($(compgen -W '${servers[@]}' -- $cur))
      ;;
  esac
}

complete -F _servers sshads
complete -F _servers sshrootdraw
complete -F _servers sshrootkey
使配置生效
[dong.guo@heydevops ~]$ source .bashrc

優雅的敲下TAB鍵來體驗自動完成所帶來的快感,

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.