Linux Professional Institute Learning Logo.
main contentにスキップ
  • ホーム
    • 全てのリソース
    • LPI学習教材
    • コントリビューターになる
    • Publishing Partners
    • Publishing Partnerになる
    • About
    • FAQ
    • コントリビューター
    • Roadmap
    • 連絡先
  • LPI.org
2.3 レッスン 1
課題 1: Linuxコミュニティとオープンソースのキャリア
1.1 ポピュラーなOSとLinuxの発展
  • 1.1 レッスン 1
1.2 主なオープンソースのアプリケーション
  • 1.2 レッスン 1
1.3 オープンソースソフトウエアとライセンス
  • 1.3 レッスン 1
1.4 ICTスキルとLinuxでの作業
  • 1.4 レッスン 1
課題 2: Linuxシステムで自分の手法を見つける
2.1 コマンドラインの基本
  • 2.1 レッスン 1
  • 2.1 レッスン 2
2.2 コマンドラインのヘルプ機能の利用
  • 2.2 レッスン 1
2.3 ディレクトリの利用とファイルの一覧
  • 2.3 レッスン 1
  • 2.3 レッスン 2
2.4 ファイルの作成、移動と削除
  • 2.4 レッスン 1
課題 3: コマンドラインの力
3.1 コマンドラインでのファイル圧縮
  • 3.1 レッスン 1
3.2 ファイルの検索と展開
  • 3.2 レッスン 1
  • 3.2 レッスン 2
3.3 コマンドをスクリプトにする
  • 3.3 レッスン 1
  • 3.3 レッスン 2
課題 4: Linuxオペレーティングシステム
4.1 オペレーティングシステムの選択
  • 4.1 レッスン 1
4.2 コンピュータハードウエアの理解
  • 4.2 レッスン 1
4.3 データの保管場所
  • 4.3 レッスン 1
  • 4.3 レッスン 2
4.4 ネットワーク上のコンピュータ
  • 4.4 レッスン 1
課題 5: セキュリティとファイルパーミッション
5.1 セキュリティの基本と、ユーザタイプの確認
  • 5.1 レッスン 1
5.2 ユーザとグループの作成
  • 5.2 レッスン 1
5.3 ファイルのパーミッションと所有権の管理
  • 5.3 レッスン 1
5.4 特別なディレクトリとファイル
  • 5.4 レッスン 1
How to get certified
  1. 課題 2: Linuxシステムで自分の手法を見つける
  2. 2.3 ディレクトリの利用とファイルの一覧
  3. 2.3 レッスン 1

2.3 レッスン 1

はじめに

Certificate:

Linux Essentials

Version:

1.6

Topic:

2 Linuxでのやりかたを見つける

Objective:

2.3 ディレクトリの利用とファイルの一覧

Lesson:

1 of 2

ファイルとディレクトリ

他のオペレーティングシステムのファイルシステムと同様に、Linuxファイルシステムには、 ファイル と ディレクトリ が含まれます。ファイルには、人間が読めるテキスト、実行可能プログラム、コンピュータが使用するバイナリデータなどが含まれています。ディレクトリは、ファイルシステムを組織化するために使用します。ディレクトリには、ファイルや別のディレクトリを含めることができます。

$ tree

Documents
├── Mission-Statement.txt
└── Reports
    └── report2018.txt

1 directory, 2 files

この例では、Documents は、1つのファイル( Mission-Statement.txt )と1つの サブディレクトリ ( Reports )を含むディレクトリです。また、 Reports ディレクトリには、 report2018.txt という名前のファイルが1つのみ含まれています。 Documents ディレクトリは Reports ディレクトリの 親 であると言います。

Tip

お使いのシステムで tree コマンドを使用できない場合は、Linuxディストリビューションに応じたパッケージマネージャーを使用してインストールします。その方法については、パッケージ管理のレッスンで説明します。

ファイルとディレクトリの名前

Linuxのファイル名とディレクトリ名には、アルファベットの小文字と大文字、数字、スペース、特殊文字を含めることができます(訳注: 多くのディストリビューションでは日本語(全角文字)も使用可能です)。ただし、Linuxシェルでは特別な意味を持つ特殊文字がいくつもあるので、ファイルやディレクトリに名前を付けるときにスペースや特殊文字を使用しないことがお勧めです。たとえば、スペースを正しく入力するには、 エスケープ文字 \ が必要になります。

$ cd Mission\ Statements

