jump to navigation

zshの基本的な使い方 1/3 「導入~基本設定」編

2008-01-23 23:29 Posted by
nase
in : ソフトウェア
keyboard2_1.jpg

「究極のシェル」といわれるzshは、Linuxをお使いの方なら一度はその名前を聞いたことがあるはず。

しかし「究極」であるが故に「使いこなすのは大変そう」と感じて手を出せずにいるケースも多いのではないでしょうか。

私はLinuxを触りだしてまだ半年も経たないぺっぽこユーザですが、興味本位でzshを使い始めてみました。

ちょっと使ってみて分かったのは、bashを使っていたときと比べて思っていたほど違和感を感じないということ。

ただ、細かい部分が微妙に便利になっていて、これがなんともいい感じなのです。

zshのインストール方法

zshはyumが使える環境であれば「yum install zsh」でインストールできます。

私の場合はスタンドアロンの環境で作業することが多いので、ここではソースからインストールする方法を書いておきます。

ZshのWebサイトにはなにやらリンクがたくさんありますが、SourceForgeのダウンロードページへ行けばソースがダウンローできます。

zshのインストールは、一般的なソース形式で配布されているツールと基本的に変わりません。

以下のようなお馴染みの流れでインストールできます。(デフォルトでは/usr/local以下にインストールされます。インストール先を変更したい場合はconfigureのprefixオプションで指定してください。)

$ ./configure
$ make
$ su
# make install

インストールが完了し、コマンドにパスが正しく通っていればzshコマンドでzshを起動できます。

ログイン時に自動的にzshが起動するようログインシェルとして指定する場合は、/etc/passwdにある対象ユーザのログインシェルのパスをzshのものに書き換えてください。

.zshrcの設定

zshの設定ファイルはbashなどと同じようにいくつか存在しますが、ユーザごとの設定は~/.zshrcに書くのがよさそうです。

基本的な設定は以下のページが参考になりますので、ありがたく使わせていただきましょう。

ちなみに私の.zshrcはこんな感じになりました。(とりあえず基本的なところだけ抜粋。コメントも含め上記参考サイトからほとんどそのまま使わせていただいています)

export LANG=ja_JP.UTF-8

## 履歴の保存先
HISTFILE=$HOME/.zsh-history
## メモリに展開する履歴の数
HISTSIZE=100000
## 保存する履歴の数
SAVEHIST=100000

## 補完機能の強化
autoload -U compinit
compinit

## コアダンプサイズを制限
limit coredumpsize 102400
## 出力の文字列末尾に改行コードが無い場合でも表示
unsetopt promptcr
## Emacsライクキーバインド設定
bindkey -e

## 色を使う
setopt prompt_subst
## ビープを鳴らさない
setopt nobeep
## 内部コマンド jobs の出力をデフォルトで jobs -l にする
setopt long_list_jobs
## 補完候補一覧でファイルの種別をマーク表示
setopt list_types
## サスペンド中のプロセスと同じコマンド名を実行した場合はリジューム
setopt auto_resume
## 補完候補を一覧表示
setopt auto_list
## 直前と同じコマンドをヒストリに追加しない
setopt hist_ignore_dups
## cd 時に自動で push
setopt auto_pushd
## 同じディレクトリを pushd しない
setopt pushd_ignore_dups
## ファイル名で #, ~, ^ の 3 文字を正規表現として扱う
setopt extended_glob
## TAB で順に補完候補を切り替える
setopt auto_menu
## zsh の開始, 終了時刻をヒストリファイルに書き込む
setopt extended_history
## =command を command のパス名に展開する
setopt equals
## --prefix=/usr などの = 以降も補完
setopt magic_equal_subst
## ヒストリを呼び出してから実行する間に一旦編集
setopt hist_verify
## ファイル名の展開で辞書順ではなく数値的にソート
setopt numeric_glob_sort
## 出力時8ビットを通す
setopt print_eight_bit
## ヒストリを共有
setopt share_history
## 補完候補のカーソル選択を有効に
zstyle ':completion:*:default' menu select=1
## 補完候補の色づけ
eval `dircolors`
export ZLS_COLORS=$LS_COLORS
zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
## ディレクトリ名だけで cd
setopt auto_cd
## カッコの対応などを自動的に補完
setopt auto_param_keys
## ディレクトリ名の補完で末尾の / を自動的に付加し、次の補完に備える
setopt auto_param_slash
## スペルチェック
setopt correct
## {a-c} を a b c に展開する機能を使えるようにする
setopt brace_ccl
## Ctrl+S/Ctrl+Q によるフロー制御を使わないようにする
setopt NO_flow_control
## コマンドラインの先頭がスペースで始まる場合ヒストリに追加しない
setopt hist_ignore_space
## コマンドラインでも # 以降をコメントと見なす
setopt interactive_comments
## ファイル名の展開でディレクトリにマッチした場合末尾に / を付加する
setopt mark_dirs
## history (fc -l) コマンドをヒストリリストから取り除く。
setopt hist_no_store
## 補完候補を詰めて表示
setopt list_packed
## 最後のスラッシュを自動的に削除しない
setopt noautoremoveslash

