次に、Linuxシステムにおける基本的なフォルダナビゲーションについてここではみていこう。
フォルダやファイルの扱いはWindowsとは少し異なる。Windowsのファイル操作に似ているが、明らかに異なる。
Windowsと同じにようにやろうとすると、きっと腹が立ってくるはずだ。Windowsのフォルダ操作を知っているなら、Linuxのフォルダ操作はまったくの別ものとして学んだほうが混乱せず早いだろう。
cd
以下のフォルダを例に取ってみる。
/etc/var/abc
/
└──etc
└── var
└── abc
Linuxではフォルダと呼ばずにディレクトリと呼ぶ。
/ (ルート)ディレクトリの中に var ディレクトリがあり、varディレクトリの中にabcディレクトリがある、といったイメージだ。/ はスラッシュではなく、これ自体がルートという名のディレクトリであることを知っておこう。
Windows同様に、Linuxでもcdコマンドがある。
cdコマンドはchange directory(ディレクトリの変更)の略だ。異なるディレクトリに移動したい場合は、cdと入力する。
例えば、varディレクトリにいるとする。そして、そのvarディレクトリ内のディレクトリ、この場合はabcディレクトリに移動したい場合、以下のコマンドを入力する。
$ cd abc
cd、半角スペース、移動したいディレクトリ名を入力する。これで、移動したいディレクトリに移動できる。
Windowsにもターミナルがあるが、cdコマンドの後にスラッシュ(/)を付けることが多い。前のコマンドでこれを適用すると、以下のようになるが、
$ cd /abc
この場合、Linuxはスラッシュ記号をルートディレクトリと解釈してしまう。Linuxは、ルートディレクトリに移動したいと思い、ルートディレクトリ内のabcディレクトリを探す。
このコマンドを実行した後、実際にはabcディレクトリはルートディレクトリにはなく、varディレクトリ内にあるため、存在するabcディレクトリを見つけられないことになる。
多くのLinux管理者は、移動しようとしている場所の完全なパスを入力する理由がここにある。
Linux管理者の多くがabcディレクトリを変更しようとする場合、上記の $ cd /abc ではなく、以下のように完全なパスでコマンドを入力する。
$ cd /etc/var/abc
これなら間違いなく /etc/var内 の abc ディレクトリに到達できる。
Linuxはこのディレクトリ変更の構文に対して厳格だ。特に、大文字と小文字の区別が重要だ。
全て小文字で書かれたディレクトリにアクセスしようとして、全て大文字でディレクトリ名を入力しても、Linuxは見つけることができず「ディレクトリが見つかりません」と表示することになる。
これら全てを理解していないと、非常にストレスを感じるようになるだろう。
Linuxでファイルやディレクトリを扱う際の最初のステップは、ルートディレクトリにいることを確認することだ。これを行うには、以下のコマンドを入力する。
$ cd /
cd、半角スペース、そしてスラッシュだ。これを入力すると、ルートディレクトリに移動する。
次に、ルートディレクトリ内にどのディレクトリがあるかを確認する。これを行うには、以下のコマンドを入力する。
$ ls
ls、またはlistコマンドは、特定のディレクトリ内のすべてのファイルとディレクトリをリスト表示する。
lsコマンドを入力すると、ルートディレクトリ内のすべてのディレクトリを表示する。ここにはbin、dev、opt、sbin、sys、var、boot、etc、libなど、多くのディレクトリが表示される。
次に、この中のetcディレクトリの中に移動したいなら、以下のコマンドを入力する。
$ cd etc
このコマンドで、自動的にetcフォルダ内に移動する。ここでコマンドプロンプト( $ )の左隣を見ると、/etc$ と表示されているのがわかる。
これは、実際に移動した/etcディレクトリ内にいる、という指標である。lsコマンドを再度実行すると、今度はetcフォルダ内のすべてのディレクトリが表示される。
そして、ルートディレクトリに戻るには、以下のコマンドを入力する。
$ cd /
このコマンドで、どれだけ深くディレクトリに入っていったとしても、ルートディレクトリに戻れる。
etcフォルダに戻りたいとする。しかし、今回はetcを全て大文字で入力したらどうなるだろうか。
$ cd ETC
Linux は大文字の ETC を含むディレクトリを見つけられない。No such file or directory (そのようなファイルまたはディレクトリがありません)などと表示される。
Linux は大文字と小文字を区別するため、etc と ETC は別のものとして扱われる。 Linuxでは、大文字は小文字とは異なるものとして認識されているわけだ。