【コラム】

漢のzsh

1 最強のシェル、それは「zsh」

 
  • <<
  • <

1/24

IDEの発展やAjaxなど現在のデベロッパにとってGUIとうまくお付き合いすることは開発効率を上げるうえで必須といえる。しかしながら、シェルというCUI環境も根強い人気がある。GUIと違ったカスタマイズ、アジリティ、効率の良さ、幅広い対応プラットフォームなど、なくてはならないものだ。

本連載ではそうしたCUI環境の充実を補佐することを目的とし、"zsh"について語ってみようとおもう。かつてzshはUTF-8の扱いが弱いところがあったが、それもずいぶんと改善され、ここ1年でzshへ移行しやすい状況が整ってきている。はじめるには悪くないタイミングだ。

最初に軽くzshについて紹介しておこう。

名前につく"z"の文字は、「究極の」という意味がこめられているらしい。系統としてはsh系である。つまり、zshはsh系の超高機能シェルといえるだろう。Linuxなどのユーザーであればsh系であることの意味は語るまでもないだろうが、要はつぶしが利くと捉えておけばいいだろう。

高機能で様々なことができるし、組み込み機能を多く持つので、設定ファイルも簡素になる。この連載がそんな状況の助けになれば幸いだ。基本的な設定、便利な設定、ときには珍妙な設定までzshの機能を紹介していきたいと考えている。ぜひとも活用していただきたい。

これだけはやっとけ - compinit

さて、zshもインストールしただけではただのシェル。「最強」にするには、設定が肝だ。そんな設定の中でも最も基本かつ強力なのが次の2行だ。早速設定しておこう。

autoload -U compinit
compinit

この2行をホームディレクトリの.zshrcファイルに追加することで、zshの強力な補完機能への扉が開かれる。最初の数回は基本的な設定内容を説明するが、そのあとは早速この補完機能の詳細設定に入るつもりだ。

.zshrcに加えた内容を次のコマンドでシェルに教えて、早速その効果を確かめてみよう。

% source ~/.zshrc

この状態で"ls -"と入力して"Tab"キーを押すと……

% ls -
-1 -- single column output
-A -- list all except . and ..
-B -- don't list entries ending with ~
-C -- list entries in columns sorted vertically
-D -- generate output designed for Emacs' dired mode
-F -- append file type indicators
-G -- inhibit display of group information
-H -- sizes in human readable form; powers of 1000
-I -- don't list entire matching pattern
-L -- list referenced file for sym link
-N -- print raw characters
-Q -- quote names
-R -- list subdirectories recursively
-S -- sort by size
--以下省略--

となるはずだ。また、"tar "と入力して"Tab"キーを押すと……

% tar
A -- append to an archive
c -- create a new archive
f -- specify archive file or device
t -- list archive contents
u -- update archive
v -- verbose output
x -- extract files from an archive

となるはず。

実はこの補完、configureスクリプトやmake、antなどのコマンドでも効くのだ。さらに便利なのが、sshやscpといったコマンドでも使える。ためしに"ssh "と入力して"Tab"キーを押してみてほしい。ホストやユーザ名が補完されるはずだ。

zshではあらかじめ多くのコマンドに対して非常に便利な補完機能が用意されている。一度使えば、これなしには生きていけないというくらい病み付きになってしまう。さぁ、既に最強たるゆえんがわかっってきたのではないだろうか?

設定ファイル

さて、先ほど設定を書き込んだ.zshrc、当然zshの設定ファイルなのだが、.zshrc以外にもいくつか存在する。基本的に.zshrcを使えばいいが、今週はこれらを紹介して終わりとしよう。

zshで使われる設定ファイルは基本的には「.zshenv」「.zprofile」「.zshrc」「.zlogin」「.zlogout」の5つ。bash/shとtcsh/cshの設定ファイルの特徴を整理したような組み合わせになっている。

ログインシェルとして起動した場合(要するにzshをユーザアカウントのシェルとして設定しておいてユーザがログインした場合)、ログインシェルではなくただのインタラクティブシェルとして起動した場合、シェルスクリプトを実行するコマンドとして起動された場合、ログインシェルからログアウトする場合でそれぞれ読まれるファイルと順序が決まっている。オプションを指定するなどして順序を変えない限り、次のように読まれるはずだ。

