こんにちは、じゃすてぃです。
みなさん、ターミナル使ってますか?
Macだと初期のターミナルのシェルはbash
だと思いますが、それをzsh
に変更することで、かなり開発が捗ります。
今回は、そのzsh
の導入方法を紹介していきます。
最近新しいMacbookに開発環境を構築する際に、zshの設定方法を忘れていたので備忘録としてメモ。
目次
zshとは?
Z shell(ズィーシェル、zsh)はUnixのコマンドシェルの1つである。 対話的なログインコマンドシェルとしても、強力なシェルスクリプトコマンドのインタープリターとしても使うことができる。
zsh は数多くの改良を含んだBourne Shellの拡張版という見方もできる。のみならず、bashやksh、tcshの非常に有用な機能も一部取り込まれている。また、Windows上でネイティブUnix環境を提供する Interix サブシステム上ではUnix版のソースコードをビルドしてWindows上で使用することができる。
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
ファイルに貼り付けて保存しましょう。
貼り付けが完了すれば、以下のコマンドで設定ファイルを読み込みます。
% 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を使うことで充実した補完機能やシンタックスハイライトなど、開発を進める上で非常に便利な機能を利用できます。
プログラミングを行う上でターミナルを使用するのはほぼ避けられないこのご時世。(昔からだ
日常的に使用するものだからこそ、効率よく使えるようにしておきたいですね。