fzfを活用してTerminalの作業効率を高める
https://qiita.com/kamykn/items/aa9920f07487559c0c7e
に引き続き、またまたfzfネタです
インストール
fzfについては上記の記事でも詳しく書いていますが、あいまい検索と選択的インターフェースを融合させたCLIツールです。
fzfはMacならbrewでもinstallできます。
brew install fzf
SSHのホスト先をfzfで選ぶには
仕事で入るサーバーが増えてくると毎回コマンド履歴を探したり、~/.ssh/config
を見に行って探したりなど面倒ですよね。
そこでfzfの力で、その場で~/.ssh/config
の内容からssh先を選んでそのまま接続してみます。
fssh() {
local sshLoginHost
sshLoginHost=`cat ~/.ssh/config | grep -i ^host | awk '{print $2}' | fzf`
if [ "$sshLoginHost" = "" ]; then
# ex) Ctrl-C.
return 1
fi
ssh ${sshLoginHost}
}
これを.bashrcや.zshrcに書きます。
結果
fssh
というコマンドで~/.ssh/config
の内容からHostの項目を選んでSSHできるようになります。
サンプルなのでgifには実際にSSH先に入ってる様子までは含めていませんが(手元に適当な環境がなく...)、最終的に ssh [Hostの設定名]
というコマンドが実行され、SSHすることが可能になります。
おまけ
SSHするときにオペミス防止の為にTerminal.appの背景色を変える必要があったので、このコマンドでついでに変えてみます。(MacのTerminal.app想定)
下記を、先程の記述の中のssh コマンドの直前に書き加えます。
## Terminal.appのprofile変更
osascript -e 'tell application "Terminal" to set current settings of first window to settings set "green"'
"green"
の箇所はお使いのMacのTerminal.appのプロファイルで使っている名前を当てはめてください。
↓↓↓ (こんなやつ)
これで、背景色がSSHついでに緑色に変更することができました
(なお、iTermではこの記述では効かないのでご注意を。)