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

MacOSXがこれまでのMacOSと異なる点の一つに、Darwinと呼ばれるBSD UNIXベースのUNIX機能の存在があります。Quartz,CarbonといったMacOS的な要素は、Darwin,MachカーネルといったUNIX的要素をベースにしているので、言い換えればMacOSXはMacOSの皮をかぶったUNIXと言えます。
実際、MacOSXを使いはじめたころはなんだかMkLinux(Appleが以前PowerMac用に作ったLinux)っぽいという印象を受けました。まだまだ使えるアプリケーションが少ないこともあるのですが、ターミナルを使っていろいろ遊べるとこなんかはMkLinuxに似てます。MacOSXは以前のMacOSとの親和性が高いので、MkLinuxなんかよりずいぶん使いやすくなってますが。

ターミナルを使ってみよう

ターミナルとはMacやWindowsと違い、OS上でファイル操作などを文字ベースで行うためのアプリケーションです。こうした文字ベースでのインターフェイスをCUIといいます。ちなみにアイコンなどのグラフィックでOSの操作を行うことをGUIと言います。LinuxなどのUNIXではGUIよりむしろCUIでの操作がメインとなっています。MS-DOSに似ていますが、UNIXやMacOSXでは「シェル」と呼ばれるプログラムがターミナル上での文字の入出力を管理していますので、MS-DOSに比べ使い勝手の良いものになっています。

ホームディレクトリ

では早速ターミナルを使ってみましょう。ターミナルは"/Applications/Utilities/"(UNIX的なパス表記ですいません)にTerminalという名前であります。(図1)
ターミナルを起動すると、ウィンドウが1つ表示されます。とりあえず"ls"と入力して、リターンキーを押して下さい。そうするとホームディレクトリのディレクトリ内のファイルとディレクトリ(フォルダ)の一覧がターミナルのウィンドウに表示されます(図2)。ホームディレクトリとはFinderウィンドウのHomeボタンを押すと移動するディレクトリのことです。これはユーザーによって異なり、各ユーザの基本ディレクトリです。(※以降、フォルダのことをディレクトリとして説明します。)



図1
ターミナルで"pwd<リターン>"と入力してみましょう。僕の場合"/Users/note"と表示されました。これがホームディレクトリのパスです。パスとはUNIXでディレクトリの場所をさす表記のことです。今度はFinderウィンドウでカラム表示に変更してみましょう。起動ディスクの"Users"の"note"がホームディレクトリであることが分かります。先程タイプした"pwd"は現在作業中のディレクトリを表示させるコマンドで、また現在作業中のディレクトリのことを「カレントディレクトリ」といいます。ターミナルウィンドウを出した時のデフォルトのカレントディレクトリはホームディレクトリになります。 (図2)

説明が遅れましたが、最初に入力した"ls"というコマンドは、ディレクトリの中のファイルとディレクトリの一覧を表示させるコマンドでした。ちなみに"ls"や"pwd"は「コマンド」といってターミナルでコマンド名をタイプしてのち、リターンキーを押すとコマンドの結果が表示されます。


図2

カレントディレクトリとその移動(cdコマンド)

最初にlsコマンドを使ってホームディレクトリの中のファイルとディレクトリの一覧を表示させましたが、今度はホームディレクトリの中の"Documents"ディレクトリにカレントディレクトリを移動しましょう。"cd"<スペースキー>"Documents"<リターン>"と入力して下さい。その後また"pwd"コマンドでカレントディレクトリを表示させてみて下さい。"/Users/<ユーザー名>/Documents"と表示できましたか。"cd"とはカレントディレクトリーを移動させるコマンドで、"cd<スペース><移動先のディレクトリ名>"といった具合に使います。

今度はもとのホームディレクトリに戻りましょう。ホームディレクトリは1つ上の階層のディレクトリなので"cd<スペース>..<リターン>"と入力します。"pwd"で確認してみて、"/Users/<ユーザー名>"と表示されましたか。".."は1つ上の階層のディレクトリを指します。これを相対パスといいます。"cd<スペースキー>Documents<リターン>"と入力した時の"Documents"も相対パスと言えます。これはカレントディレクトリを基準にしたパス表記です。ちなみに"pwd"で表示されるパスは絶対パスと言って、最上階のディレクトリ(ルートディレクトリ "/")を基準としたパス表記です。ホームページを作ったことのある人はなじみが多いと思います。"cd"コマンドは相対パスでも絶対パスでも使えます

今度は絶対パスで"cd"コマンドを使ってみましょう。"Documents"ディレクトリに移動するのに今度は、"cd /Users/<ユーザー名>/Documents"と入力してみましょう。"pwd"コマンドで先ほどの結果と同様、"/Users/<ユーザー名>/Documents"と表示されたはずです。また、ホームディレクトリをカレントディレクトリに戻してみましょう。"cd /Users/<ユーザー名>"とやってもいいですが、今回は"cd ~"と入力してみて下さい。"pwd"コマンドで確認してみるとホームディレクトリに戻っているはずです。この"~"はホームディレクトリの絶対パスの省略で、"/Users/<ユーザー名>"の略です。この表記はとても便利です。また、ターミナルの入力カーソルの手前に"[<マシン名>:~] <ユーザー名>%"と表示があるかと思いますが、"~"はカレントディレクトリがホームディレクトリであることを指しています。カレントディレクトリが"Documents"ディレクトリの場合は"~/Documents"と表示されていたかと思います。"pwd"コマンドをわざわざ使わなくても、カレントディレクトリが分かりますね。

