Linux ls コマンド:ディレクトリ内容の表示

LinuxBeginner
オンラインで実践に進む

はじめに

Linuxファイル管理のエキサイティングな世界へようこそ!このチュートリアルでは、ファイルシステムを操作するための頼れる相棒である ls コマンドをマスターする旅に出かけます。駆け出しのシステム管理者であれ、好奇心旺盛な初心者であれ、ls を理解することはLinuxでの冒険において非常に重要です。

あなたが謎のフォルダを調査する探偵だと想像してみてください。ls コマンドは、隠された手がかりを明らかにし、ファイルシステムの秘密を暴くための虫眼鏡のようなものです。それでは、調査を開始しましょう!

ファイルシステムに入る

ターミナルを開いて、調査を開始しましょう!

デスクトップ上のXfce Terminalアイコンをクリックして、新しいターミナルウィンドウを開きます。

デスクトップ上のXfce Terminalアイコン

まずは、基本的な ls コマンドを使って周囲を見渡してみましょう。

入力:

ls

出力:

data_file.txt test test_file.txt

lsコマンドの出力例

以降のステップでは、コマンドプロンプトや出力結果のスクリーンショットは省略します。ターミナルにコマンドを入力して出力を確認してください。

おめでとうございます!ディレクトリの内容をリスト表示できました。これらが、私たちの謎の部屋にある目に見える「手がかり」です。何が見えているのかを理解しましょう:

  • data_file.txttest_file.txt はファイルです。Linuxでは、ファイル拡張子(.txt など)がファイルの種類を示すために使われることが多いですが、必須ではありません。
  • test はディレクトリ(フォルダ)である可能性が高いです。ファイル拡張子がないことに注目してください。

ファイル名が異なっていても心配しないでください。ディレクトリの内容は環境によって異なる場合があります。重要なのは、現在のディレクトリの中身を確認できるようになったということです!

隠された秘密を暴く

目に見える手がかりを確認したので、次は隠された手がかりを探してみましょう。Linuxの世界では、隠しファイルや隠しディレクトリはドット(.)で始まります。これらは多くの場合、設定ファイルや、通常の表示で邪魔にならないようにするためのディレクトリです。

入力:

ls -a

出力:

. .. data_file.txt test test_file.txt

-a オプションは、隠しファイルを含むすべてのファイルを表示します。何が見えているのかを分解してみましょう:

  • . は現在のディレクトリを表します。コマンド内で使用できるショートカットです。
  • .. は親ディレクトリ(1つ上の階層のディレクトリ)を表します。これはナビゲーションに便利です。
  • 先ほど見た他のファイルも引き続き表示されています。

「なぜ実際の隠しファイルが見当たらないのか?」と疑問に思うかもしれません。この場合、ディレクトリには ... 以外に隠しファイルが含まれていないためです。多くのディレクトリ、特にホームフォルダには、.bashrc.config といったファイルがよく見られます。

Windowsの背景を持つ方には奇妙に思えるかもしれません。Windowsでは隠しファイルは属性ですが、Linuxではファイル名によって決まります。ドットで始まるファイルはすべて隠しファイルとみなされます。

詳細情報を収集する

優れた探偵には詳細な情報が必要です。-l オプションを使用して、ロングリスト形式で表示してみましょう。これにより、各ファイルやディレクトリに関するより多くの情報が得られます。

入力:

ls -l

出力:

total 8
-rw-rw-r-- 1 labex labex 12 Aug  7 11:23 data_file.txt
drwxrwxr-x 2 labex labex  6 Aug  7 11:23 test
-rw-rw-r-- 1 labex labex 27 Aug  7 11:23 test_file.txt

