|
第1回 ターミナルを使ってみよう(1) MacOSXがこれまでのMacOSと異なる点の一つに、Darwinと呼ばれるBSD
UNIXベースのUNIX機能の存在があります。Quartz,CarbonといったMacOS的な要素は、Darwin,MachカーネルといったUNIX的要素をベースにしているので、言い換えればMacOSXはMacOSの皮をかぶったUNIXと言えます。 ターミナルを使ってみよう ターミナルとはMacやWindowsと違い、OS上でファイル操作などを文字ベースで行うためのアプリケーションです。こうした文字ベースでのインターフェイスをCUIといいます。ちなみにアイコンなどのグラフィックでOSの操作を行うことをGUIと言います。LinuxなどのUNIXではGUIよりむしろCUIでの操作がメインとなっています。MS-DOSに似ていますが、UNIXやMacOSXでは「シェル」と呼ばれるプログラムがターミナル上での文字の入出力を管理していますので、MS-DOSに比べ使い勝手の良いものになっています。
ターミナルで"pwd<リターン>"と入力してみましょう。僕の場合"/Users/note"と表示されました。これがホームディレクトリのパスです。パスとはUNIXでディレクトリの場所をさす表記のことです。今度はFinderウィンドウでカラム表示に変更してみましょう。起動ディスクの"Users"の"note"がホームディレクトリであることが分かります。先程タイプした"pwd"は現在作業中のディレクトリを表示させるコマンドで、また現在作業中のディレクトリのことを「カレントディレクトリ」といいます。ターミナルウィンドウを出した時のデフォルトのカレントディレクトリはホームディレクトリになります。
(図2)
説明が遅れましたが、最初に入力した"ls"というコマンドは、ディレクトリの中のファイルとディレクトリの一覧を表示させるコマンドでした。ちなみに"ls"や"pwd"は「コマンド」といってターミナルでコマンド名をタイプしてのち、リターンキーを押すとコマンドの結果が表示されます。
カレントディレクトリとその移動(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"コマンドにパスを指定しない場合、ホームディレクトリにカレントディレクトリが移動します。
ディレクトリを作る(mkdir) 今度はディレクトリ(フォルダ)の作り方です。ディレクトリを新規に作成するコマンドは"mkdir"です。"cd"コマンドでホームディレクトリに戻り、"mkdir<スペース>test<リターン>"と入力して下さい。これでホームディレクトリに"test"ディレクトリができました。"ls"コマンドで確認してみましょう。"test"ディレクトリができているのが確認できました。念のためFinderウィンドウで確認してみましょう。"test"フォルダができています。
ファイル・ディレクトリの移動 名前の変更(mv) 先ほど作った"test"ディレクトリを"Documents"ディレクトリの中に移動してみましょう。ファイル、フォルダの移動には"mv"コマンドを利用します。"mv<スペース>test<スペース>Documents<リターン>"と入力してみましょう。これで"test"ディレクトリが"Documents"ディレクトリの中に移動しました。"cd Documents"で"Documents"ディレクトリに移動して、"ls"コマンドで確認してみましょう。 "mv"コマンドはまたファイルやフォルダの名前の変更にも使えます。カレントディレクトリが"Documents"ディレクトリの状態のまま、"mv<スペース>test<スペース>test2<リターン>"と入力してみましょう。"ls"で確認すると"test"ディレクトリが"test2"に名前が変更されているのが分かります。 "mv"コマンドはファイル、フォルダの移動と名前の変更に使います。移動と名前の変更が同じコマンドというのはUNIX的だと思いませんか?
ファイル、ディレクトリの削除(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"オプションをつけなければなりません。
ファイル・ディレクトリのコピー(cp) 大事なこと忘れてました。ファイル、フォルダのコピーについてです。ファイルをコピーするには"cp"コマンドを使います。先ほど同様"echo > test.txt"で"test.txt"というテキストファイルを作ります。これを"test2.txt"というファイルとしてコピーするには、"cp test.txt test2.txt"と入力します。 ディレクトリについてですが、"rm"のとき同様"-r"をつけてやらないといけません。"mkdir test"で新しくディレクトリを作成し、"test"ディレクトリを"test2"ディレクトリとしてコピーするには"cp -r test test2"とします。
ターミナルによるファイル・フォルダ操作のまとめ 今回はターミナル上でファイル、フォルダ操作の操作をするための基本的なコマンドを説明しました。ハッキリ言ってFinderでの操作のほうが効率的だったと思います。僕も今までLinux,IRIXといったUNIXを使ってきましたが、日常的にはむしろ、ターミナルよりFinderのようなファイルブラウザーを利用することが多かったです。ターミナルのようなCUI環境での利点は、「シェル」を利用したバッチ処理が使えるところです。バッチ処理とは、一括的、自動的な処理のことです。AppleScriptのUNIX版みたいなものです。
次回は、Finderとターミナルの協調についてと、「シェル」とは何かについての説明をします。 今回説明したコマンド一覧を作ったので参考までに。
|
|||||||||||||||||||||||