久しぶりのブログになります。澤井です。
私は、入社前はCLIを使う機会は、あまりありませんでした。最近になって、業務でCLIを使う機会が増えました。そこで、今回は実際に使ってみて、便利だと感じたCLIツールをいくつか紹介したいと思います。
紹介するツール
今回は個々のツールの概要を紹介するのが目的ですので、インストールや使い方は各ツールのドキュメントを参照ください。
peco
peco
は、入力をインクリメントサーチする機能を提供します。
簡単な例としてls -al | peco
で、ディレクトリ内をインクリメントサーチする例を紹介します。
他の例としては、grep
やfind
などの結果をパイプを使って、peco
へ入力として渡して、インクリメントサーチで絞り込むといった使い方などが浮かびます。
機能はシンプルですが、色々な使い方が考えられると思います。 なかでも個人的に、とても便利だと感じている使い方を1つ紹介します。
コマンド履歴をサーチ
コマンド履歴はMacならctrl + r
で検索できますが、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のバージョンが設定されました。
設定ファイル1つでバージョンを切り替えることができるのはとても便利です。
PsySH
PHPの高機能なREPLです。PHPのREPLは他にもありますが、以下の点が気に入っています。
- 補完が優秀
doc 関数名
でビルトイン関数のマニュアルを表示
特に個人的には、ビルトイン関数のマニュアルを簡単に表示する機能は、便利だと感じています。
tmux
tmux
は端末多重化ソフトウェアと呼ばれるソフトです。
私は使い始めたばかりですが、ウィンドウの作成や画面を分割する機能を使うだけでも、作業効率が高まりました。
私の使い方をいくつか紹介します。
- 複数のプロジェクトごとにウィンドウを作成して、ショートカットキーで切り替え
- 画面を左右に分割して左側はサーバー上で作業をして、右側は左側で接続しているサーバーから
scp
などを実行 - 画面を左右に分割して左側はサーバーを立ち上げておいて、右側で作業
さいごに
紹介したツールを使うことで、CLIでの作業効率が高まりました。
上記ツールを使う前は、「この処理を短縮したい」・「思った結果を得るのに複雑な処理が必要」といったストレスもありましたが、今回紹介したツール使うことでストレスが少なくなりました。
紹介したいツールは他にもありますが、今回はよく使っている4つのツールを紹介しました。
今後は役立つCLIツールを自分でも作れたら良いなと思っています。