16.04を想定しています。ディレクトリデータやプログラムが保存されている場所を「ディレクトリ」と呼ぶ。Windowsの「フォルダ」の概念とほぼおなじである。Linuxではディレクトリと呼ぶ。ディレクトリの操作を練習しよう。コンソールを立ち上げ、以下の操作をしよう。前回も述べたように、$はプロンプト、つまりシェルが君に「コマンドを入れてください」と待っているしるしなので、君は$を入力する必要は無い。$のあとのコマンドだけををキーボードから打ち込んで、Enterキーを押せばよろしい。ディレクトリを、あちこち旅したのである。cdとpwdというコマンドを使った。この2つのコマンドは大切なので覚えよう。その意味はこれからおいおい説明していく。「ディレクトリは階層構造をしている」ことを理解する必要がある。いうふうになっているのだ。このような入れ子状になっているディレクトリ群の全体をディレクトリ・ツリーと呼ぶ。以下に、ディレクトリ・ツリーの様子を、模式的に示す。常にディレクトリ・ツリーの中のどこかのディレクトリで仕事をすることになっている。仕事場にしているディレクトリ」をカレントディレクトリという。シェルのコマンドは、特に何も指定しない限り、カレントディレクトリの内容を対象として働くのがルールである。cdコマンドユーザーは、仕事をする(というかシェルに仕事をさせる)ときには、まず最初に、その仕事に必要なデータやプログラムのあるディレクトリにまず行く(というかシェルにそこに行かせる)必要がある。そこをカレントディレクトリにするのだ。directoryの略)である。cdはおそらくLinuxで最も多く使うコマンドのトップ3に入るほど大切なコマンドだ。ユーザーは混乱してくることがある。そこで役立つのがpwdコマンドである。directoryの略である)。初心者はディレクトリ・ツリーの中で迷子になりがちだが、そういうときにpwdコマンドは便利である。ホームディレクトリターミナルとシェルを立ち上げた直後は、ほとんどの場合、自動的にカレントディレクトリは/home/s1234567のように、/home/ユーザー名というようなディレクトリになっている。そのことが、上の例の最初のコマンドで理解できるだろう。このようなディレクトリは、ユーザーが自由にデータを置いたり削除したりすることができるディレクトリであり、ホームディレクトリと呼ばれる。ホームディレクトリには、ユーザーの利用環境を設定するための情報なども保管される。「/home」は、homeという名前のディレクトリではあるが、いわゆる「ホームディレクトリ」ではない。ホームディレクトリは、「/home/s1234567」のように、/homeの下にあって、ユーザー名(ログイン名)を名前に持つようなディレクトリである。.."というコマンドは、ひとつ上流の階層のディレクトリに行く、というコマンドである。".."は、カレントディレクトリから見てひとつ上流の階層のディレクトリを示す。実際、そのあとにpwdコマンドでカレントディレクトリを表示すると、"/home"のように、もとの"/home/s1234567"よりもひとつ上流のディレクトリに移っていることがわかる。.."を行うと、さらにひとつ上流のディレクトリに移る。このディレクトリは"/"と表示されているが、これより上流のディレクトリは無い。このディレクトリ、すなわち全てのディレクトリの最上流のディレクトリをルートディレクトリという。全てのディレクトリは、このルートディレクトリから次第に枝わかれして(入れ子になって)存在する。ルートディレクトリは"/"であらわす。"/home/s1234567"のようにディレクトリの階層構造を表現するとき、"/"が、左端とまんなか付近というふうに2回あらわれるが、左端の"/"はルートディレクトリを意味し、まんなかの"/"は/homeとgisという2つのディレクトリの上流・下流関係をあらわすための記号、つまり、ディレクトリの境界をあらわす記号である。このあたりの事情については、後述の「パス」の項でも言及する。ルートディレクトリは、そのシステム(計算機)にはひとつしか無い。ホームディレクトリは、それぞれのユーザーごとに用意されているので、その計算機を使うユーザーの数だけ存在する(ただし、1人のユーザーにとっては、ホームディレクトリは1つだけである)。カレントディレクトリは、ユーザーが適宜、cdコマンドで選ぶものである。~"は「ホームディレクトリをカレントディレクトリとせよ」というコマンドである。ディレクトリの中身の表示ディレクトリの中には、ディレクトリやファイルが入っている。ファイルとは、文書とか、プレゼン資料とか、各種の設定情報など、それぞれ情報のひとまとまりの単位である(このあたりもWindowsなどと同様である)。(listの略)である。lsはおそらくcdと並んでLinuxで最も多く使うコマンドのトップ3に入る大切なコマンドだ。以下、lsの機能を、体験的に学んでいこう。(カレントディレクトリの内容を表示。(lsよりもっと詳しい情報を表示。-lの前に、スペースをひとつ入れること。-laよりもっと詳しい情報を表示。(ルートディレクトリの内容を表示。.bash_historyこれを解説すると、1列目(drwx--x--xなど):パーミッション(後述)。先頭のdの有無は、ディレクトリかどうかのマーク。(testというディレクトリを作る。(カレントディレクトリの内容を表示。(testというディレクトリを削除。さきほど作ったtestというディレクトリのパスは、このように表現できる:/home/sXXXXXXX(ユーザー名)/testこれは、ルートディレクトリ(/)の中のhomeというディレクトリの中のgisというディレクトリの中のtestというディレクトリ、という意味。いうのが、茨城県の中のつくば市の中の天王台の中にある筑波大学、という意味であるのと同じようなものである。このように、ルートディレクトリからたどってパスを表現するやりかたのことを「絶対パス」と呼ぶ。ディレクトリの階層の区切りは、スラッシュ(/)で表現する(ちなみにWindowsでは、これが日本円やバックスラッシュ記号(\)になる)。スラッシュ記号/には、「ルートディレクトリ」という意味と、「ディレクトリどうしの区切り」という意味の、2通りの意味がある。絶対パスと対比的な言葉(対置概念)として「相対パス」というものがある。カレントディレクトリを起点に、どのようにディレクトリをたどっていけばそのファイル(又はディレクトリ)にたどり着くかというやりかたでパスを表現することを「相対パス」と呼ぶ。君が現在、/homeというディレクトリをカレントディレクトリにしていれば、./sXXXXXXX(ユーザー名)/testが、上記のディレクトリの相対パスになる。ここで"."はカレントディレクトリを意味する。相対パスでの表記は、例えば、私がつくば市内の知人に対して私の家を説明するとき、「竹園1丁目の公務員宿舎の・・・」と言うようなものである。相手がつくば市内にいるならば、わざわざ「茨城県つくば市」を言う必要はない。lsなどのコマンドは、デフォルトではカレントディレクトリを対象とするが、パスを指定すれば、カレントディレクトリ以外のディレクトリを対象にすることもできる。/home/sXXXXXXX(ユーザー名)/test)でもOKであるということがわかるだろう。treeという便利なコマンドがある。