上の図にもあるとおり、Linux ではツリーの根元は / (スラッシュ) で表された 1 つの「ルートディレクトリ」になっています。そして、全てのファイルは / から順にディレクトリをたどって「/ の home の harumi の中にある hoge1.txt」のように表せます。このファイルの「フルネーム」を「絶対パス」と言い、正式には「〜の」の代わりにルートと同じく / で区切りを表し、/home/harumi/hoge1.txt のように書きます。
さて、「絶対」があれば「相対」もあります。絶対パスは常に / を起点にファイルの位置を表すのに対し、相対パスは任意のディレクトリを起点にしてファイルの位置を表します。相対パスを表すに、起点になるディレクトリを . (ドット) 、1 階層上のディレクトリ (通称「親ディレクトリ」) を .. で表します。例えば /home/harumi を起点にすると、hoge1.txt は ./hoge1.txt 、hoge3.txt は ../junko/hoge3.txt と表せます。また、相対パスの起点になるディレクトリを「カレントディレクトリ」と言います。
もうひとつ、Linux にログインすると、まず /home/<ユーザ名> がカレントディレクトリになります。これをユーザの「ホームディレクトリ」といい、その中はユーザの個室のような扱いになり、ユーザは通常ホームディレクトリを起点に作業をします。例えば、harumi さんのホームディレクトリは /home/harumi です。
最も基本的なコマンドは、「カレントディレクトリを移動する」「ファイルの一覧を見る」「ファイルをコピーする」という、ファイルやディレクトリを操作するコマンドです。そこで、ここではこれらの基本コマンドを具体的に紹介しつつ、Linux とコマンドに慣れていきましょう。
| 4.1.4 ファイルに関する情報を取得する (ls)
|
|
ファイル操作をするうえで最も重要な情報は、ファイルの名前やサイズなどファイルのプロフィールとも言える情報です。これらを知るには ls を使います。もう少し具体的に言えば、「ディレクトリの中に何があるの?」という質問に答えるのが ls です。
|
$ ls [<オプション>] [<ファイル(複数可)>]
|
|
|
まず、何のオプションも付けずに ls を実行すると、カレントディレクトリの中身を一覧形式で表示します。
これに、以下のようなオプションを指定すると、ls の動作が変わります。
|
|
ディレクトリの中身ではなく、ディレクトリ自身を表示
|
|
|
|
|
ディレクトリの中身を下位のディレクトリも含めて全て表示
|
|
|
|
|
ディレクトリに / 、実行可能ファイルに * を付ける
|
|
|
|
|
逆順に並べる (-r -t は古い順、-r -S は小さい順となる)
|
|
|
例えば、オプション -a を指定する場合は、次のようにします。
|
$ ls -a
| . .. .bash_history .bash_profile .bashrc hoge1.txt hoge2.txt
|
|
|
Linux では通常「隠しファイル」として扱う、名前が . で始まるファイル名も表示されます。カレントディレクトリ、親ディレクトリを表す . や .. も . で始まる名前ですので表示されています。
-d については、付けた場合と付けない場合の実際の例を比較して見てみましょう。通常、ls のパラメータにディレクトリ名を渡すとその中身を表示しますが、-d オプションを付けるとディレクトリ自体を表示します。
|
$ ls /home/harumi
| hoge1.txt hoge2.txt
|
| $ ls -d /home/harumi
| harumi
|
|
|
-l オプションを付けると、パーミッション (後述の chmod の項を参照)・参照数・所有者・グループ・ファイルサイズ・最終更新日時・ファイル名などの詳細なファイルに関する情報を表示します。
|
$ ls -l /home/harumi
| -rw-r--r-- 1 harumi users 1234 2009-03-04 05:06 hoge1.txt
| -rw-r--r-- 1 harumi users 8765 2009-04-06 08:10 hoge2.txt
|
|
|
--color では、通常ファイルは白、実行可能ファイルは緑、ディレクトリは青、デバイスファイルは黄、シンボリックリンクは水色で表示されます。
ざっと Linux のコマンドはこのように使います。それでは、これからは少しスピードを上げてコマンドを紹介していきましょう。
| 4.1.5 カレントディレクトリの移動 (cd,pwd)
|
|
cd は、カレントディレクトリを移動するコマンドです。
ディレクトリは絶対パスでも相対パスでも指定できます。また、ディレクトリを指定しないとホームディレクトリにカレントディレクトリが移ります。
さて、pwd はカレントディレクトリの名前を確認するコマンドです。
ただし、普通はコマンドプロンプトと一緒にカレントディレクトリ名が表示されているので、pwd の出番はないかもしれません。例えば、下の例ではコマンドプロンプトと合わせてログインしているマシン名とカレントディレクトリを表示しています。
| 4.1.6 ファイルの複写 (コピー)・移動・削除 (cp,mv,rm)
|
|
ファイルの基本操作は複写(cp)・移動(mv)・削除(rm) です。これらのコマンドには、パラメータとしてファイル名だけでなくディレクトリ名も指定でき、ディレクトリを中身ごと操作することもできます。それではまず cp から…
|
$ cp [<オプション>] <コピー元(複数可)> <コピー先>
|
|
|
cp の主なオプションは以下の通りです。何もオプションを指定しない場合は、コピー先に同名のファイルがあっても問答無用で上書きされ、コピー先のファイルの所有者・グループはコピーを行ったユーザ・グループになり、タイムスタンプはコピーを行った時間に設定されます。
|
|
コピー先に同名のファイルがある場合上書きするかどうか尋ねる
|
|
|
|
|
コピー元と同じ所有者・グループ・タイムスタンプをコピー先にも適用
|
|
|
つづいて、mv の説明に移りましょう。
|
$ mv [<オプション> <移動元(複数可)> <移動先>
|
|
|
mv の主なオプションは以下の通りです。
|
|
移動先に同名のファイルがある場合上書きするかどうか尋ねる
|
|
|
最後に rm です。rm したファイルは二度と復活できないので、[Enter]を押す前には確認を怠らないようにしてください。
|
$ rm [<オプション>] <ファイル(複数可)>
|
|
|
| 4.1.7 ディレクトリの作成と削除 (mkdir,rmdir)
|
|
ディレクトリを作成(mkdir), 削除(rmdir) します。ただし、rmdir は空のディレクトリしか削除できないコマンドで、中にファイルやディレクトリが入っているディレクトリを削除するには rm -r しなければなりません。
|
$ mkdir [<オプション>] <ディレクトリ(複数可)>
| $ rmdir [<オプション>] <ディレクトリ(複数可)>
|
|
|
mkdir, rmdir はどちらも -p というオプションが使えます。
|
|
多階層のディレクトリを一気に作成または削除します。
|
|
|
通常 mkdir, rmdir で 2 階層以上のディレクトリを扱う場合は、1 階層ずつコマンドを実行しなければなりませんが、-p ではこれを一気に済ませることができます。以下の例では、同じ dir1/dir2 というディレクトリを作って消す操作を -p オプションを付けた場合と付けない場合で実行しています。
|
$ mkdir dir1
| $ mkdir dir1/dir2
| $ rmdir dir1/dir2
| $ rmdir dir1
|
|
|
|
$ mkdir -p dir1/dir2
| $ rmdir -p dir1/dir2
|
|
|
Linux は 1 つのシステムに複数のユーザがログインできる「マルチユーザ」システムです。そのため、ファイルやディレクトリの 1 つ 1 つに「誰のものか」「誰がアクセスできるか」が決められ、勝手に他人のファイルにアクセスできないようになっています。
Linux では、この「誰のものか」を所有者と所有グループ、「誰がアクセスできるか」を「パーミッション」で設定します。パーミッションは「ファイルの所有者・グループ・その他のユーザ」の 3 区分それぞれに「読み・書き・実行」を認めるかどうかを設定でき、ls -l で確認できます。
|
-rw-r--r-- 1 harumi users 1234 2009-03-04 05:06 hoge1.txt
|
|
|
このファイルは、所有者 harumi、所有グループ users で、パーミッションは -rw-r--r-- の最初 1 文字を除いた後ろ 9 文字で表しています。9 文字の内訳は 3 区分 (所有者・グループ・その他) × 3 文字 (読み・書き・実行)です。
|