Gentoo Logo

zshの設定及びインストールガイド

目次:

1.  インストール

zshをインストールする

zshをGentooにインストールするには、 app-shells/zsh(zsh本体)とapp-shells/zsh-completion(zshが用いる補完スクリプト)のパッケージをemergeする必要があります。

コード表示 1.1: zshのemerge

# emerge zsh zsh-completion

zshを使い始める

zshを始めて起動する際、以下のようなメッセージが表示されます。 このガイドの後ろの部分を読むときに起動ファイルを作成することになるので、このメニューはスキップしても構いません。

コード表示 1.2: 初期設定のスキップ

$ zsh
This is the Z Shell configuration function for new users, zsh-newuser-install.
You are seeing this message because you have no zsh startup files
(the files .zshenv, .zprofile, .zshrc, .zlogin in the directory
~).  This function can help you with a few settings that should
make your use of the shell easier.

You can:

(q)  Quit and do nothing.  The function will be run again next time.

(0)  Exit, creating the file ~/.zshrc containing just a comment.
     That will prevent this function being run again.

(1)  Continue to the main menu.

--- Type one of the keys in parentheses --- q

2.  設定

初めに

zshコマンドを実行して、zshの単一のセッションを起動してみましょう。 なお、もっと永続的な設定を行う方法については、設定の保存の章を参照してください。 インストールした直後は、zshは非常にシンプルで多機能とは言えないように感じられます。 この挙動を変えるためには、いくつかの設定を変更する必要があります。

高度なタブ補完

有名なzshのタブ補完システムを使えるようにするためには、以下のコマンドを実行する必要があります。

コード表示 2.1: 補完の有効化

% autoload -U compinit
% compinit

標準の補完スタイルはとても単純で見た目が悪いです。この見た目を改善したい場合、以下のコマンドを入力してください。

コード表示 2.2: 補完スタイルの改善

% zstyle ':completion:*:descriptions' format '%U%B%d%b%u'
% zstyle ':completion:*:warnings' format '%BSorry, no matches for: %d%b'

コマンド訂正

入力されたコマンドを自動で訂正する機能を有効にするのも得策です。

コード表示 2.3: 訂正の有効化

% setopt correctall

Prompts

何にせよ、プロンプトが味気ないのだと感じるかもしれませんが、これは数段階の作業で簡単に修正することができます。 初めに、高度なプロンプトを扱うための機能を初期化する必要があります。

コード表示 2.4: 高度なプロンプトの有効化

% autoload -U promptinit
% promptinit

prompt -pコマンドを実行することで、使用可能なプロンプトのサンプルを表示することができます。 ここで、気に入ったものを現在のプロンプトに設定することができます。

コード表示 2.5: サンプルのプロンプトからの選択

(gentooをあなたが選んだプロンプトに置き換えてください)
% prompt gentoo

注意: 色々なプロンプトを試していて、全部のプロンプトのサンプルを一々見たくない場合は、 prompt -lコマンドを使って使用可能なプロンプトのリストを表示することができます。

他の選択肢として、自分で独自のプロンプトを作成するという手があります。そのためにはPS1環境変数を設定する必要があります。

コード表示 2.6: 単純な独自のプロンプト

% export PS1="[Test Prompt] > "
[Test Prompt] >

独自のテキストプロンプトを作成できることはそれ自体優れた機能ですが、 そのうえシステム情報をプロンプト中に表示させるための多くのエスケープシーケンスをzshは備えています。使用可能なエスケープシーケンスの一部を示します。

シーケンス 出力
%T システムの時刻(HH:MM)
%* システムの時刻(HH:MM:SS)
%D システムの日付(YY-MM-DD)
%n あなたのユーザー名
%B - %b 太字の開始 - 終了
%U - %u 下線の開始 - 終了
%d カレントディレクトリ
%~ カレントディレクトリ(~からの相対パス)
%M コンピュータのホスト名
%m The computer's hostname (truncated before the first period) コンピュータのホスト名(の始めのピリオドより前の部分)
%l 現在のあなたのtty

これらのエスケープシーケンスは、単にPS1環境変数の一部として使用すれば、zshによって自動的に解釈されます。

