ファイルとディレクトリ操作

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

Linux のファイルとディレクトリ操作の実験へようこそ!Linux に初めて触れる方も心配しないでください。この実験では、どうすればよいかだけでなく、その理由まで丁寧に解説しながら、あなたを1つ1つのステップに案内します。この実験は、Linux で作業する上で不可欠な Linux ファイルシステムに対する実践的な経験を与えることを目的としています。

入り込む前に、いくつかの基本概念を説明しましょう。

  • Linux ファイルシステム:コンピュータ上のすべてのファイルを整理する木構造のようなものと考えてください。Windows のドライブレター(C:、D: など)とは異なり、Linux には1つのルートディレクトリ(/)があり、そこから他のすべてが枝分かれします。
  • ディレクトリ:これは、他のオペレーティングシステムでは「フォルダ」と呼ばれるものの Linux 用語です。ファイルや他のディレクトリを収容するコンテナです。
  • ファイル:Linux では、ほとんどすべてがファイルです!通常のドキュメント、ディレクトリ、さらにはハードウェアデバイスさえもファイルとして扱われます。この統一的なアプローチにより、多くの操作が簡素化されます。
  • パス:これは、ファイルやディレクトリの住所のようなものです。絶対パス(ルートディレクトリから始まる)と相対パス(現在の場所から始まる)について学びます。
  • ターミナル:これは、Linux と対話するためのコマンドセンターです。最初は脅威的に見えるかもしれませんが、すぐにそれがシステムを管理するための強力なツールであることがわかります。
  • ファイル検索:Linux には、システム全体でファイルを見つけるための強力なツールが用意されています。findwhich などのコマンドを調べて、ファイルや実行可能ファイルを迅速に見つける方法を学びましょう。

始めましょうか?Linux ファイルシステムへの旅を始めましょう!

Linux ディレクトリ構造の探索

このステップでは、Linux ファイルシステムを見学します。これにより、さまざまな種類のファイルがどこに保存されているか、システムがどのように組織化されているかを理解することができます。

  1. ターミナルを開きます。$ 記号で終わるプロンプトが表示されるはずです。ここにコマンドを入力します。現在、あなたは /home/labex/project のプロジェクトディレクトリにいます。これを確認しましょう:

    pwd

    pwd は「現在の作業ディレクトリを表示する」という意味です。これは、ファイルシステム内のどこにいるかを教えてくれます。

  2. 次に、全体のディレクトリ構造を表示しましょう:

    tree /

    すごい!情報がたくさんあります。tree コマンドは、木構造の形式でディレクトリ構造を表示します。/ 引数は、ルートディレクトリから始めるように指示します。見たことすべてを理解する必要はありません。重要な部分に焦点を当てましょう。

  3. いくつかの主要なディレクトリを探索しましょう:

    ls /home
    ls /etc
    ls /bin
    • /home は、ユーザーディレクトリが保存されている場所です。通常、各ユーザーはここに独自のディレクトリを持っています。
    • /etc には、システム設定ファイルが含まれています。
    • /bin には、すべてのユーザーが利用できる必要がある基本的なコマンドバイナリ(プログラム)が格納されています。
  4. 次に、ルートディレクトリに移動してその内容を一覧表示しましょう:

    cd /
    ls -l

    cd は「ディレクトリを変更する」という意味です。/ はルートディレクトリに移動します。
    ls -l は、ディレクトリの内容を詳細な形式で一覧表示します。-l はオプションまたはフラグと呼ばれ、コマンドの動作を変更します。

  5. ホームディレクトリに戻りましょう:

    cd ~
    pwd

    ~ は、ファイルシステム内のどこにいても常にホームディレクトリを表すショートカットです。

このステップの後、Linux のディレクトリ構造とその移動方法について基本的な理解を得るはずです。すべてを暗記しなくても大丈夫です。いつでもこれらのコマンドを使って構造を思い出すことができます。

