驚きのZsh活用術
読む所要時間: 8 分
UNIXベースのプログラミングでは、シェル、ターミナル、コマンドラインといったインターフェースを話題にすることがよくあります。最も有名なのはおそらくbashですが、他にも広く使用されているものがあります。その1つがZsh(Zシェル)です。この記事では、Zshの詳細と、開発を最適化するためのヒントやコツを説明します。
Zshとは
Zsh(別名Zシェル)はBourneシェル(sh)の機能を拡張し、プラグインやテーマに関する新機能を追加してサポートを強化したものです。2019年にMacOS Catalinaで採用されてからは、Macのログインとインタラクティブのシェルとして、デフォルトになりました。
Zshのインストール
Zshをインストールするには、Homebrewでbrew install zsh
を使います。
また、最も普及しているZshプラグインであるoh-my-zshもインストールできます。oh-my-zshには、組み込みプラグインとテーマが多数付属しており、次のスクリプトでインストールできます。
Zshのあまり知られていない9つのヒントとコツ
1. 私のチームメイトのValériane Venanceが、take
コマンドについてツイートしています。このコマンドでは、ディレクトリの新規作成と変更を実行できるため、2種類のコマンド(mkdir
とcd
)を入力する必要がなくなります。take
を使用すると、必要に応じて中間ディレクトリも作成できます。
2. 履歴内の検索。 ターミナルで上矢印を押すと、以前に使用したコマンドを繰り返すことができます。最も新しいコマンドが最初に表示されます。zshでは、使用した特定のコマンド(mkdir
など)を繰り返すことができます。
チームメイトのMatthew Gilliardは、ctrl-r ___の便利な利用方法を教えてくれました。このコマンドを使用すると、特定のフレーズを最後に検索したのがいつかが分かります。ctrl-r
を再度クリックすると2番目に新しいフレーズ、さらにもう一度クリックすると3番目に新しいフレーズ、のように順番に表示されます。
3. 自動cd。ディレクトリを切り替えるときは、
cd
と入力する必要はありません。ディレクトリ名だけを入力します。
4. zmv
によるファイル名の一括変更。 zmvをインストールするには、autoload zmv
を実行します。私は、機械学習モデル用にダウンロードした多数の画像ファイルの名前を、より一貫性のあるものに変更したいと考えていました(1.jpg、2.jpg、3.jpg...ではなくepcot-1.jpg、epcot-2.jpg、epcot-3.jpg…など)。この操作を実行するためのコマンドは次のとおりです。
コマンド実行前にどういう結果になるのかを確認するには、コマンドを実行する代わりに-nを追加します。
このコマンドにはどのような意味があるのでしょうか。(*).(jpg|jpeg)
を実行すると、末尾に.jpg
または.jpeg
が付くディレクトリ内のファイルが検索されます。次に、epcot-$1.$2
で各ファイル名を編集します。このためには、epcot-
の後に元のファイル名(ここでは$1
)と元のファイルタイプ(ここでは$2
)を付けます。
5. コマンドラインを計算機代わりに使用する。
6. 多数用意されている便利なプラグインを活用する。 「インストール」の項で述べたとおり、oh-my-zshには多くのプラグインが付属しています。npm
プラグインとsudo
プラグインを含めるには、次の行を~.zshrc
ファイルに追加します: plugins=(npm sudo)
。特に便利なプラグインは次のとおりです。
npm
: npmコマンドに自動補完を追加します。sudo
:sudo
をコマンドに追加します。esc
をダブルクリックすれば、コマンドを入力した後でも追加できます。
Zsh-autosuggestions
: 入力中に、以前使用したコマンドと完了の履歴に従ってコマンドを提示します。
web-search
を使用すると、コマンドラインから検索エンジンを開くことができます。例えば、google ___
を実行すると、Googleで所定のフレーズ(以下の例ではSerena Williams)が検索されます。
git
にはgit
コマンドの多くのエイリアスが含まれるため、入力の手間と時間を節約できます。例えば、git add
と入力する代わりに、ga
と入力すれば済みます。エイリアスのリストはこちらにあります。
7. パークコマンド。Ctrl-qを使用すると、入力中のコマンドを「保留」し、プロンプトに戻って他のコマンドを新たに入力することができます。他のコマンドを実行すると、元のコマンドが保留解除されてコマンドラインに再入力されます。中断していた作業を忘れずに再開できて便利です。
8. コマンドラインに入力した後でも、コマンドを簡単に編集できる。長いコマンドを入力または貼り付けた後、実行前に編集が必要になった場合は、ctrl-x-e
を使用して、このコマンドをエディターで開くことができます(通常はviですが、$EDITOR
環境変数を使用して任意のテキストエディターに設定できます)。
9. キーボードショートカットを使用できる。 ターミナルをクリアするとき、clear
の代わりにctrl l
を使用できます
シェル入力を効率化する次のステップ
これまで説明した操作は手始めにすぎません。zshとoh-my-zshの活用方法はまだたくさんあります。こちらのoh-my-zsh虎の巻と、TwilioのエンジニアであるJoe Blockが管理しているZSHのフレームワーク、テーマ、プラグインのリストもご覧ください。また、皆さんのターミナル活用術についても、ぜひオンラインでお寄せください。
- Twitter: @lizziepika
- GitHub: elizabethsiegle
- Email: lsiegle@twilio.com