はじめに
この記事は Ateam Lifestyle Inc. Advent Calendar 2021 21日目はエイチームライフスタイル @otama がお送りいたします。
普段Ruby on Rails
やdocker
, yarn
等を利用したり、最近はdockerが進み減っては来ていますがメンテナンスや構成変更等でサーバにsshログインしたりCLI上での操作をすることがあります。様々な技術スタックやサーバに触れていくと「あれ、あのコマンドどうだったっけ?オプションどうやって書くんだっけ?」「あのサーバー名前どうだったっけ?」ということがしばしばありました。。。
調べればすぐに解消はするんですが毎回調べていると時間がもったいないですよね(覚えなさいw)。コマンド一つとっても日々の積み重ねでとんでもなく大きな時間になるのではないでしょうか。
今回ご紹介するものは数年前に隣で開発していた同僚の画面を見ながら教えてもらい便利さに心を打たれ使い続けているので紹介していきたいと思います。
とはいえ、CLIでの操作は本番環境のサーバーオペレーション時に焦らないようにするため、個人の環境でもゴリゴリのカスタマイズはしておらずショートカットやエイリアス等の設定は最小限にとどめています。
中には見た目をカラフルにしたり派手にしたりしてモチベーション上げたりしている方も多いかと思いますが今回は見た目というより効率化に少しでもつながるお話です。
(派手派手な見た目に憧れはありますw)
pecoとは
Simplistic interactive filtering tool
シンプルなインタラクティブフィルタリングツール、対話しながらフィルタリングしていくよってツールです。
この記事では私が使っているものを2つ紹介しようと思います。
環境
- OS: macOS Big Sur
- Homebrew 3.3.8
- peco version v0.5.10 (built with go1.16.4)
インストール方法
1.コマンド履歴
設定
- 以下を
.zshrc
の適当なところに貼り付け - ターミナル開き直すか再読み込みする
source ~/.zshrc
# peco history
function peco-select-history() {
local tac
if which tac > /dev/null; then
tac="tac"
else
tac="tail -r"
fi
BUFFER=$(\history -n 1 | \
eval $tac | \
peco --query "$LBUFFER")
CURSOR=$#BUFFER
zle clear-screen
}
zle -N peco-select-history
# Ctrl + r に割当
bindkey '^r' peco-select-history
使い方
-
Ctrl + r
で履歴を表示して検索したい文字を入力 - 選択したあとバッファに出力されます
- 下で紹介するsshのものはすぐに実行されるがこちらはされないので選択後に編集できるようになっています
2. サーバーへのssh
設定
- 以下を
.zshrc
の適当なところに貼り付け - ターミナル開き直すか再読み込みする
source ~/.zshrc
# peco ssh
function peco-ssh () {
local selected_host=$(awk '
tolower($1)=="host" {
for (i=2; i<=NF; i++) {
if ($i !~ "[*?]") {
print $i
}
}
}
' ~/.ssh/config | sort | peco --query "$LBUFFER")
if [ -n "$selected_host" ]; then
# ここでsshのオプションを指定できる
BUFFER="ssh ${selected_host}"
zle accept-line
fi
zle clear-screen
}
zle -N peco-ssh
# Ctrl + \ に割当
bindkey '^\' peco-ssh
使い方
- ターミナル上で
Ctrl + \
を押下したあと接続したいhostを選択するだけ- このときうろ覚えでも最後の一つまで絞り込まなくてもOK
- webサーバーであればとりあえず
web
を入力するだけで絞り込みができるので上下キーもしくはCtrl +n
orCtrl + p
で選んで接続できる
- 決定後はそのままsshされる
まとめ
- まわりの仕事早い人のオペレーションを観察してインプットするの大事!
- これらを活用すると複数のワードに引っ掛けて検索できるので日々の業務がちょっと便利になるのでは!?
- 活用方法は無限にあるので探してみよう!
- こんな使い方してるよーというのがありましたらコメント残していただけると嬉しいです
- 明日は @mistolteen さんです。お楽しみに!