ファイル名 report2018.txt を見てみましょう。ファイル名として、ピリオド( . )の後に サフィックス (suffix/接尾辞)を含めることがよくあります。 Windowsとは異なり、Linuxではこのサフィックスに特別な意味はありません。単に、人間が理解しやすい名前とするだけです。この例の .txt は、これがプレーンテキストファイルであることを示していますが、技術的にはあらゆる種類のデータを含めることができます。

ファイルシステムの探検

現在の位置を知る

BashなどのLinuxシェルはテキストベースですから、ファイルシステム内を移動するときは、現在の場所を知る必要があります。 コマンドプロンプト にこの情報が含まれています:

user@hostname ~/Documents/Reports $

user や hostname などの情報については、後のセクションで説明します。プロンプトから、現在の場所が Reports ディレクトリであることがわかります。また、 pwd コマンドは、 作業ディレクトリ を表示(Print Working Directory)します:

user@hostname ~/Documents/Reports $ pwd
/home/user/Documents/Reports

ディレクトリの親子関係はスラッシュ( / )で示されます。 Reports は Documents の、 Documents は user の、 user は home の、それぞれサブディレクトリです。 home には親ディレクトリがないようですが、そうではありません。 home の親は root (ルート)と呼ばれ、最初のスラッシュ( / )で示されます。ルートディレクトリについては、後のセクションで説明します。

pwd コマンドの出力は、コマンドプロンプトに表示されているパスとは少し異なることに気づきましたか。コマンドプロンプトには、 /home/user の代わりにチルダ( ~ )が表示されています。チルダは、ユーザーのホームディレクトリを表す特殊文字です。これについては、次のレッスンで詳しく説明します。

ディレクトリの内容をリスト表示する

現在のディレクトリの内容は、 ls コマンドでリスト表示されます:

user@hostname ~/Documents/Reports $ ls
report2018.txt

ls コマンドは、親ディレクトリに関する情報を表示しないことに注意しましょう。同様に、デフォルトでは ls は、サブディレクトリの内容に関する情報を表示しません。 ls は現在のディレクトリにあるものを “一覧” するのみです。

現在のディレクトリを変更する

Linuxにおけるファイルシステムのナビゲーションは、主に cd コマンド(Change Directory)で、現在のディレクトリを変更します。前述の pwd コマンドを使用すると、現在のディレクトリが /home/user/Documents/Reports であることがわかります。移動先のパスを入力して、現在のディレクトリを変更できます。

user@hostname ~ $ cd /home/user/Documents
user@hostname ~/Documents $ pwd
/home/user/Documents
user@hostname ~/Documents $ ls
Mission-Statement.txt Reports

変更後の位置からは、 Mission-Statement.txt と、サブディレクトリ Reports が “見え” ますが、サブディレクトリの内容は見えません。次のように、元の Reports ディレクトリに戻ることができます:

user@hostname ~/Documents $ cd Reports
user@hostname ~/Documents/Reports $ pwd
/home/user/Documents/Reports
user@hostname ~/Documents/Reports $ ls
report2018.txt

開始点に戻りました。

絶対パスと相対パス

pwd コマンドは、常に 絶対パス を出力します。つまりパスには、ファイルシステムの最上部( / )から最下部( Reports )までのパスのすべての要素が含まれます。絶対パスは常に / で始まります。

/
└── home
    └── user
        └── Documents
            └── Reports

絶対パスには、ファイルシステムの任意の場所から Reports にアクセスするために必要なすべての情報が含まれています。欠点は、入力するのが面倒なことです。

2番目の例(cd Reports)は、入力がはるかに簡単でした。これは、 相対パス の例です。相対パスは短いですが、現在の場所に居る場合にのみ意味があります。例えてみましょう: 私があなたの家に居るとします。あなたは、友達が隣の家に居ると教えてくれます。今居る場所からの相対位置なので、私はそれがどこなのか分かります。しかし、私があなたの家を知らなければ、友達の家がどこなのか分かりません。完全な番地が必要です。

特別な相対パス

Linuxシェルでは、ナビゲート時にパス入力を短くする方法があります。その特別なパスを見るには、 ls コマンドに -a フラグを指定します。このフラグは ls コマンドの動作を変更して、隠しファイルと隠しディレクトリを含む すべての ファイルとディレクトリをリスト表示します:

user@hostname ~/Documents/Reports $ ls -a
.
..
report2018.txt
Note

-a オプションがどのような働きをするか、 ls コマンドのmanページに書かれています。