おっと、かなりの情報量ですね!一つずつ分解してみましょう:

  1. ファイル権限:最初の列(例:-rw-rw-r--)はファイル権限を示します。

    • 最初の文字はファイルの種類を示します(- は通常のファイル、d はディレクトリ)。
    • 次の3文字は所有者の権限を示します。
    • その次の3文字はグループの権限を示します。
    • 最後の3文字はその他のユーザーの権限を示します。
    • r は読み取り(read)、w は書き込み(write)、x は実行(execute)を意味します。
  2. リンク数:権限のすぐ後の数字(ファイルの場合は1、この例のディレクトリの場合は2)。

  3. 所有者名:ファイルの所有者のユーザー名(この場合は labex)。

  4. グループ名:ファイルにアクセス権を持つグループ(ここでも labex)。

  5. ファイルサイズ:バイト単位のサイズ(data_file.txtは12、testディレクトリは6、test_file.txtは27)。

  6. 最終更新日時:ファイルが最後に変更された日時(ここではすべて Aug 7 11:23)。

  7. ファイルまたはディレクトリ名:ファイルやディレクトリの名前。

test の権限の先頭に d があることに注目してください。これはディレクトリであることを意味します!また、サイズが6バイトですが、これは一部のファイルシステムにおいて空またはほぼ空のディレクトリの典型的なサイズです。

この詳細なビューにより、ファイルやディレクトリに関する多くの情報を一目で把握できます。誰がファイルにアクセスできるか、いつ最後に変更されたか、どのくらいのサイズかを知るのに非常に便利です。

ファイルサイズを人間が読みやすくする

バイト単位のファイルサイズは、特に大きなファイルの場合、理解しにくいことがあります。-l オプションと一緒に -h オプションを使用して、人間にとって分かりやすい形式にしてみましょう。

入力:

ls -lh

👆 LabExヒント: コードブロックの右下にある「Explain Code」をクリックすると、Labby AIとチャットしてコードの解説を受けることができます。

出力:

total 8.0K
-rw-rw-r-- 1 labex labex 12 Aug  7 11:23 data_file.txt
drwxrwxr-x 2 labex labex  6 Aug  7 11:23 test
-rw-rw-r-- 1 labex labex 27 Aug  7 11:23 test_file.txt

これで合計サイズが 8.0K であることが分かりました。バイト単位で見るよりもずっと理解しやすいですね!

-h オプションは「human-readable(人間が読みやすい)」の略です。ファイルサイズを人間が理解しやすい形式に変換します。仕組みは以下の通りです:

  • 1 KB 未満のファイルはバイト単位で表示されます(ここでのファイルのように)。
  • 1 KB から 1 MB の間のファイルは KB (K) で表示されます。
  • 1 MB から 1 GB の間のファイルは MB (M) で表示されます。
  • 1 GB を超えるファイルは GB (G) で表示されます。

これは、大きなファイルを扱う際や、ファイルがどれだけの容量を占めているかを素早く把握したい場合に特に便利です。

-h オプションを追加しても、-l オプションをそのまま含めていることに気づいたかもしれません。これは、-h がロングリスト形式の出力を変更するオプションだからです。もし ls -h だけを使った場合、ファイルサイズは全く表示されません!

探偵ツールを組み合わせる

いくつかのオプションについて学んだので、それらを組み合わせて、隠された手がかりや詳細情報を含む謎の部屋の全体像を、人間が読みやすい形式で把握してみましょう。

入力:

ls -alh

出力:

total 12K
drwxr-xr-x 1 labex labex   60 Aug  7 11:23 .
drwxr-x--- 1 labex labex 4.0K Aug  7 11:24 ..
-rw-rw-r-- 1 labex labex   12 Aug  7 11:23 data_file.txt
drwxrwxr-x 2 labex labex    6 Aug  7 11:23 test
-rw-rw-r-- 1 labex labex   27 Aug  7 11:23 test_file.txt

このコマンドは、学んだすべてを組み合わせています:

  • -a は隠しファイルを含むすべてのファイルを表示します。
  • -l は詳細情報を含むロングリスト形式を提供します。
  • -h はファイルサイズを人間が読みやすい形式にします。

何が見えているのかを分解してみましょう:

  1. ディレクトリの合計ディスク使用量(12K)。
  2. 現在のディレクトリ(.)と親ディレクトリ(..)。これらは ls -a で先ほど確認しました。
  3. ファイルとディレクトリ。ls -l で見たすべての詳細情報が含まれています。
  4. -h オプションのおかげで、人間が読みやすい形式になったファイルサイズ。