ログインシェルとしてzshが起動された場合

1 ~/.zshenv
2 ~/.zprofile
3 ~/.zshrc
4 ~/.zlogin

インタラクティブシェル(ログインシェルとしてではない)としてzshが起動された場合

1 ~/.zshenv
2 ~/.zshrc

シェルスクリプトを実行するコマンドとしてzshが起動された場合

1 ~/.zshenv

ログインシェルとして起動されたzshからログアウトする場合

1 ~/.zlogout

なので、基本的に設定は.zshrcファイルに書いておけばいい。環境変数を設定するなどログイン時に一度だけ実行すればいいような設定だけ.zprofileに書いておく。一時的にzshをインタラクティブシェルとして起動するような使い方をする場合はぜんぶ.zshrcに書いておけばいい。

.zshenvはシェルスクリプトコマンドとしてzshを実行する場合にも読み込まれるので、予期せぬ設定をしておくとハマることもある。よくわからなければ使わない方がいいだろう。

まずはこんなところだ。さっそくzshをインストールして"Tab"キーを使った補完を堪能してみよう。

  • <<
  • <

1/24

インデックス

連載目次
第24回 グッバイ野郎ども! コピペではじめるzshファイナル
第23回 コマンド補完設定 - アーキテクチャタイプ編
第22回 もってけ泥棒! コピペで始めるzsh - リターンズ
第21回 コマンド補完設定 - ファイルシステムタイプ編
第20回 コマンド補完設定 - cal/ncalコマンド編
第19回 コマンド補完設定 - trafshowコマンド編
第18回 コマンド補完設定 - daemonコマンド編(2)
第17回 コマンド補完設定 - daemonコマンド編(1)
第16回 拡張子ごとにコマンドを自動実行 - 「alias -s」
第15回 **で簡単ヒット!!! - 漢達への熱いお願い付き
第14回 zshとscreenで最強のターミナル環境
第13回 タブキーは最強だ - ファイルグロブもサクっと展開
第12回 一時ファイルはもういらない - プロセス置換
第11回 zshはエディタか? - 「zed」でお手軽編集
第10回 もってけ泥棒! コピペで始めるzsh
第9回 世界はモノクロからカラーへ
第8回 これは既にシェルを超えている…… zshの算術演算
第7回 ひと味違うzshのリダイレクト
第6回 漢はだまって先方予測 - あなたはこの機能使いこなせるか
第5回 「あーっ!」というそのときのために - 備えあれば憂いなしの設定集
第4回 コマンド履歴の検索~EmacsとVi、どっちも設定できるぜzsh
第3回 同じことを2度するなんて…… 自分の過去は利用しましょう
第2回 取りあえず、プロンプトを整えておく。カッコつけたいからね
第1回 最強のシェル、それは「zsh」

もっと見る



転職ノウハウ

あなたが本領発揮できる仕事を診断
あなたの仕事適性診断

シゴト性格・弱点が20の質問でサクッと分かる!

「仕事辞めたい……」その理由は?
「仕事辞めたい……」その理由は?

71%の人が仕事を辞めたいと思った経験あり。その理由と対処法は?

3年後の年収どうなる? 年収予報
3年後の年収どうなる? 年収予報

今の年収は適正? 3年後は? あなたの年収をデータに基づき予報します。

激務な職場を辞めたいが、美女が邪魔して辞められない
激務な職場を辞めたいが、美女が邪魔して辞められない

美人上司と可愛い過ぎる後輩に挟まれるエンジニアの悩み

人気記事

一覧

イチオシ記事

新着記事

KinKi Kids新アルバム、週間ランキング初登場1位に! 13.1万枚売上
[04:00 9/27] エンタメ
テラハ新シリーズの舞台はハワイ! 新メンバー出演番組のライブ配信も決定
[01:00 9/27] エンタメ
[テラスハウス]海外初進出 新シリーズはハワイで展開
[00:31 9/27] エンタメ
TVアニメ『orange』が映画化! 『orange -未来-』が11/18より2週間限定公開
[00:00 9/27] ホビー
[パトレイバー]後藤隊長カレンダーが「月刊!スピリッツ」付録に 「みんなで幸せになろうよ」
[00:00 9/27] ホビー

求人情報