6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ateam Lifestyle Inc.Advent Calendar 2021

Day 21

pecoを使って少しでも仕事を早くする

Last updated at Posted at 2021-12-20

はじめに

この記事は Ateam Lifestyle Inc. Advent Calendar 2021 21日目はエイチームライフスタイル @otama がお送りいたします。

普段Ruby on Railsdocker, 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)

インストール方法

  • 使用端末がMacのためMacのみ紹介 (2021年12月現在)
  • brew入っていれば以下コマンドでインストール
    • brew install peco
  • これでpecoが使えるようになっているはず!
    text.gif

1.コマンド履歴

  • コマンドのヒストリーから検索してバッファに出力
    history.gif

設定

  • 以下を.zshrcの適当なところに貼り付け
  • ターミナル開き直すか再読み込みする source ~/.zshrc
.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

  • .ssh/configからHostをリスト化してそのままsshログインしちゃう
    ssh.gif

設定

  • 以下を.zshrcの適当なところに貼り付け
  • ターミナル開き直すか再読み込みする source ~/.zshrc
.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 +norCtrl + pで選んで接続できる
  • 決定後はそのままsshされる

まとめ

  • まわりの仕事早い人のオペレーションを観察してインプットするの大事!
  • これらを活用すると複数のワードに引っ掛けて検索できるので日々の業務がちょっと便利になるのでは!?
  • 活用方法は無限にあるので探してみよう!
  • こんな使い方してるよーというのがありましたらコメント残していただけると嬉しいです:santa_tone1:
  • 明日は @mistolteen さんです。お楽しみに!
6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?