目に見えるファイルだけを合計してもこれより少ないのに、なぜ合計が 12K なのか不思議に思うかもしれません。これは、合計値にディレクトリのエントリ自体のサイズが含まれており、それがディスク上のスペースを占有しているためです。

また、オプションの順序は重要ではないことにも注目してください。ls -alhls -halls -lha はすべて同じ出力を生成します。これはほとんどのLinuxコマンドに当てはまることで、非常に柔軟性が高い理由です!

手がかりを並べ替える

手がかりの順序が重要な場合があります。ファイルを様々な方法でソートする方法を探ってみましょう。

まず、ファイルを更新日時順にソートし、最新のものを最初に表示してみましょう:

入力:

ls -lt

このコマンドは、ロング形式 (-l) でファイルをリストし、更新日時 (-t) でソートし、最近変更されたものを一番上に表示します。

もし順序に違いが見られない場合、それはこのディレクトリ内のすべてのファイルが同じタイミングで作成または変更されたためです。実際にファイルが異なるタイミングで変更されている環境では、最近変更されたファイルが一番上に表示されます。

次に、順序を逆にして、最も古いファイルを最初に表示してみましょう:

入力:

ls -ltr

r オプションはソート順序を逆にします。ここでも、すべてのファイルの更新日時が同じであれば、違いは分かりません。

他にも便利なソートオプションがあります:

  • -S: ファイルサイズでソート(大きい順)
  • -X: ファイル拡張子のアルファベット順でソート
  • -v: バージョン順でソート(番号付きファイルに便利)

これらを以前のオプションと組み合わせることができます。例えば、ls -lhSr とすると、人間が読みやすいサイズでロングリストを表示し、サイズ順に小さいものから並べ替えることができます。

Linuxでは、オプションを組み合わせて強力でカスタマイズされたコマンドを作成できることを覚えておいてください!

ディレクトリの中を覗き見る

これまでは現在のディレクトリの内容を見てきました。しかし、実際に中に入ることなくサブディレクトリの内容を調査したい場合はどうすればよいでしょうか?ls コマンドの引数としてディレクトリ名を指定することで可能です。

入力:

ls -l test

このコマンドは、現在の場所に留まったまま test ディレクトリの内容をリスト表示します。もし test ディレクトリが空であれば、次のようなメッセージが表示されます:

total 0

これはディレクトリは存在するがファイルが含まれていないことを意味します。

test ディレクトリにファイルがある場合は、現在のディレクトリで見たのと同じようにリスト表示されます。

このようにディレクトリを「覗き見る」機能は、ファイルシステムを探索したり、特定のファイルを探したりする際に非常に便利です。ワイルドカードを使用して、複数のディレクトリを一度に調べることもできます。例えば:

ls -l */

これは、現在の場所にあるすべての直下サブディレクトリの内容を表示します。

ディレクトリを読み取る権限がない場合、ls はアクセス拒否されたことを伝えます。これはLinuxの堅牢なセキュリティモデルの一部であり、ユーザーが許可されたファイルやディレクトリにのみアクセスできるようにするためのものです。

楽しいトリック - おしゃべりな牛とカラーオプションの理解

ls の基本をマスターしたので、少し楽しんでさらに深く探求してみましょう!Linuxは真面目な作業だけでなく、遊び心もあります。cowsay という楽しいプログラムを使ってディレクトリの内容を面白い方法で表示し、その後 ls のカラーオプションについて学びます。

まず、cowsayのトリックを試してみましょう:

入力:

ls | cowsay

次のようなものが表示されるはずです:

 _________________________________________
/ data_file.txt test test_file.txt        \
\                                         /
 -----------------------------------------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

面白いでしょう?ディレクトリの内容を牛に喋らせることができました!

lscowsay の間にある | 記号について疑問に思うかもしれません。これは「パイプ」と呼ばれ、コマンド同士を接続するLinuxの強力な機能です。現時点で仕組みが分からなくても全く問題ありません!パイプについては今後のレッスンで詳しく学びます。今は、おしゃべりな牛を楽しんでください!