パスとナビゲーションの理解

これでファイルシステムの概要を把握したので、効率的にナビゲートする方法を学びましょう。ファイルシステム内を移動する際に重要な絶対パスと相対パスの概念を探ります。

  1. まず、練習用のディレクトリ構造を作成しましょう:

    mkdir -p ~/project/practice/subdirectory

    mkdir は「ディレクトリを作成する」という意味です。-p オプションは、親ディレクトリが存在しない場合にそれらを作成できるようにします。このコマンドは、あなたの project ディレクトリ内に practice ディレクトリを作成し、practice 内に subdirectory を作成します。

  2. 相対パスを使って新しいサブディレクトリに移動しましょう:

    cd ~/project/practice/subdirectory
    pwd

    このパスは、あなたのホームディレクトリ(~)に対して相対的です。現在の場所に依存するため、相対パスと呼ばれます。

  3. 次に、ディレクトリ構造を1つ上の階層に移動しましょう:

    cd..
    pwd

    .. は常に親ディレクトリを指します。ディレクトリツリーを上に移動するための便利なショートカットです。

  4. サブディレクトリに戻るために絶対パスを使いましょう:

    cd /home/labex/project/practice/subdirectory
    pwd

    これは絶対パスです。ルートディレクトリ(/)から始まり、現在の場所に関係なく目的地までの完全なパスを提供します。

  5. 次に、いくつかのナビゲーションショートカットを練習しましょう:

    cd ~ ## ホームディレクトリに移動
    pwd
    cd - ## 前のディレクトリに移動
    pwd
    cd ## ホームディレクトリに移動する別の方法
    pwd

    これらのショートカットは、多くの入力を省略できます!

このステップの終わりまでに、絶対パスと相対パスの両方を使ってファイルシステムをナビゲートすることに慣れているはずです。練習が完璧をもたらすことを忘れないでください。これらのコマンドを試してみることをためらわないでください!

ファイルとディレクトリの作成と管理

これでファイルシステムのナビゲーションに慣れたので、ファイルとディレクトリを作成して管理する方法を学びましょう。これらはLinuxを使って作業するための基本的なスキルです。

  1. プロジェクトディレクトリに移動しましょう:

    cd ~/project
  2. 一度に複数のディレクトリを作成しましょう:

    mkdir dir1 dir2 dir3
    ls

    mkdir は1つのコマンドで複数のディレクトリを作成できます。ls は現在のディレクトリの内容を一覧表示するので、作成したものが見えます。

  3. 次に、空のファイルを作成しましょう:

    touch file1.txt
    ls -l file1.txt

    touch は空のファイルを作成するために使用されるか、既存のファイルのタイムスタンプを更新します。ls -l コマンドは、ファイルの詳細情報、サイズ(0バイトであるはず)を表示します。

  4. 内容を含むファイルを作成しましょう:

    echo "Hello, Linux" > file2.txt
    cat file2.txt

    echo はテキストを出力し、> はそのテキストをファイルにリダイレクトし、ファイルが存在しない場合は作成します。cat はファイルの内容を表示するために使用されます。

  5. 次に、ファイルに内容を追加しましょう:

    echo "This is a new line." >> file2.txt
    cat file2.txt

    >> は上書きではなくファイルに追加します。ファイルに2行目が追加されていることがわかります。

  6. 最後に、ネストしたディレクトリ構造を作成しましょう:

    mkdir -p nested/structure/example
    tree nested

    tree コマンドは、作成したディレクトリ構造を見やすいビジュアルな表示にしてくれます。

このステップの終わりまでに、ファイルとディレクトリを作成し、ファイルに内容を追加し、ファイルの内容を表示することに慣れているはずです。これらの操作は、Linuxにおけるファイル管理の基盤を形成しています。

ファイルのコピー、移動、および名前変更

