じゃすてぃ
プログラミングやれ!

こんにちは、じゃすてぃです。

みなさん、ターミナル使ってますか?

Macだと初期のターミナルのシェルはbashだと思いますが、それをzshに変更することで、かなり開発が捗ります。

今回は、そのzshの導入方法を紹介していきます。
最近新しいMacbookに開発環境を構築する際に、zshの設定方法を忘れていたので備忘録としてメモ。

zshとは?

Z shell(ズィーシェル、zsh)はUnixのコマンドシェルの1つである。 対話的なログインコマンドシェルとしても、強力なシェルスクリプトコマンドのインタープリターとしても使うことができる。

zsh は数多くの改良を含んだBourne Shellの拡張版という見方もできる。のみならず、bashやksh、tcshの非常に有用な機能も一部取り込まれている。また、Windows上でネイティブUnix環境を提供する Interix サブシステム上ではUnix版のソースコードをビルドしてWindows上で使用することができる。

Wikipedia

zshとは、shell系、csh系の両コマンドが使え、かつksh系のコマンドラインの編集機能を使える素晴らしいシェル。
いろんな機能を設定できて非常に便利です。

zshのここがスゴイ①:補完機能

zshでは、困ったらTabを押します。
Tabキーを押すことで補完が効くので、ファイル名を正確に覚えていなくても最初の文字が分かればそのファイルを見つけることができます。

例えばrubyでaiueoaioefadaelija.rbという絶対に覚えられないファイル名のファイルを実行しようとします。(いや、こんな名前つけないでね本当は。)

$ ruby ai

ここまで押して、タブを押すと、

$ ruby ai
aiueoaioefadaelija.rb
aiai.rb
aiueoiw.rb

と予測変換が出ます。

便利ですね。

zshのここがスゴイ②:コマンドへの配色

コマンドラインにコマンドごとに色合いをつけてくれるので、画面が非常に見やすくなります。
また、git を使った際に、現在のgit のbranchを表示してくれるのも効率的。

zshのここがスゴイ③:エイリアス機能

例えば abcdefghijkというライブラリがあり、あなたが日常的にこのコマンドをタイプしている、としましょう。

毎回abcdefghijkと入力するのって、結構大変だし、タイポしそうですよね?

こんなとき、zshのエイリアス機能を使えばもっと便利になります。
例えば、後述する.zshrcファイル(zshの設定ファイル)に以下を記述してみます。

alias abc='abcdefghijk'

そして設定ファイルをロードすると、あらふしぎ。

% abc

このようにabcと入力するだけで、abcdefghijkを実行できるようになっちゃいます。

Railsだと、bundle exec railsと毎回打つのが面倒であれば、

alias rails='bundle exec rails'

と設定してあげることで、bundle execを省略できるようになっちゃうのです。

じゃすてぃ
これは便利だ・・・!

zshのインストール方法

それではさっそくzshをMacにインストールしていきましょう。

正確には、Macにはzshが最初から入っていますが、バージョンが古いため、最新のzshを入れてあげるのをおすすめします。

インストールにはHomebrewを使用します。

まずはターミナルを開き、以下のコマンドを入力します。

$ brew update

続いて以下のコマンドでzshをインストールします。

$ brew install zsh

ずらーっとコマンドが表示され、しばらくするとインストールが完了します。

zshが無事にインストールされたか、whichコマンドを使って確認しましょう。

$ which zsh
/usr/local/bin/zsh

パスが表示されればインストール成功です。

試しにzshを起動してみましょう。

$ zsh

こちらでエラーが出なければ起動完了です。

zshをデフォルトのログインシェルに変更する

毎回手動でzshを起動するのは面倒ですよね。
ターミナルを開いたときに自動でzshを起動する設定に変更します。

まずはMacが使用するシェルの一覧ファイルを編集します。

$ sudo vim /etc/shells

この例ではvim というコマンドラインエディタを使って編集していますが、他のエディタを使用して編集しても構いません。

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

このようなファイルになっているはずです。
ここの末尾に、先程 $ which zshで得られたパスを入力します。(先程の例だと /usr/local/bin/zsh

# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh
/usr/local/bin/zsh

この内容でファイルを保存しましょう。

続いて以下のコマンドでログインシェルを変更します。

$ chsh -s /usr/local/bin/zsh

/usr/local/bin/zshの内容は、 ご自身の環境で $ which zshを叩いた結果(先程 /etc/shellsに追加したパス)を入力してください。

これでログインシェルを変更できました。
試しに新しくターミナルのタブを開くと、zshが起動していると思います。

zshの設定ファイルを作成する

このままでもある程度便利なzshですが、設定ファイルを作成してあげるとさらに便利になります。

まずはホームディレクトリに移動。

% cd ~

zshの設定ファイルである .zshrcファイルを作成。

% touch .zshrc

ファイルが作成されたかを確認しましょう。

% ls -a

こちらで出力されるファイル名に .zshrcというファイルがあれば作成完了です。

設定内容はいろいろと記述が可能ですが、まずは簡単にすでに他の人が作成している.zshrcファイルを導入してみましょう。

少し凝った.zshrc

こちらのリンクにある設定ファイルをコピーし、.zshrcファイルに貼り付けて保存しましょう。

貼り付けが完了すれば、以下のコマンドで設定ファイルを読み込みます。

% source ~/.zshrc

こちらで画面が変わってきたのではないでしょうか?

今後はターミナルを起動するたびに、今作成した設定ファイルを自動的に読み込んだzshが起動するようになります。

zsh-syntax-highlightingを導入する

続いて、zshでシンタックスハイライトを行ってくれるライブラリを導入しましょう。
まずはHomebrewでzsh-syntax-highlightingをインストールします。

% brew install zsh-syntax-highlighting

インストールが完了したら、.zshrcファイルに以下の一行を追加して保存してください。

source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

こちらで設定が完了です。

ターミナルを再起動するか、以下で設定ファイルを再読込することでシンタックスハイライトが機能するようになります。

% source ~/.zshrc

便利なzshで開発効率をアップ!

いかがでしたか?
今回はzshのインストールから設定の方法を紹介しました。

zshを使うことで充実した補完機能やシンタックスハイライトなど、開発を進める上で非常に便利な機能を利用できます。

プログラミングを行う上でターミナルを使用するのはほぼ避けられないこのご時世。(昔からだ
日常的に使用するものだからこそ、効率よく使えるようにしておきたいですね。

じゃすてぃ
zshを入れてプログラミングやれ!

関連記事

新着記事