久しぶりのブログになります。澤井です。

私は、入社前はCLIを使う機会は、あまりありませんでした。最近になって、業務でCLIを使う機会が増えました。そこで、今回は実際に使ってみて、便利だと感じたCLIツールをいくつか紹介したいと思います。

紹介するツール

今回は個々のツールの概要を紹介するのが目的ですので、インストールや使い方は各ツールのドキュメントを参照ください。

peco

pecoは、入力をインクリメントサーチする機能を提供します。

簡単な例としてls -al | pecoで、ディレクトリ内をインクリメントサーチする例を紹介します。

pecoの基本的な使い方

他の例としては、grepfindなどの結果をパイプを使って、pecoへ入力として渡して、インクリメントサーチで絞り込むといった使い方などが浮かびます。

機能はシンプルですが、色々な使い方が考えられると思います。 なかでも個人的に、とても便利だと感じている使い方を1つ紹介します。

コマンド履歴をサーチ

コマンド履歴はMacならctrl + rで検索できますが、pecoを使うことで、より便利に履歴を検索できるようになります。

pecoでコマンド履歴を検索

上記機能を使うには、シェルの設定ファイルに関数を定義する必要があります。 本記事では、具体的なコードは紹介しませんが、peco コマンド履歴などで検索すれば、関数の実例を紹介している記事が見つかると思います。

direnv

direnvは、あるディレクトリに設定ファイル.envrcを作成すると、そのディレクトリ配下にcdコマンドで移動したタイミングで、環境変数に対して変更を加えることが出来ます。私は、おもにPHP・Nodeのバージョンを切り替えるため環境変数$PATHの値を変更し使っています。

PHP 5.6がデフォルトの環境において、dirAディレクトリはPHP 7.1、dirBディレクトリはPHP 7.2を指定した例を紹介します。

dirAディレクトリ、dirBディレクトリの.envrcは、以下のように設定しました。

# dirA
PATH_add /usr/local/opt/php@7.1/bin
PATH_add /usr/local/opt/php@7.1/sbin
# dirB
PATH_add /usr/local/opt/php@7.2/bin
PATH_add /usr/local/opt/php@7.2/sbin

dirAディレクトリ・dirBディレクトリに、.envrcで指定したPHPのバージョンが設定されました。

dir

設定ファイル1つでバージョンを切り替えることができるのはとても便利です。

PsySH

PHPの高機能なREPLです。PHPのREPLは他にもありますが、以下の点が気に入っています。

  • 補完が優秀
  • doc 関数名でビルトイン関数のマニュアルを表示

特に個人的には、ビルトイン関数のマニュアルを簡単に表示する機能は、便利だと感じています。

PsySHで関数のドキュメント表示

tmux

tmuxは端末多重化ソフトウェアと呼ばれるソフトです。

私は使い始めたばかりですが、ウィンドウの作成や画面を分割する機能を使うだけでも、作業効率が高まりました。

tmuxでターミナルを分割

私の使い方をいくつか紹介します。

  • 複数のプロジェクトごとにウィンドウを作成して、ショートカットキーで切り替え
  • 画面を左右に分割して左側はサーバー上で作業をして、右側は左側で接続しているサーバーからscpなどを実行
  • 画面を左右に分割して左側はサーバーを立ち上げておいて、右側で作業

さいごに

紹介したツールを使うことで、CLIでの作業効率が高まりました。

上記ツールを使う前は、「この処理を短縮したい」・「思った結果を得るのに複雑な処理が必要」といったストレスもありましたが、今回紹介したツール使うことでストレスが少なくなりました。

紹介したいツールは他にもありますが、今回はよく使っている4つのツールを紹介しました。

今後は役立つCLIツールを自分でも作れたら良いなと思っています。