このコマンドでは、2つの結果が追加されています。これらが特別なパスです。この2つは新しいファイルやディレクトリを表すのではなく、すでに知っているディレクトリを表現しています。

.

現在の位置 を示します(この場合では Reports )。

..

親ディレクトリ を示します(この場合では Documents )

現在の位置を示す特別な相対パスを使用することは、通常ありません。./report2018.txt と入力するよりも、 report2018.txt と入力する方が、簡単で理解しやすからです。しかし、 . を使用する場面については、後のセクションで学習します。ここでは、親ディレクトリを示す相対パスに注目しましょう。

user@hostname ~/Documents/Reports $ cd ..
user@hostname ~/Documents $ pwd
/home/user/Documents

この例では、絶対パスではなく .. を使うと、cd コマンドがずっと簡単になっています。このパターンを組み合わせることで、ファイルツリーの上への移動がすばやく行えます。

user@hostname ~/Documents $ cd ../..
$ pwd
/home

演習

  1. 以下のパスが、 絶対パス か 相対パス かを答えましょう:

    /home/user/Downloads

    ../Reports

    /var

    docs

    /

  2. 次のファイル構造を観察しましょう。注: tree コマンドに -F オプションを指定すると、ディレクトリ名の末尾にスラッシュ(/)が表示されます。ルート(/)ディレクトリで tree コマンドを実行するには、権限の昇格が必要です。以下は出力例であり、完全なディレクトリ構造を示すものではありません。これを使用して、次の質問に答えてください

    $ sudo tree -F /
    
    /
    ├── etc/
    │   ├── network/
    │   │   └── interfaces
    │   ├── systemd/
    │   │   ├── resolved.conf
    │   │   ├── system/
    │   │   ├── system.conf
    │   │   ├── user/
    │   │   └── user.conf
    │   └── udev/
    │       ├── rules.d/
    │       └── udev.conf
    └── home/
        ├── lost+found/
        └── user/
            └── Documents/
    
    12 directories, 5 files

    このファイル構造を見ながら、以下の質問に答えましょう。

    ユーザーが、次のコマンドを入力しました:

    $ cd /etc/udev
    $ ls -a

    ls -a コマンドは何を出力しますか?

  3. 以下の各問について、可能な限り短いコマンドを答えましょう:

    • 現在の位置は root( / )です。 home ディレクトリにある lost+found に移動するコマンドを答えましょう。(例)

      $ cd home/lost+found
    • 現在の位置は root( / )です。 /etc/network/ というディレクトリに移動するコマンドを答えましょう。

    • 現在の位置は /home/user/Documents/ です。 /etc/ というディレクトリに移動するコマンドを答えましょう。

    • 現在の位置は /etc/systemd/system/ です。 /home/user/ というディレクトリに移動するコマンドを答えましょう。

  4. 次のコマンドについて考察しましょう:

    $ pwd
    /etc/udev/rules.d
    $ cd ../../systemd/user
    $ cd ..
    $ pwd

    最後の pwd コマンドの出力は何になりますか?

発展演習

  1. ユーザーが次のコマンドを入力したとしましょう:

    $ mkdir "this is a test"
    $ ls
    this is a test

    このディレクトリに移動するための cd コマンドはどうなりますか?

  2. 前問と同じことを再度行います。ただし、 cd this を入力した後に、タブキーを押してみましょう。今度は、プロンプトに何が表示されますか?

    これは、補完(autocompletion)の一例です。これは、時間を節約するだけでなく、スペルミスを避けるためにも役立つツールです。

  3. 名前に文字 \ を含むディレクトリを作りましょう。その名前を ls コマンドで確認して、さらに削除しましょう。

まとめ

このレッスンでは、次のような事柄を学習しました:

  • Linuxファイルシステムの基本

  • 親 ディレクトリと、 サブディレクトリ の違い

  • 絶対パス と 相対パス の違い

  • 特別な相対パス . と ..

  • cd でファイルシステムを探検する

  • pwd で現在の位置を表示する

  • ls -a で すべての ファイルやディレクトリをリストする

このレッスンでは、以下のコマンドを取り上げました:

cd

現在のディレクトリを変更する

pwd

現在のディレクトリのパスを表示する

ls

ディレクトリの内容をリストする、また、ファイルの属性を表示する

mkdir

新しいディレクトリを作成する

tree

ディレクトリツリーの階層構造を表示する