コード表示 2.7: より複雑なプロンプト

% export PS1="[%* - %D] %d %% "
[08:44:23 - 06-02-18] /home/username %

履歴

残念ながら、Gentooの標準でのzshの設定ではコマンド履歴機能を使うことができません。 履歴が有効になっていないシェルを使って作業することは非常にイライラするものであるため、私たちは以下のコマンドを実行するべきです。

コード表示 2.8: 履歴の基本的な設定

% export HISTSIZE=2000
% export HISTFILE="$HOME/.history"

(以下のコマンドを実行しないと履歴は保存されません)
% export SAVEHIST=$HISTSIZE

hist_ignore_all_dupsオプションを設定することで、 入力内容が重複する際には(単一のセッション内にls -lが何度も実行される場合など)履歴を記録しないようにすることができます。

コード表示 2.9: 重複を無視する設定

% setopt hist_ignore_all_dups

特定の項目を履歴に記録しないようにするための、一つ以上のスペースに続けてコマンドを入力するという便利な工夫のやり方を説明します。

コード表示 2.10: 特定の項目を記録しないようにする設定

% setopt hist_ignore_space

(このコマンドは記録されません。コマンドの前の余分なスペースに注意してください。)
%  cat /proc/cpuinfo

雑多な設定

カレントディレクトリの移動のための飽き飽きするようなcdコマンドの入力をしたくないなら、 autocdオプションを指定するのが良いでしょう(例: /etcと、cd /etcの代わりに入力できます)。

コード表示 2.11: autocdオプションの設定

% setopt autocd

bashと同じような標準的なグロブに不満がある場合、extendedglobオプションを指定することで拡張されたグロブ(正規表現に近いもの)を利用できます。

コード表示 2.12: 拡張されたグロブの設定

% setopt extendedglob

上記のオプションが設定されているなら、cp ^*.(tar|bz2|gz)といった拡張されたグロブによるクエリを使うことができます。

3.  設定を保存する

zshの設定を保存する

一旦zshを気に入るようにカスタマイズしてしまったなら、これらの設定をzshのシステムの標準の設定として保存するのが得策です。 そのために、/etc/zsh/zshrcスクリプトに設定を書くという方法が考えられます。 代わりに、~/.zshrcを編集することで自分のアカウントのみに対する標準の設定とすることだってできます。

コード表示 3.1: zshrcの例

#!/bin/zsh

# comp
autoload -U compinit
compinit

# correction
setopt correctall

# prompt
autoload -U promptinit
promptinit
prompt gentoo

4.  zshを標準のシェルにする

root権限を利用できる場合のユーザーの設定

usermodコマンドを使って特定のユーザーのシェルを変更することができます。

コード表示 4.1: usermodを使ったzshへの移行の永続的な設定

# usermod -s /bin/zsh userlogin

rootでないユーザーのための別の方法

もしシステム管理者が(それが何ら無理な要求ではないにも関わらず)あなたのシェルをzshに設定することを認めないならば、 bashの起動時にzshを実行するように設定するという手があります。~/.bashrcにちょっとした変更をしさえすれば十分です。

コード表示 4.2: ~/.bashrcの例

(Add the following to your ~/.bashrc)
exec zsh

シェルを変更する他の方法として、chshコマンド(ユーザーのログインシェルを変更するためのユーティリティ)を使うというものがあります。 一般ユーザーは自分のアカウントのシェルを変更することしかできません。rootならば、全てのユーザーのログインシェルを変更することができます。

コード表示 4.3: chshを使ったzshへの移行の永続的な設定

("username"をあなた自身のユーザー名で置き換えてください)
$ chsh -s /bin/zsh username


印刷

ページの更新日 2006年 10月 18日

この翻訳はすでにメンテナンスされていません。

要約: このガイドではzshをインストールして設定する方法を簡単に解説します。 このドキュメントを読み終わったときには、高度なタブ補完やコマンドの自動訂正やプロンプトの設定といった多くのzshの機能を使えるようになっているでしょう。

Henryk Konsek
Author

Andrew Morritt
Author

Chris White
Editor

Peter Weller
Editor

清水駿介
翻訳

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.