% ls -la total 31908 drwxr-xr-x 78 ohba wheel 4096 3 5 15:36 . drwxr-xr-x 649 root wheel 12288 9 20 09:51 .. -rw-r--r-- 1 ohba wheel 1777 2 29 17:27 .cshrc lrwxrwxrwx 1 ohba wheel 9 5 6 2005 .xinitrc -> .xsession -rwxr--r-- 1 ohba wheel 730 3 5 15:32 .xsession -rw-r--r-- 1 ohba wheel 118480 5 29 2003 cap.patch.tar.gz drwx------ 22 ohba wheel 1024 1 24 09:08 Mail drwxr-xr-x 2 ohba wheel 1536 2 9 2007 bin drwxr-xr-x 8 ohba wheel 512 10 12 2006 public_htmlこのような表示が得られたはずです。-la の l(エル)は、ロングフォーマットで 詳細情報を表示させるオプションで、a は . (ドット) で始まるファイルやディ レクトリ41 も表示させるオプションです。これらのオプションを与えなかった 場合に、結果がどう変わるか試してみましょう。
ロングフォーマットで出力される詳細情報は、左から順に、ファイルモード(ア クセス権)・リンク数・所有者名・所有グループ名・ファイルのバイト数・最終 更新された日付や時間・ファイルやディレクトリの名前となっています。 「drwxr-xr-x」や「-rw-r-r-」で表されている、ファイルやディレクトリのモー ド(アクセス権)は、次のような意味です。最初の1文字はファイルの型を表し、 d はディレクトリ、- は普通のファイル、l (エル)はシンボリックリンク 42 を 表します。残りの 9個の文字は、それぞれ3個ずつ、所有者・グループ・全ユー ザーに対するに対するアクセス権43 を表しています。
ls -la で、最初に表示されている 「. (ドット)」 という名前のディレクトリ は、カレントディレクトリ(current directory、現在いるディレクトリ)を、 次の「..」は、ひとつ上のディレクトリ(親ディレクトリ)を表しています。上 で、UNIXのコマンドは、一般に「コマンド名 [-option] [引数1 引数2...]」 である、と述べましたが、ls -la では、引数を省略しています。引数がなかっ た場合、ls コマンドは、カレントディレクトリに対して、処理を行います。ls コマンドの引数として、ファイルやディレクトリを与えれば、それについて、結 果を表示します。
% ls -l /etc % ls -l /etc/mail % ls .. % ls Mail (これは、まだできていませんね...)などを試してみましょう。ここで、/etc や /etc/mail という表記は、/(スラッ シュ) で始まっています。§1.5で説明したように、/ はディレクトリの 区切りであると同時に、最初にきた場合はルートディレクトリを表します。この ように/ で始まるファイルやディレクトリの表示方法を絶対パス名 44と 呼びます。それに対し ../some_dir や Mail/inbox のように、/ で始まらない 表示方法は、カレントディレクトリを基準に表していて、相対パス名 と呼びます。 ../../ を繰り返して行けば、相対パスでもいつかは必ずルートディ レクトリまで到達しますので、あらゆるファイルは相対パス名でも絶対パス名で も表記可能です。
既に説明したように、ログインした時にいるディレクトリをホームディレクトリ と呼び、ホームディレクトリ以下は、自分で好きなように、ディレクトリやファ イルが作成できます。言わば、ホームディレクトリは自分の家や部屋と同じです。 部屋の中に、食べ物や飲物や読み終わった本や鼻をかんだティッシュやDVDやそ の他諸々のものがあたり一面においてある部屋はどうでしょう。やはり、食べ物 や飲物は冷蔵庫に、本は本棚に、ゴミはごみ箱に整理した方がよいでしょう。 それと同様に、ホームディレクトリ直下に色々な種類のファイルを雑然と置いて おくよりは、種類や目的毎のディレクトリを作成して、整理して置いておいた方 があとで捜す場合に簡単です。これから、実験結果を保存する場合には、実験毎 に違うディレクトリに整理するように心掛けましょう。 ホームディレクトリは、どこからでも、 ~/または $HOME で参照できます45。次の
% ls /home/ログイン名 % ls ~/ % ls $HOMEは、同じ結果を与えます。
その他の、ファイルやディレクトリ操作のコマンドを、簡単に説明します。 詳細な使い方等は、次の節で説明するオンラインマニュアルで調べることが できますので、必要に応じて調べて下さい。
% pwd /home/nagamine/doc % cd .. % pwd /home/nagamine % cd /tmp % pwd /tmp % cd % pwd /home/nagamine
% ls com.html com.html~ com.txt % mkdir test (testディレクトリを作成) % cp com.txt com.html test (testディレクトリにコピー) % ls test com.html com.txt % rm -r test (testディレクトリを再帰的に消去) % ls com.html com.html~ com.txt % rm com.html~ % ls com.html com.txt
% chmod a+x file名 (すべてに実行権を与える) % chmod a-x file名 (すべてに実行権を与えない) % chmod 755 file名 (すべてに読み込みと実行権を与える、書き込みは所有者だけ) % chmod 644 file名 (すべてに読み込みを、書き込みは所有者だけ、実行権はない)
ls コマンドで、複数の引数を与えれば、そのすべてについてのファイルやディ レクトリ情報を続けて表示します。また、cp や mv コマンドでは、 複数のファイルのコピーや移動ができます。このように、多くのファイルやディ レクトリを引数として与える場合に、ひとつひとつの名前を引数に与えても良い のですが、例えば、数10個のファイルをコピーや移動しようとする時、 数10個のファイル名をタイプしていたら、大変ですね。そんな時は、 ワイルドカード 46 を使うと便利です。とりあえずは、「*」と「?」のふ たつを知っているだけで十分です。「*」は任意の文字列にマッチします。「?」 は任意の1文字にマッチします。例えば、*.txt は .txt で終わるすべてにマッ チします。data??.txt の意味はわかりますね(言葉で説明するのは面倒です)。 例えば、file0.dat, file1.dat, file2.dat, ..., file999.dat と1000個のファ イルがあった場合に、
% mkdir backup % cp *.dat backup (1000個のファイルをすべてコピーする) % mv file?.dat backup (file0.dat 〜 file9.dat を移動する) % ls file??.dat (マッチするファイルを調べる) % rm file??.dat (マッチしたファイルを消去する)という使い方ができます。ただし、ワイルドカードを使うと、予想外のファイル がマッチする場合があるので、(特に消去する場合には)ls コマンドでマッチ するファイルを確認してから実行した方が良いでしょう。