演習の解答

  1. 以下のパスが、絶対パス か 相対パス かを答えましょう:

    /home/user/Downloads

    絶対

    ../Reports

    相対

    /var

    絶対

    docs

    相対

    /

    絶対

  2. 次のファイル構造を観察しましょう。注: tree コマンドに -F オプションを指定すると、ディレクトリ名の末尾にスラッシュ(/)が表示されます。ルート(/)ディレクトリで tree コマンドを実行するには、権限の昇格が必要です。以下は出力例であり、完全なディレクトリ構造を示すものではありません。これを使用して、次の質問に答えてください

    $ sudo tree -F /
    
    /
    ├── etc/
    │   ├── network/
    │   │   └── interfaces
    │   ├── systemd/
    │   │   ├── resolved.conf
    │   │   ├── system/
    │   │   ├── system.conf
    │   │   ├── user/
    │   │   └── user.conf
    │   └── udev/
    │       ├── rules.d/
    │       └── udev.conf
    └── home/
        ├── lost+found/
        └── user/
            └── Documents/
    
    12 directories, 4 files

    ユーザーが、次のコマンドを入力しました:

    $ cd /etc/udev
    $ ls -a

    ls -a コマンドは何を出力しますか?

    . .. rules.d udev.conf
  3. 以下の各問について、可能な限り短いコマンドを答えましょう:

    • 現在の位置は root( / )です。 home ディレクトリにある lost+found に移動するコマンドを答えましょう。(例)

      $ cd home/lost+found
    • 現在の位置は root( / )です。 /etc/network/ というディレクトリに移動するコマンドを答えましょう。

      $ cd etc/network
    • 現在の位置は /home/user/Documents/ です。 /etc/ というディレクトリに移動するコマンドを答えましょう。

      $ cd /etc
    • 現在の位置は /etc/systemd/system/ です。 /home/user/ というディレクトリに移動するコマンドを答えましょう。

      $ cd /home/user
  4. 次のコマンドについて考察しましょう:

    $ pwd
    /etc/udev/rules.d
    $ cd ../../systemd/user
    $ cd ..
    $ pwd

    最後の pwd コマンドの出力は何になりますか?

    /etc/systemd

発展演習の解答

  1. ユーザーが次のコマンドを入力したとしましょう:

    $ mkdir "this is a test"
    $ ls
    this is a test

    このディレクトリに移動するための cd コマンドはどうなりますか?

    $ cd this\ is\ a\ test
  2. 前問と同じことを再度行います。ただし、 cd this を入力した後に、タブキーを押してみましょう。今度は、プロンプトに何が表示されますか?

    $ cd this\ is\ a\ test

    これは、補完(autocompletion)の一例です。これは、時間を節約するだけでなく、スペルミスを避けるためにも役立つツールです。

  3. 名前に文字 \ を含むディレクトリを作りましょう。その名前を ls コマンドで確認して、さらに削除しましょう。

    もう一つのバックスラッシュでバックスラッシュをエスケープする( \\ )か、ディレクトリ名全体をシングルクオートないしダブルクオートで囲みます:

    $ mkdir my\\dir
    $ ls
    'my\dir'
    $ rmdir 'my\dir'

Linux Professional Insitute Inc. All rights reserved. 学習資料をご覧ください: https://learning.lpi.org
ここでの作成物は、Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Licenseの下でライセンスされています。

次のレッスン

2.3 ディレクトリの利用とファイルの一覧 (2.3 レッスン 2)

次のレッスンを読む

Linux Professional Insitute Inc. All rights reserved. 学習資料をご覧ください: https://learning.lpi.org
ここでの作成物は、Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Licenseの下でライセンスされています。

LPIは非営利団体です。

© 2023 Linux Professional Institute(LPI)は、オープンソースプロフェッショナル向けのグローバルな認定基準およびキャリアサポート組織です。200,000人以上の認定保持者を擁する、世界初かつ最大のベンダー中立Linuxおよびオープンソース認定機関です。LPIは180か国以上で認定プロフェッショナルを擁し、複数の言語で試験を実施し、何百ものトレーニングパートナーを擁しています。

私たちの目的は、オープンソースの知識とスキルの認定資格を世界中からアクセスできるようにすることで、誰にとっても経済的で創造的な機会を可能にすることです。

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • お問い合わせ
  • 個人情報とCookieポリシー

間違いを見つけたり、このページを改善したいですか? 私たちに知らせてください。.

© 1999–2023 The Linux Professional Institute Inc. All rights reserved.