移動方法について学習したので、ディレクトリの中身について少し考えてみましょう。
ただし、最初にログインディレクトリで検索できるものを確認し、それが済んでから先に進むことにします。
空のファイルを作成することから始めます。そのファイルを作成するには、シェルプロンプトで touch と呼ばれるユーティリティを使用します。試しに、次のように入力します。
touch foo.bar
ログインディレクトリには、空のファイル foo.bar が存在します。確認してみてください。
mkdir コマンドを使用して、新しいディレクトリを作成してみましょう。
プロンプトで次のように入力します。
mkdir tigger
これで、ログインディレクトリの中に tigger という名前のディレクトリが作成されました。ルートから新しいディレクトリへの絶対パス名は、/home/yourlogin/tigger のようになり、ユーザのログインディレクトリが tigger の親ディレクトリとなります。(ファイルおよびディレクトリの作成や削除についての詳細は、Chapter 16 で学習することができます)。
これで、先に進む準備ができました。
DOS の世界では、dir コマンドを使用するとディレクトリの内容が表示されます。
著しく異なる 2、3 の点を除き、Linux でも同じです。
Linux では、dir はディレクトリの内容をすべて表示せず、リストコマンド ls の持つパワーも柔軟性もありません。
たとえば、ログインディレクトリで次のように入力します。
dir
ここで、同じ Xterm ウィンドウで次のように入力します。
ls
同じように見えます (Figure 15-5を参照)。いろいろある内容の中で、新しいファイル foo.bar と新しいディレクトリ tigger が表示されます。
ただし、類似点はここまでです。dir はディレクトリの内容を示しますが、実際は、そのすべてを表示していません。ls を使用しても、それだけではディレクトリのすべてのファイルを表示しません。すべてを表示するには、1 つあるいは 2 つのオプションを必要とします。
たとえば、dir コマンドと ls コマンドの入力に使用した同じウィンドウで、次のように入力します。
ls -a
まったく違っています。-a オプションを追加すると、ディレクトリに含まれるすべてのファイルをリストすることを指定したことになります (Figure 15-6を参照)。
実際、多数のオプションを ls コマンドと一緒に使用することができます。
ls man ページをお読みください: ls コマンドのすべてのオプションを見るには、シェルプロンプトで [man ls] と入力して man ページを読むことができます。man ページを印刷するには、プロンプトで [man ls | col -b | lpr] と入力します。
オプションが豊富な理由は?それは、ユーザのニーズに合わせて情報をソートできるようにしているためです。たとえば、表示するファイルを指定し、それらの権限その他を確認することができます。
[ls -a] を入力すると、ドットで始まるファイルがあることに気がつくと思います。これらのファイルは隠しファイルあるいは、そのままドットファイルと呼ばれます。
隠しファイルの大部分は、プログラム、ウィンドウマネージャ、シェルなどでプリファレンスを設定する設定ファイルです。これらのファイルを「非表示」にしている理由は、ユーザによる偶発的な変更を防ぐことです。それに加え、ディレクトリを検索する場合、これらの設定ファイルを検索する頻度は少ないため、非表示にしておくことで画面に不要なファイルが表示されないようにします。
ドット (.) で始まるファイル名は非表示ファイルで、ls ではリストされません。
すべてのファイルを表示することで多くの詳細を得ることができますが、複数のオプションを加えるだけで、より多くのものを取り出すことができます。
ファイルやディレクトリのサイズ、作成日などを確認するには、「long」オプション (-l) を ls -a コマンドに追加するだけです。
Try it.次のように入力します。
ls -al
内容がより詳細に表示されます。ファイルの作成日、そのサイズ、所有権、権限などが表示されます。
表示したい内容を含むディレクトリに切り替える必要もありません。
次のように入力して、/etc ディレクトリの内容を見てみましょう。
ls -al /etc
/etc ディレクトリの内容に関する多くの情報が表示されます。
一覧に色を付けたい場合、--color オプションを組み込みます。
ls -al --color /etc
--color を追加することは、単に、色の点を付け加える以上の意味があります。つまり、ディレクトリに含まれるファイルのタイプを識別できるということです。たとえば、ディレクトリをロイヤルブルー、プログラムファイルをグリーンなどに色分けすることができます。
好きな色で表示したい場合、一覧を常に色付きで表示できる方法があります。簡単に言えば、ログインディレクトリにある .bashrc ファイルに 1 行追加するだけです。
.bashrc ファイルは、ログインしたときにシェルにより使用されます (.bashrc ファイルの例は、Figure 15-7にあります)。
先へ進む前に...
設定ファイルを変更する際に誤まりを犯した場合は、そのファイルのバックアップを作成していなければ、取り返しのつかないことになる可能性があることに注意してください。
バックアップコピーを作成するには、ログインディレクトリにいることを確認してから、Xterm ウィンドウで次のように入力します。
cd
ログインディレクトリに戻ります。その後、.bashrc ファイルをコピーして同じディレクトリに保存しておきますが、ファイル名は .bashrc2 とします。
cp .bashrc .bashrc2
上記コマンドを入力すると、その内容は「.bashrc のコピーを作成して、コピーしたファイルの名前を .bashrc2 としなさい」と言う意味です。
これで、未修正の .bashrc ファイルのバックアップがログインディレクトリ内に作成されたことになります。間違いを犯したり、障害が発生した場合は、次のようにして .bashrc ファイルを置き換えることができます。
cp .bashrc2 .bashrc
とシェルプロンプトに入力します。
このコマンドは、「ファイル .bashrc2 のコピーを作成して、コピーしたファイルの名前を .bashrc としなさい」と言う意味で入力します。ここでのコピーコマンドは、元の .bashrc ファイルを上書きしますが、元の (そして未修正) ファイル.bashrc のコピーは、.bashrc2 と言う名前で保存されます。
さあ準備できたので、簡単なテキストエディタ、Pico を使用して.bashrc を開いてみましょう。(テキストエディタは、ファイルを作成または修正することができるユーティリティプログラムです。)Xterm ウィンドウから次のように入力します。
pico .bashrc
以下のような内容が表示されるはずです。
# .bashrc # User specific aliases and functions # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi
かなり短いファイルです。ハッシュマーク(#) はコメントです。このマークの後ろにあるテキストはシェルにより無視されます。つまり、ファイルを編集/修正するユーザの参考にするためのものです。
カーソルを行 #User specific aliases and functions の下に移動し、次のように入力します。
alias ls="ls -al --color"
そうすると、ファイルの全文が次のようになります。
# .bashrc # User specific aliases and functions alias ls="ls -al --color" # Source global definitions if [ -f /etc/bashrc ]; then . /etc/bashrc fi
例として、Figure 15-8 を Pico で参照してください。
ダブルクリックしてテキストを編集あるいは修正できるようにします。その、変更に満足したら [Ctrl] キーと [X] キーを押して終了します。エディタ画面の最下部に、次のようなメッセージが表示されます。
Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES)?
[Y] キーを押して「はい」を選択します。さらに、別のメッセージが最下部に表示されます。
File Name to write:.bashrc
単に [Enter] キーを押せば、変更は .bashrc ファイルに保存されます。
Xterm ウィンドウを閉め、新しい Xterm を開くまで、変更が有効になっているかどうかを確認することはできません。新しい Xterm ウィンドウを開くと、修正が有効になっています。
ls に付けることができる一般的なオプションについて、いくつか簡単に説明します。オプションについては、ls man ページ (man ls) を読めばそのすべてを知ることができます。
-a -- すべて。非表示ファイル (.filename) を含むディレクトにあるすべてのファイルをリストします。リストの最初の .. および . は、それぞれ、親ディレクトリと現行ディレクトリを示します。
-l -- 詳細。権限 (モード)、所有者、グループ、サイズ、作成日、ファイルがシステムのどこかにリンクされているかどうか、そしてそのリンクポイントなどを含む、内容についての詳細をリストします。
-F -- ファイルタイプ。各一覧の最後に記号を追加します。これらの記号としては、ディレクトリを示す /、他のファイルへのシンボリックリンクを示す @、そして実行可能ファイルを示す * が含まれます。
-r -- 反転。ディレクトリの内容を反転してリストします。
-R -- 再帰。この再帰オプションは、すべてのディレクトリ (カレントディレクトリより下のディレクトリ) の内容を再帰的にリストします。
-S -- サイズ。ファイルをサイズでソートします。
この章の後半、パイプと I/O リダイレクトを紹介するときに、ディレクトリの内容を表示するほかの方法について説明します。
まとめ: ディレクトリの内容を見るには、シェルプロンプトで ls を入力します。ls -a と入力すると、ディレクトリのすべての内容が表示され、ls -a --color と入力すると、すべての内容が色別に表示されます。