補完機能に関する設定

上記設定のうち、以下の部分で補完機能の設定を行っています。

## 補完機能の強化
autoload -U compinit
compinit

こうしておくと、例えば「tar 」と入力してTabキーを押すとオプションの候補が一覧表示されたりという賢い補完を行ってくれるようになります。(さらに「tar c」まで入力してTabを押せば、今度は同時に指定できるオプションだけが表示されます)

この補完機能と一緒に指定しておくと便利そうなのが以下の部分。

補完関連その1

## 補完候補を一覧表示
setopt auto_list

補完候補が複数ある時、一回目のTABで一覧表示します。このオプションはデフォルトでONになっているようなので、逆に「unsetopt auto_list」としてやると、2回目のTABで一覧が表示されるようになります。お好みで。

補完関連その2

## TAB で順に補完候補を切り替える
setopt auto_menu
## 補完候補のカーソル選択を有効に
zstyle ':completion:*:default' menu select=1

ひとつめはTABキーだけで補完候補を巡回できるようにする設定。これで入力がかなり楽になります。さらに二つめの設定では矢印キーでの移動も可能に。

補完関連その3

## 補完候補を詰めて表示
setopt list_packed

補完候補がたくさんあるとき、なるべく詰めて表示してくれるようになります。狭いスペースで沢山表示できるようになるので設定しておくと便利。(表示の違いは「漢のzsh (5)などでご確認あれ。)

連載一覧

Comments»

1. techlog - 2008-3-2

[Linux].zshrcを作ってみた…

以前zshを入れて、感動していた。 ある程度オレオレ設定が固まったので、晒してみる。細かい設定の意味などは、参考URLに任せよう。 ここではzsh導入で便利になったこ (more…)

2. techlog - 2008-3-3

[Linux][zsh]zshのまとめ…

.zshrcを作るにあたって、いろいろとお世話になったエントリをまとめてみる。 はてなやid:naoyaさん関連。 これを見て、zsh使いかっこいいなぁと思ったのが、 (more…)

3. 佐藤 謙一 - 2010-5-23

初心者です
インストールは分かりました。でも、機動のやり方がわかりません。まず、設定より動かし方を知りたいです。

4. nase - 2010-5-24

起動方法は他のシェルと同じです。以下の部分で記述していますが、分からない場合は「シェル 変更」などで検索してみてください。

インストールが完了し、コマンドにパスが正しく通っていればzshコマンドでzshを起動できます。

ログイン時に自動的にzshが起動するようログインシェルとして指定する場合は、/etc/passwdにある対象ユーザのログインシェルのパスをzshのものに書き換えてください。


*Comments and trackbacks will appear after it is approved by the administrator.