これでファイルとディレクトリを作成する方法を知ったので、それらを操作する方法を学びましょう。ファイルとディレクトリのコピー、移動、および名前変更について学びます。

  1. まず、ファイルをコピーしましょう:

    cp file1.txt dir1/
    ls dir1

    cp はコピーコマンドです。ここでは、file1.txtdir1 ディレクトリにコピーしています。

  2. 次に、1つのコマンドでファイルをコピーして名前を変更しましょう:

    cp file2.txt dir2/file2_copy.txt
    ls dir2

    これは、file2.txt のコピーを dir2 に作成しますが、新しい名前になります。

  3. ファイルを移動しましょう:

    mv file1.txt dir3/
    ls
    ls dir3

    mv はファイルを移動するために使用されます。file1.txt が現在のディレクトリにはもうなくなっており、代わりに dir3 に表示されることに注意してください。

  4. mv を使ってファイルの名前を変更することもできます:

    mv dir3/file1.txt dir3/renamed_file.txt
    ls dir3

    これは、dir3 内の file1.txtrenamed_file.txt に名前変更します。

  5. 最後に、ディレクトリとその内容をコピーしましょう:

    cp -r nested dir1/
    tree dir1

    -r オプションは、cp に対してディレクトリを再帰的にコピーするように指示します(サブディレクトリとファイルすべてを含めて)。

移動やコピーする際には、絶対パスまたは相対パスのどちらを使っても構いません。現在の状況で便利な方を選択してください。

ファイル内容の表示と編集

この最後のステップでは、ファイル内容を表示するより高度な方法と、シンプルなテキストエディタを使ってファイルを編集する方法を学びます。

  1. ヒアドキュメントを使って複数行の新しいファイルを作成しましょう:

    cat << EOF > multiline.txt
    Line 1: Hello, Linux
    Line 2: This is a multiline file.
    Line 3: Created using a here-document.
    EOF

    これは、「ヒアドキュメント」を使って複数行のファイルを作成します。事前に定義された内容を持つファイルを作成する便利な方法です。<< 演算子の後に区切り文字(この場合は EOF)が続きます。その後、シェルは区切り文字のみを含む行を見つけるまで、次のすべての行を入力として読み取ります。このテキストのブロック全体が、multiline.txt ファイルにリダイレクトされます。

  2. ファイル内容を表示しましょう:

    cat multiline.txt

    以前に cat を使ったことがありますが、ファイル内容を素早く表示するのに特に便利です。

  3. 行番号付きでファイルを表示しましょう:

    nl multiline.txt

    nl は出力に行番号を付けます。これは特定の行を参照する際に役立ちます。

  4. ファイルの最初の2行を表示しましょう:

    head -n 2 multiline.txt

    head はファイルの先頭を表示するために使用されます。-n 2 オプションは、最初の2行を表示したいことを指定します。-n2 の間にはスペースがないことに注意してください(つまり、-n2 も有効で同じ動作をします)。

  5. ファイルの最後の行を表示しましょう:

    tail -n 1 multiline.txt

    同様に、tail はファイルの末尾を表示するために使用されます。再び、-n 1-n1 は同等です。

  6. 次に、nano を使ってファイルを編集しましょう:

    nano multiline.txt

    Nano はシンプルなテキストエディタです。矢印キーで移動し、編集するために入力し、画面下部のコマンドに従います(^ は Ctrl を意味します)。

    ファイルに4行目を追加した後、保存して終了します(Ctrl+X、次に Y、そして Enter)。

  7. 更新されたファイルを表示しましょう:

    cat multiline.txt

    新しい行がファイルに追加されていることがわかるはずです。

これらのコマンドは、コマンドラインから直接ファイル内容を検査して変更するための強力なツールを提供します。

Linux でのファイル検索

