zsh のセットアップ
最近、うちのMacOS-Xだけでなく会社でも zsh を味見中なのだ。
Security Update 2004-09-07 Ver.1.1 がリリースされている。中身は先日出た Security Update 2004-09-07 と同じようなのだが、いくつかセキュリティホール以外の不具合が修正されているらしい。セキュイティアップデートにバージョン番号がついているのも珍しい話だ。セキュリティについて言えば、Samba にも重大な脆弱性が発見されたらしい。MacOS-X も Samba を含んでいるので、きっと近日中にセキュリティアップデートが出ることだろう。
zsh は究極のシェルと呼ばれるとおり既存のシェルにある機能は全部あると思ってよさそうだ。コマンドライン編集、タブキーによるコマンド名、ファイル名補完、ヒストリー、エイリアス、etc... 全部ある。どこから憶えていけば良いものか迷うところだが、先ずは個々の環境設定(セットアップ)を済ましておこう。
zsh は起動時に順にホームディレクトリの
".zshenv"
".zprofiile" (zsh がログインシェルの場合)
".zshrc"
".zlogin" (zsh がログインシェルの場合)
のスクリプトファイルを読み込む。ここに各自の環境設定を書くことになるのだが、文法が分からんでは仕方がない。zsh は sh、bash系のシェルであり、文法は sh の上位互換である。そのため、csh、tcsh とは文法が異なる。bash用の ".bash_profile" 、".bashrc" 等から流用するのも手だろう。またzsh をビルドした場所に "StartupFiles" というディレクトリがあり、その中に "zshrc" 等がある。これを使ってもよいが、その場合、
# THIS FILE IS NOT INTENDED TO BE USED AS /etc/zshrc, NOR WITHOUT EDITING
return 0 # Remove this line after editing this file as appropriate
|
と書かれている行を削除しておく必要がある。
セットアップとしては何と言っても環境変数とエイリアスは必須だろう。環境変数設定は "~/.zshenv" で行うのが一般的らしい。環境変数を設定するには sh風に、
で良い。例えば、
LD_LIBRARY_PATH="/usr/local/pgsql/lib"
export LD_LIBRARY_PATH
|
エイリアスは "~/.zshrc" に記述する。文法は、
alias 別名='command param etc ...'
|
と言った感じ。例えば、
という感じに記述する。
ちなみに "~/.zshrc" の中で環境変数を設定することもできるが、リモートでloginした場合に有効になるのは "~/.zshenv" の方だけと言うことだ。
用意ができたら zsh を起動してみる。起動させると、
$ zsh
Ignore insecure directories and continue [ny]?
|
と警告メッセージが出る場合がある。ディレクトリのパーミッションが安全でないと言っているようだ。"n" を入力すると、
$ zsh
Ignore insecure directories and continue [ny]? n
run compaudit to see list of insecure directories
compinit: initialization aborted
|
となり、"compaudit" コマンドを使うと安全でないディレクトリの一覧が表示されると言う。言われたとおり"compaudit" コマンドでディレクトリ一覧を表示させ、そのパーミッションを変更すれば、zsh起動時の警告メッセージは表示されなくなる。
$ compaudit
There are insecure directories:
/export/home/hoge
$ chmod 755 /export/home/hoge
|
以上、セットアップはこんなところで・・・
|