次に、ls についてもう少し探求しましょう。ls が出力を異なる色で表示できることを知っていましたか?デフォルトでは、多くのLinuxシステムで自動的に色がつくように設定されています。しかし、この動作を制御することもできます。ls に特別なオプションを付けて、色をオフにしてみましょう:

入力:

ls --color=never

これで、色なしでディレクトリの内容が表示されるはずです。これが ls のプレーンな出力です。

ls--color オプションには3つの値を指定できます:

  • never: 色を全く使用しない(今試したこと)
  • always: ファイルや他のコマンドに出力を送る場合でも、常に色を使用する
  • auto: ターミナルに直接出力する場合は色を使用するが、他の場所に出力を送る場合は使用しない

ls --color=never を使用することは、スクリプト内や、ターミナルの設定に関わらず一貫した出力を確保したい場合に便利です。

これらの小さな探求は、Linuxコマンドには動作を変更できる多くのオプションがあることを示しています。Linuxの旅を続ける中で、ls や他のコマンドのさらに多くの便利な機能を発見することでしょう!

まとめ

おめでとうございます、探偵!ls コマンドの基本をマスターしました。学んだことを振り返ってみましょう:

  1. 基本的な使用法: ls - 現在のディレクトリ内のファイルとディレクトリをリスト表示します。
  2. 隠しファイルの表示: ls -a - 隠しファイルを含むすべてのファイルを表示します。
  3. 詳細なリスト表示: ls -l - ファイルとディレクトリに関する詳細情報を表示します。
  4. 人間が読みやすいファイルサイズ: ls -h - ファイルサイズを人間が理解しやすい形式で表示します。
  5. オプションの組み合わせ: ls -alh - すべてのファイルを詳細情報と人間が読みやすいサイズで表示します。
  6. ファイルのソート: ls -lt, ls -ltr - 更新日時順にソートし、最新または最も古いものを最初に表示します。
  7. 他のディレクトリの内容を表示: ls [ディレクトリ名] - 現在の場所を変更せずに他のディレクトリを覗き見ます。

ls には他にも探求すべきオプションがたくさんあります。役に立つかもしれないものをいくつか紹介します:

  • -R: サブディレクトリを再帰的にリスト表示する(すべてのサブディレクトリの内容を表示)
  • -S: ファイルサイズでソート(大きい順)
  • -X: エントリの拡張子のアルファベット順でソート
  • -1: 1行に1ファイルずつリスト表示する(スクリプトに便利)

いつでもターミナルで man ls と入力して ls のマニュアルページを確認し、オプションの完全なリストと詳細な説明を参照できることを忘れないでください。マニュアルページを恐れる必要はありません。読み慣れてしまえば、情報の宝庫です!

これらのツールを使いこなせれば、どんなLinuxシステムでもファイルを探索・管理する準備は万端です。ls コマンドはLinuxの旅の始まりに過ぎませんが、オペレーティングシステムに習熟するにつれて毎日使用することになる不可欠なツールです。

Linuxを探求し続けるにあたって、以下の重要なポイントを覚えておいてください:

  1. Linuxコマンドは最初は短く難解に見えますが、一度学べば強力で効率的になるように設計されています。
  2. ほとんどのコマンドには、様々な方法で組み合わせることができる多くのオプションがあります。実験することを恐れないでください!
  3. ターミナルは最初は威圧的に見えるかもしれませんが、システムを正確に制御できる非常に強力なツールです。
  4. Linuxは大文字と小文字を区別します。File.txtfile.txtFILE.txt はすべて異なるファイルです。
  5. ls で学んだ概念(オプションや引数など)は、他の多くのLinuxコマンドにも適用されます。

練習あるのみです!様々なディレクトリで ls のオプションを組み合わせて使ってみてください。使えば使うほど、自然に身についていくはずです。

誰もが最初は初心者だったことを忘れないでください。忍耐と練習を重ねれば、すぐにプロのようにLinuxファイルシステムを操作できるようになるでしょう!

探索を楽しんでください。ls コマンドの復習が必要なときは、いつでもこのガイドに戻ってきてください。あなたのLinuxの世界への旅は、まだ始まったばかりです!