Linux では、迅速にファイルを見つけることが重要なスキルです。ファイルを検索するために使用される一般的なコマンドを学びましょう。

  1. まず、find コマンドを使って、現在のディレクトリとそのサブディレクトリ内のすべての.txt ファイルを検索しましょう:

    find. -name "*.txt"

    このコマンドは、現在のディレクトリとサブディレクトリ内のすべての.txt ファイルを一覧表示します。出力が表示されない場合は、現在のディレクトリ構造内に.txt ファイルがないことを意味します。作成しましょう:

    echo "This is a test file" > test.txt
    find. -name "*.txt"

    このとき、出力に./test.txt が表示されるはずです。

  2. 次に、システム全体で特定のファイルを検索しましょう:

    sudo find / -name "passwd"

    このコマンドは、ファイルシステム全体で "passwd" という名前のファイルを検索します。ここで sudo を使用しているのは、ルートディレクトリ (/) から始まるファイルシステム全体を検索するには、昇格された権限が必要だからです。通常のユーザーは多くのシステムディレクトリを読み取ることができませんので、sudo を使うことでこれらの保護された領域を検索できます。

    出力は以下のようになるはずです:

    /etc/pam.d/passwd
    /etc/passwd
    /usr/bin/passwd
    /usr/share/doc/passwd
    /usr/share/lintian/overrides/passwd
  3. find コマンドは非常に強力です。ファイルサイズに基づいて検索することもできます。たとえば、ホームディレクトリ内の 1MB より大きいファイルを検索しましょう:

    find ~ -size +1M

    これは、ホームディレクトリ内の 1MB より大きいファイルを一覧表示します。

  4. また、find を使って、特定の期間内に変更されたファイルを検索することもできます。ホームディレクトリ内の過去 24 時間以内に変更されたファイルを検索しましょう:

    find ~ -mtime -1
  5. 最後に、which コマンドを使って実行可能ファイルの場所を検索しましょう:

    which python

    出力は以下のようになるはずです:

    /usr/bin/python

    この出力が表示されない場合は、次のコマンドを試してください:

    which python3

これらのコマンドを使えば、Linux システム内のファイルを簡単に見つけることができます。find コマンドは非常に強力で、組み合わせることができるオプションがたくさんあり、さまざまな基準に基づいてファイルを検索するための多用途なツールです。

まとめ

おめでとうございます!あなたはLinuxのファイルとディレクトリ操作入門の実験を完了しました。学んだことを振り返りましょう:

  1. /home/etc/bin などの重要なディレクトリの目的を理解しながら、Linuxのディレクトリ構造を探りました。
  2. 絶対パスと相対パスについて学び、cd などのコマンドや ~.. などのショートカットを使って効率的にファイルシステムをナビゲートする方法を学びました。
  3. ファイルとディレクトリを作成する練習をし、mkdirtouchecho などのコマンドを使ってファイルに内容を追加する方法を学びました。
  4. cpmv を使ってファイルとディレクトリをコピー、移動、名前変更するなど、ファイル操作をマスターしました。
  5. catheadtail を使ってファイル内容を表示するさまざまな方法と、nano テキストエディタを使ってファイルを編集する方法を学びました。
  6. 最後に、findwhich などのコマンドを使って強力なファイル検索技術を探り、Linuxシステム全体でファイルと実行可能ファイルを迅速に見つけることができるようになりました。

これらのスキルは、Linuxを使った作業の基礎を形成しています。Linuxの旅を続けるにつれて、これらの基本を基にして、より複雑な操作やシステム管理タスクを行うようになります。

これらのスキルをマスターするキーは練習です。Linux環境でこれらのコマンドを試してみることを恐れないでください。独自のディレクトリ構造を作成し、ファイルを移動させ、ファイル内容を編集し、さまざまな基準でファイルを検索するなどを試してみてください。練習すればするほど、Linuxコマンドラインに慣れるようになります。

これらのファイル管理と検索技術を身につけることで、Linuxファイルシステムを効率的にナビゲートして操作する準備ができています。さらに探求し、楽しく学びましょう!