もう一つ便利な機能をお教えします。"cd<リターン>"と"cd"コマンドにパスを指定しない場合、ホームディレクトリにカレントディレクトリが移動します。


図3 カレントディレクトリとその移動

 

ディレクトリを作る(mkdir)

今度はディレクトリ(フォルダ)の作り方です。ディレクトリを新規に作成するコマンドは"mkdir"です。"cd"コマンドでホームディレクトリに戻り、"mkdir<スペース>test<リターン>"と入力して下さい。これでホームディレクトリに"test"ディレクトリができました。"ls"コマンドで確認してみましょう。"test"ディレクトリができているのが確認できました。念のためFinderウィンドウで確認してみましょう。"test"フォルダができています。


図4

 

ファイル・ディレクトリの移動 名前の変更(mv)

先ほど作った"test"ディレクトリを"Documents"ディレクトリの中に移動してみましょう。ファイル、フォルダの移動には"mv"コマンドを利用します。"mv<スペース>test<スペース>Documents<リターン>"と入力してみましょう。これで"test"ディレクトリが"Documents"ディレクトリの中に移動しました。"cd Documents"で"Documents"ディレクトリに移動して、"ls"コマンドで確認してみましょう。

"mv"コマンドはまたファイルやフォルダの名前の変更にも使えます。カレントディレクトリが"Documents"ディレクトリの状態のまま、"mv<スペース>test<スペース>test2<リターン>"と入力してみましょう。"ls"で確認すると"test"ディレクトリが"test2"に名前が変更されているのが分かります。

"mv"コマンドはファイル、フォルダの移動と名前の変更に使います。移動と名前の変更が同じコマンドというのはUNIX的だと思いませんか?


図5

 

ファイル、ディレクトリの削除(rm)

再びホームディレクトリに戻ります。実験用に空のテキストファイルを作りますので、"echo > test.txt"と入力します。すると"test.txt"というテキストファイルができます。この"test.txt"を削除します。ファイル、フォルダの削除には"rm"コマンドを利用します。"rm<スペース>test.txt<リターン>"で"test.txt"が削除されます。

"rm"コマンドはゴミ箱を経由せずいきなり削除してしまう強力なコマンドなので、注意して使いましょう。

ところで今度は、先程"Documents"ディレクトリに移動して名前を変更した、"test2"ディレクトリを削除します。"cd Documents"ののち、"rm test2"で削除できると思いきや、"rm: test2: is a directory"と怒られてしまいました。"rm"コマンドをそのまま使ってもディレクトリを削除できません。今度は"rm<スペース>-r<スペース>test2<リターン>"と入力しましょう。"-r"は引数と言って一種のオプションです。"-r"を"rm"コマンドのオプションとしてつけることで、"rm"コマンドでもディレクトリの消去ができます。僕はたいていディレクトリの消去の際は"rm -rf <消したいディレクトリ>"といった具合に使います。"-r"だけでは空のディレクトリしか有効でないからです。ディレクトリの中身もまとめて消去したい場合は、"-rf"オプションをつけなければなりません。


図6

 

ファイル・ディレクトリのコピー(cp)

大事なこと忘れてました。ファイル、フォルダのコピーについてです。ファイルをコピーするには"cp"コマンドを使います。先ほど同様"echo > test.txt"で"test.txt"というテキストファイルを作ります。これを"test2.txt"というファイルとしてコピーするには、"cp test.txt test2.txt"と入力します。

ディレクトリについてですが、"rm"のとき同様"-r"をつけてやらないといけません。"mkdir test"で新しくディレクトリを作成し、"test"ディレクトリを"test2"ディレクトリとしてコピーするには"cp -r test test2"とします。


図7

 

ターミナルによるファイル・フォルダ操作のまとめ

今回はターミナル上でファイル、フォルダ操作の操作をするための基本的なコマンドを説明しました。ハッキリ言ってFinderでの操作のほうが効率的だったと思います。僕も今までLinux,IRIXといったUNIXを使ってきましたが、日常的にはむしろ、ターミナルよりFinderのようなファイルブラウザーを利用することが多かったです。ターミナルのようなCUI環境での利点は、「シェル」を利用したバッチ処理が使えるところです。バッチ処理とは、一括的、自動的な処理のことです。AppleScriptのUNIX版みたいなものです。
UNIXでのファイル・ディレクトリ操作に関しては、本屋さんに行けばいろんな本が売ってあるので、それらを参考にして下さい。

次回は、Finderとターミナルの協調についてと、「シェル」とは何かについての説明をします。 今回説明したコマンド一覧を作ったので参考までに。

コマンド 機能 使い方
cd カレントディレクトリの移動 cd <移動先のディレクトリのパス>
mkdir ディレクトリの作成 mkdir <新規ディレクトリ名(パス)>
mv ファイル・ディレクトリの移動 名前の変更

mv <移動したいファイル・ディレクトリ名(パス)> <移動先のディレクトリのパス>
mv <名前の変更をしたいファイル・ディレクトリ名(パス)> <新しいファイル・ディレクトリ名(パス)>

cp ファイル・ディレクトリのコピー cp <コピーしたいファイル名(パス)> <コピー先のファイル名(パス)>
cp -r <コピーしたいディレクトリ名(パス)> <コピー先のディレクトリ名(パス)>
rm ファイル・ディレクトリの削除

rm <削除したいファイル名(パス)>
rm -r <ディレクトリ名(パス)>

パスの指定は相対パスでも絶対パスでも有効です。

目次に戻る