Z Shell


シェルとは ?

シェル(shell)は、コンピュータ OS の機能の一部であり、文字ベースのコマンドでファイルの操作やソフトの立ち上げなどを行う特徴があります。構造解析ソフトのほとんどは、その起動や制御にシェルを必要とします。

 シェルのような文字ベースのインターフェイスを CLI(command-line interface)といい、マウスを使用したアイコンの操作などで知られている GUI(graphical user interface)とは対称的といえます。どちらも長所と短所があります。GUI の長所は “user friendly” なデザインになっていることです。Mac を初めて使う方でも、マニュアルを読まなくてもファイルの移動や削除などの基本的な操作が行えるでしょう。一方、CLI の場合コマンドが分からないとまったく操作できません。しかし、いったんコマンドを覚えてしまうと、GUI よりはるかに効率よく仕事ができます。

 例えば、あるフォルダーに、image_001.jpg、image_002.jpg、… image_100.jpg という名前の100枚のイメージファイルがあったとして、名前をそれぞれ sample1_001.jpg、sample1_002.jpg、… sample1_100.jpg に変えたいとしましょう。GUI では、ファイルの名前を一つずつ変えなくてはならなく、とても大変な作業になってしまいます。ところが、CLI である Z Shell では、以下のコマンドを実行するだけで一瞬で名前の変更が終わります。

mmv image_*.jpg sample1_*.jpg

 Mac OS X には、bash、csh、ksh、sh、tcsh、zsh の計6種類のシェルが標準装備されていますが、私はその中の zsh(Z Shell)をお薦めします。理由は、「使いやすいから」の一言につきます。Z Shell の良さについては、後ほど詳しく説明したいと思います。


Z Shell のインストール

Mac OS X には Z Shell が標準装備されていますが、少し手間をかけて最新版をインストールすることをお勧めします。まず zsh(プログラム本体)と zsh-doc(プログラムのドキュメント)のソースコードをダウンロードします。それぞれ bz2 フォーマットで圧縮されたファイルをダウンロードしてください。2012年12月25日現在、最新のファイルは zsh-5.0.2.tar.bz2zsh-5.0.2-doc.tar.bz2 です。インストールを簡略化するために、Fink を用います。

まず、ダウンロードした2つのファイルを、/sw/src にコピーします。ターミナル(または iTerm)を開いて以下のコマンドを実行します。

sudo cp ~/Downloads/zsh-5.0.2.tar.bz2 /sw/src
sudo cp ~/Downloads/zsh-5.0.2-doc.tar.bz2 /sw/src

次に、Fink でインストールするために必要なファイル(zsh-multibyte.infozsh-multibyte.patch)をダウンロードし、以下のコマンドで指定の場所にコピーします。上記のリンクからダウンロードするとき、右クリック(または control + クリック)でコンテキストメニューを開き、「リンクされたファイルを”ダウンロード”に保存」を選択してください。保存されたファイルに .txt の拡張子が付いてしまいますので、コピーするときに拡張子を外します。

sudo cp ~/Downloads/zsh-multibyte.info.txt /sw/fink/10.8/local/main/finkinfo/zsh-multibyte.info
sudo cp ~/Downloads/zsh-multibyte.patch.txt /sw/fink/10.8/local/main/finkinfo/zsh-multibyte.patch

.patch ファイルは、ターミナル(または iTerm)で濁点と半濁点を正常に補完できるように修正するものです。以下のリンクからパッチファイルをいただきました。

http://blog.asial.co.jp/1043

インストールの準備は以上です。以下のコマンドでインストールを実行します。

/sw/bin/fink selfupdate
/sw/bin/fink install zsh-multibyte

最後に、Z Shell を Mac OS X のデフォルトのシェルに設定します。まず、/etc というフォルダの中にある shells というファイルに、下記の一行を加えます。

/sw/bin/zsh

アクセス権の問題で、Mac のデフォルトのエディタ(テキストエディット)では編集できませんので、vi や emacs など UNIX のシステムに標準に入っているエディタまたは、TextMateSubEthaEdit など Mac OS X のネイティブアプリケーションを使用します。TextMate で編集する場合、新しいターミナル(または iTerm)のウインドウを開き、以下のコマンドをターミナルで実行して、ファイルの一番下に /sw/bin/zsh の一行を付け足します。

mate /etc/shells

TextMate editing

保存するときに、パスワードを要求されますので、コンピュータの管理者パスワードを入力します。最後に、以下のコマンドをターミナル(または iTerm)で実行し、Fink でインストールした Z Shell に切り替えます。

chsh -s /sw/bin/zsh


Z Shell の環境設定

Z Shell のあらゆる機能を活用するためには、環境設定ファイルを書いて Z Shell にそのファイルを読み込ませる必要があります。現在、University of California, Santa Cruz の William G. Scott 博士のイニシアティブにより、Mac OS X の Z Shell 環境を構築するプロジェクトが動いています。私もこのプロジェクトに参加させていただいています。この環境設定パッケージをインストールすれば、Mac 上で Z Shell を快適に利用できます。

このパッケージを、X線結晶構造解析を意識して少し手を加えたものを準備しました。良ければ使ってください。インストール方法を以下に示します。

zsh_environment_setup_files.dmg (741 kb)
最終更新日:2013年1月8日

上のリンクからイメージファイルをダウンロードし、ダブルクリックして仮想ディスクをマウントします。ディスクの中には、フォルダが2つと、ファイルが2つあります。

TextMate editing

これらをデスクトップにコピーします。次に、ターミナル(または iTerm)を開き、以下のコマンドを(1行ずつ)実行してください(コピー&ペーストができます)。

mkdir -p ~/Library/init/zsh
sudo mkdir -p /Library/init/zsh
cp -r ~/Desktop/user_zsh/* ~/Library/init/zsh/.
sudo cp -r ~/Desktop/system_zsh/* /Library/init/zsh/.
cp ~/Desktop/zshenv ~/.zshenv
cp ~/Desktop/zshrc ~/.zshrc

新しいターミナル(または iTerm)のウインドウを開き、新しい Z Shell の環境になったか確認します。

Z Shell new environment


最後に…

上記の環境設定が正常に動作するためには、もう2つファイルが必要です(zsh.fink.completion.plistzsh.open.completion.plist)。これらは Z Shell の補完機能を強化するものです。補完機能は、ターミナル(または iTerm)でコマンドを入力している途中で、tab キーを押すことによって、入力を完結させたり、次の入力候補を表示したりする機能です。この2つのファイルは、fink と open のコマンドの後に入力するコマンドの候補をデータベースにして、自動的にデータベースをアップデートします。これらがあると、補完がスピーディーに、そして正確に行われるようになります。

2つのファイルをダウンロードした後、/Library/LaunchAgents にコピーします。

sudo cp ~/Downloads/zsh.fink.completion.plist.txt /Library/LaunchAgents/zsh.fink.completion.plist
sudo cp ~/Downloads/zsh.open.completion.plist.txt /Library/LaunchAgents/zsh.open.completion.plist

上記の2つのファイルを実行するためには、パソコンを再起動する必要があります。

以上で、構造解析ソフトをインストールするための準備ができました。

 

最終更新日:2013年1月8日

Thoughts on Mac, Science, Traveling, and Enjoying Life