こんにちは、じょえずです。
仮想化環境のCentOSマシンを使って、Linux系OSの操作に馴染んでいくシリーズ再開です。
今回はlsコマンドを取り上げて、Linux系OSの基本を掘り下げていきます。
これまでの経緯はこちらからご覧ください。
lsコマンド
Windowsでいえばdirコマンドにあたりますが、そこはもちろん瓜二つではなく、微妙に違います。普通にlsと打つとカレントディレクトリにあるファイルの一覧がでます。
デフォルトオプションだとdirと違ってシンプルな一覧になりますね。ではこのコマンドにどんなオプションがあるか、「--help」をつけて見てみましょう。Windowsだと「/?」みたいなもんですね。はい、たくさんオプションが出てきました。
-a は「.で始まる要素を無視しない」、-l は「詳細」となってますね
ではこのオプションをつけていろいろ表示されました。
先頭の「d」とか「-」と表示されているのは、種類を表しており、それに続く「r」「w」「x」「-」などの羅列は許可属性を表しています。
以下、まとめると
種類 | 詳細は別途取り上げます |
属性 | 詳細は別途取り上げます |
リンクカウント | ファイル(iノード)へのハードリンクの数 |
ユーザー | ユーザー名(ファイルの所有者) |
グループ | グループ名(ファイルの属するグループ) |
ファイルサイズ | ファイルのサイズ |
更新日付 | ファイルやディレクトリの最終更新日付 |
名前 | ファイル名やディレクトリ名、シンボリックリンクのリンク先など |
シンボリックリンクとは
シンボリックリンクとはファイルや、ディレクトリを参照するファイルの事で、Windowsでいうところのショートカットのようなものと捉えるとわかりやすいですね。
シンボリックリンクファイル自体は、対象ファイルまでのパスを含んだただの小さなファイルです。
ハードリンクとiノード
これはLinux系独特ですね。物理的に(というか「論理的に」なのかな)Linux系のファイルがどのようにディスクに記録されているかというと、ファイルの属性情報が格納されているiノード情報とファイルの中身そのもの、そしてそのラベル情報としてのファイル名の情報とに分かれています。
iノード情報はiノード識別番号で管理されていて、ファイル名にはどのiノード情報に紐づくかをこのiノード識別番号で関連付けされています。このファイル名とiノード識別番号の関連付けを、別のファイル名を同一iノード識別番号に関連付けすることができるそうです。
これがファイルのハードリンクです。またディレクトリのハードリンクという捉え方もあります。こちらは「.」や「..」とかの別名で同一のディレクトリを指し示すことができるっていうような認識からでよろしいかと思います。
まぁこの辺は図解でもしない限り伝わりにくいし、説明しにくいので、なんとなくそんな感じかなーくらいで最初はいいかと思います。
lsコマンドの色
話しをlsコマンドに戻しますが、先ほどのlsコマンドの出力結果にはデフォルトで色が付いています。その色によってファイルやフォルダ、特殊ファイル、ファイルタイプなどが判別できるようになっています。
デフォルトでは以下のような感じです。
色 | 意味 |
---|---|
(通常色) | 通常のファイルやディレクトリ |
青 | ディレクトリ |
水色 | シンボリックリンク |
緑 | 実行ファイル |
黄色 | デバイスやパイプ |
マゼンタ | ソケット |
しかしこの色付けとその配色は、lsコマンドに「--colors=auto」というオプションが指定されていることで実現されています。
先ほどのコマンド投入ではなにもオプションを指定していませんでしたが、これは「エイリアス(alias)」によってこのオプションが自動的に付加されていることに起因しています。
エイリアス(alias)別名
コマンドには「エイリアス」と呼ばれる“別名”を付けることができます。よく使うオプションの組み合わせや、すぐ忘れてしまうコマンドには、自分が分かりやすい名前を付けておくと便利です。
設定済みのエイリアスは「alias」コマンドで確認できます。
はいデフォルトでは「ls」は「ls --colors=auto」という別名で登録されていますね。これによって「ls」と打つだけで「ls --colors=auto」と投入したことと同じ事になっていたわけです。よく使うコマンドに、よく使うオプションをつけて、自分が分かりやすい名前で「エイリアス(alias)」登録して置くことでコマンドをカスタマイズすることができるんですね。
ここまでのまとめ
- lsコマンドでWindowsのdirコマンドのようにファイルの一覧が取得できるファイルシステムはWindowsとは微妙に異なる
- シンボリックリンクとかハードリンクとかiノードとかファイルシステムはWindowsとは微妙に異なる
- lsコマンドを打つと色分けされて表示される
- でもそれはエイリアス(alias)の成せる技