第2回 ターミナルを使ってみよう(2)

Finderとの連携

前回、基本的なコマンドの使い方をお教えしましたが、やっぱり一般的にファイルの操作はFinderのほうが効率的だということがお分かり頂けたと思います。しかしながら、プログラミングやシステム管理をやっているとどうしてもターミナルの使用を強いられる場面が度々あります。まだホームディレクトリの浅い階層のディレクトリで作業しているうちはまだいいですが、Webサーバーの設定ファイルを修正する場合など、システム関係のディレクトリで作業する場合、いちいち"cd"コマンドの後に絶対パスを入力したりするのは面倒です。こんな時はFinderとうまく利用すると、絶対パスの入力が楽になります。

例えば、Webサーバー(Apache)の設定ファイルはディレクトリ"/Library/WebServer/Configuration"にありますが、いちいち"cd /Library/WebServer/Configuration"と入力するのは面倒です。こんな時はまずターミナルで"cd<スペース>"とタイプしてのち、Finderウィンドウで"/Library/WebServer/Configuration"のフォルダーをターミナルにドラッグ&ドロップします。そうすると"cd /Library/WebServer/Configuration "と入力されたと思います。このまま<リターン>キーで"/Library/WebServer/Configuration"がカレントディレクトリになります。 (MacOSX製品版 1.0 ではApacheの設定ファイルの場所が変更しました?)
Windowsではお馴染みの、DOSプロンプトにフォルダーアイコンをドラッグ&ドロップするのと同じことが、MacOSXのターミナルでもできます。僕は結構便利な機能だと思ってます。


図1 Finderとターミナルの連携

 

シェルを使いこなそう

コマンド補完
もう一つパス名を簡単に入力する便利な機能があります。シェルのコマンド補完機能です。"cd /Lib"とタイプして<tab>キーを押して下さい。ターミナル上では"cd /Library/"となっていると思います。このようにキーを押すことでパス名を補完してくれます。これは"tcsh"の入力補助機能の1つです。今回はすんなり補完されましたが、他にも候補がある場合、候補の一覧がリスト表示されます。候補が1つだけになれば完全に補完されます。

履歴機能
シェル
(tcsh)の入力補助機能はいくつかありますが、最も頻繁に使うのは履歴機能です。何度も同じ操作を繰り返さなければいけない時は良くありますが、そんな時はカーソルキーの↑↓キーを使います。で履歴を遡れます。戻り過ぎた時はで進めます。

シェルとは
これでかなりターミナルでの作業が効率的になったと思います。さて、先程からシェルというキーワードが出てきていますが、このシェルとはなんなんでしょうか。 シェルとは、ユーザーが入力したコマンド行を読み込み、解釈し、実行までを導くプログラムです。例えばユーザーが"ls<リターン>"と入力した時、"ls"コマンドを実行し、結果(ファイルのリスト)をターミナル画面に表示させているのはシェルが行っているのです。ターミナルというアプリケーション自体は、キー入力とウィンドウへのテキスト表示を行っているだけにすぎないとでも思って下さい。実際はシェルがユーザーインターフェイス(CUI)を提供しているのです。ターミナル意外のアプリケーションでも、シェルを実行できれば、ターミナル同様にファイル操作などを行えます。


図2 ターミナルとシェルの関係

シェルの最も重要な機能は、文字の入出力(標準入出力、エラー出力)の制御です。通常はキー入力が標準入力、画面への出力が標準出力となり、これらをシェルが制御しています。この機能をうまく利用すると、標準入出力をファイルに割り当てることができます。前回、空のテキストファイルを作成するのに、"echo > test.txt"としましたが、これは"echo"(何も出力しない)を"test.txt"に標準出力せよ、ということです。">"をリダイレクションと言い、標準出力をファイルに切り替えます。結果として空のテキストファイル"test.txt"が作成されます。

シェルの種類
先程、シェル(tcsh)と書きましたが、シェルにも種類があります。MacOSXのターミナルで標準的に使われるのは"tcsh"(TCシェル)です。一方Linuxでは"bash"(バッシュ)が使われることが多いようです。その他"sh"(Bシェル)、"csh"(Cシェル)があります。これらはそれぞれ特徴があり、使い方が微妙に違います。

シェルの種類 特徴 用途
sh(Bシェル) 元祖シェル シェルスクリプトの実行
csh(Cシェル) Bシェルのスクリプト表記をC言語風に改良 シェルスクリプトの実行・標準的なユーザーインターフェイスの提供
tcsh(TCシェル) Cシェルのユーザーインターフェイスを改良 ユーザーインターフェイスの提供
bash(バッシュ) Bシェルのユーザーインターフェイスを改良

ユーザーインターフェイスの提供・管理者向け

その他zshなどいろいろあるようです。

シェルの種類

シェルはCUIベースのアプリケーションのプログラミングなどでは、常に頭の片隅において置かなければならないと思います。でも皆さんシェルって何だか分かりましたか?僕もホントは分かってませんが... 次回は早速プログラミングに挑戦しましょう。

次回は早速プログラミングに挑戦しましょう。

目次に戻る