| 無料ホームページスペース無料メールアドレスをご提供します。 KANSAI WEBサービス会員規約 |
| コンピュータ/通信総合サイト・広島の関西商事 管理人:大内 雅司 |
Linuxのディレクトリ構造について理解する
| このセクションのポイント |
| @Linuxのディレクトリは/(ルート)ディレクトリを頂点としたツリー構造になっている。 A現在注目しているディレクトリをカレントディレクトリ、ユーザーに割り当てられたディレクトリを ホームディレクトリと呼ぶ。 Bファイルやディレクトリの場所を表す方法として「相対パス」と「絶対パス」がある。 |
■/(ルート)ディレクトリ
Linuxのディレクトリこうぞうは、/(ルートと読みます)ディレクトリを頂点とした、1つのツリー構造になっています。その/ディレクトリに全てのファイルや、ディレクトリが含まれる形になっています。
また、Windowsでは、ハードディスクやCD-ROMドライブなどが、それぞれ別のドライブとして存在する構造になっていますが、Linuxの場合、ファイルやディレクトリだけでなく、ハードディスクやフロッピーディスク、CD-ROMといったものまで、/ディレクトリの中に含まれるという点が異なります。
■カレントディレクトリとホームディレクトリ
Linuxのディレクトリ構造を考えて行く上で大事なことは、自分が今どこのディレクトリに注目しているのか、操作したいディレクトリやファイルがどの位置に存在するのかということを認識したうえd、コマンドを実行することです。
自分が現在注目しているディレクトリを、「カレントディレクトリ」と言います。この「カレントディレクトリ」を確認するには、「pwd」コマンドを使用します。
現在、[rootユーザー」でログインしているのであれば、”su
- user01”を実行し一般ユーザーに変更してから、この「pwd」コマンドを実行してみてください。
| [root@linux ~]# su - user01 [enter] [user01@linux ~]$ pwd [enter] /home/user01 |
pwdコマンドの実行結果は、”/home/user01”のように出力されます。これは「ディレクトリ」の中の「homeディレクトリ」の中の「user01ディレクトリ」という意味です。
一般ユーザーでログインいた直後は、そのユーザー名と同じディレクトリが、「カレントディレクトリ」になっています。このディレクトリを「ユーザー専用のディレクトリ」と呼びます。
ただし、「rootユーザー」の場合はホームディレクトリの場所が異なり、「/root」がその場所になっています。ホームディレクトリは、”/home/user01”や”root”以外に”〜(チルダ)”記号でも表すことができます。ログイン直後のシェルプロンプトではこの”〜(チルダ)”がカレントディレクトリとして表示されています。
▼カレントディレクトリとホームディレクトリ
| ユーザー | デイレクトリ |
| rootユーザー | /root |
| 一般ユーザー | /home/ユーザー名 |
■絶対パスと相対パス
あるファイルを指定するときに、ファイル構造の頂点である/ディレクトリからそのファイルまでの道筋(パス)を完全に記述する形式を、「絶対パス」(あるいはフルパス)と呼びます。
また、あるファイルを指定するとき、カレントディレクトリからそのファイルへの道筋を記述する形式を、「相対パス」と呼びます。
▼(例えば)カレントディレクトリが”/home/user01”である場合
| 絶対パス | /home/user01/bin/test.sh |
| 相対パス | bin/test.sh |
※注意していただきたいのは、ファイル指定をする場合に先頭が”/(ルート)で始まると、「このファイル指定は絶対パス」と認識されるということです。
つまり上記の場合、相対パスを指定しようとして”/bin/test.sh”と指定するのは間違いです。
■カレントディレクトリの移動(CD)
「cd」コマンドの引数には、移動先ディレクトリを指定します。ここでは引数に「/etc」ディレクトリを指定して「cd」コマンドを実行してみます。
| [user01@linux ~]$ cd /etc [enter] [user01@linux etc]$ |
これで、user01はホームディレクトリ(/home/user01)から「/etc」へ移動します。本当に移動できたかどうかは、シェルプロンプトで確認できます。シェルプロンプトの文字列は、カレントディレクトリの情報を含んでいます。ただし、シェルプロンプトではディレクトリ名しか確認できません。
例えば、カレントディレクトリが「/bin」であっても「/user01/bin」であっても、シェルプロンプトには”bin”とだけ表示されます。
※カレントディレクトリの「絶対パス」を知りたいなら、「pwd」コマンドで確認しましょう。
「cd」コマンドを引数なしで実行すれば、ログインしているユーザーのホームディレクトリに移動できます。
※また、引数に(−)ハイフンを与えて実行すると、直前にいたディレクトリに移動します。
| [user01@linux etc]$ cd [enter] [user01@linux =]$ cd - [enter] /etc [user01@linux etc]$ |
■ディレクトリ一覧の表示(lS)
ディレクトリ内にどのようなファイルが存在しているのかを確認したい場合、「lS」コマンドを実行して、user01のホームディレクトリに移動しておきます。
| [user01@linux etc]$ cd [enter] [user01@linux ~] $ ls /home [enter] |
実際の運用では、”/home”には一般ユーザーのホームディレクトリが多数存在するので、作成したユーザーの数だけ、ディレクトリが表示されます。
例えば、user01だけが存在するとすれば、以下のように表示されます。
| user01 |
また、引数なしで実行すると、「ls」コマンドを実行したカレントディレクトリ内のファイル一覧が表示されます。
| [user01@linux ~]$ ls [enter] [user01@linux ~]$ |
しかし、今回は何も表示されません。コマンド実行後、何も表示されない時には次に2通りの原因が考えられます。
@本当にファイルが存在しない場合。
A隠しファイルのみが存在する場合。
■隠しファイルも表示
Linuxの場合、ドット(.)で始まるファイルは「隠しファイル」と呼ばれます。
隠しファイルは、誤って削除されたりしては困る大事な設定ファイルなどに、主に用いられるファイルです。これらのファイルはオプション指定なしで「ls」コマンドを実行しても、表示させることはできません。この「隠しファイル」を含めた全ファイルを表示させるためには、「-a」オプションを使用します。
| [user01@linux ~]$ ls -a [enter] . .. .bash_logout .bash_profile .bashrc .canna .gtkrc [user01@linux ~]$ |
”ls −a”を実行したとき、”.”と”..”が表示されましたが、この2つは特別な意味を持ったディレクトリです。
”.”はカレントディレクトリを指します。”..”はカレントディレクトリの1階層上のディレクトリ(親ディレクトリ)を指します。
では実際に、”..”を使ってカレントディレクトリの1階層上のディレクトリに移動します。”..”を引数にとって、「cd」コマンドを実行してみましょう。
| [user01@linux ~]$ cd .. [user01@linux home]$ |
カレントディレクトリが、”/home/user01”から”/home”へと1階層上に移動しています。
■詳細表示
「ls」コマンドに「−l」オプションを指定すると、詳細表示ができます。ファイルやディレクトリのパーミッション、所有者、ファイルサイズ、更新時刻などのデータを同時に表示します。
| [user01@linux home]$ ls -l /usr/local [enter] 合計 72 drwxr-xr-x 2 root root 4096 5月 23 13:28 bin drwxr-xr-x 2 root root 4096 5月 23 13:28 etc drwxr-xr-x 2 root root 4096 5月 23 13:28 games drwxr-xr-x 2 root root 4096 5月 23 13:28 include drwxr-xr-x 2 root root 4096 5月 23 13:28 lib drwxr-xr-x 2 root root 4096 5月 23 13:28 libexec drwxr-xr-x 2 root root 4096 5月 23 13:28 sbin drwxr-xr-x 4 root root 4096 6月 13 11:05 share drwxr-xr-x 2 root root 4096 5月 23 13:28 src |
■テキストファイルの閲覧(cat)
テキストファイルの内容を閲覧するためには、「cat」コマンドを使用します。では、user01のホームディレクトリ下にある.bash_logoutファイルを指定して、「cat」コマンドを実行して下さい。
その前に「cd」コマンドを実行して、ホームディレクトリに移動しておきます。
| [user01@linux home]$ cd [enter] [user01@linux ~]$ cat .bash_logout [enter] # ~.bash_logout clear [user01@linux ~]$ |
| copy right kansai-syoji,.co all right reserved Web-Master masashi ouchi http://kansai.homelinux.com/~Linux |