基本的なファイル操作

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

はじめに

Linuxの基本的なファイル操作の実験へようこそ!Linuxでは、ほぼすべてのものが「ファイル」として扱われるため、ファイル操作はシステムを利用する上で最も重要な基礎となります。この実験では、ファイルやディレクトリを管理するための最も一般的なコマンドを学び、Linuxシステムの操作や整理に習熟することを目指します。

作業環境の理解

Linuxでは、各ユーザーに通常「ホームディレクトリ」があり、~ で表されます。ただし、この実験環境では、デフォルトの作業ディレクトリである /home/labex/project から開始します。

まず、デスクトップ上のターミナルを開くか、実験環境のターミナルタブに切り替えてください。

ターミナルインターフェースのスクリーンショット

まずは現在の場所を確認することから始めましょう。

pwd

pwd は "print working directory" の略です。ファイルシステム内での現在の場所を表示します。このコマンドは、Linuxのファイル構造の中で自分がどこにいるかを把握するために不可欠です。出力として /home/labex/project が表示されるはずです。

次に、カレントディレクトリとホームディレクトリの関係を確認してみましょう。

echo ~

注意: キーボードレイアウトの違いにより、デスクトップターミナルで ~ 記号が入力できない場合は、VMインターフェースの左上にある独立したターミナルタブに切り替えてみてください。

このコマンドは、ホームディレクトリへのパス(通常は /home/labex)を表示します。

現在のディレクトリの内容を確認するには、以下のコマンドを使用します。

ls

これにより、現在の作業ディレクトリ(/home/labex/project)内のファイルとディレクトリが一覧表示されます。

ホームディレクトリの内容も確認してみましょう。

ls ~

このコマンドはホームディレクトリの内容をリスト表示します。現在の作業ディレクトリとは内容が異なる場合があります。

現在の作業ディレクトリとホームディレクトリの違いを理解することは、Linuxファイルシステムを効率的に操作するために重要です。

ファイルシステムのナビゲーション

Linuxは「階層型ファイルシステム」を使用しています。大きな木と枝のようなものを想像してください。幹にあたる部分は「ルートディレクトリ」と呼ばれ、単一のスラッシュ / で表されます。他のすべてのディレクトリやファイルは、このルートから枝分かれしています。

このツリー構造の中を移動する方法を探ってみましょう。

  1. 現在の場所を確認します:
pwd

/home/labex/project と表示されるはずです。もし異なる場合は、cd /home/labex/project を実行して開始地点に戻ってください。

  1. 現在のディレクトリの内容を表示します:
ls

現在の場所にあるすべてのファイルとフォルダがリストされます。/home/labex/project は空なので、何も表示されません。

  1. 親ディレクトリへ1つ上の階層に移動します:
cd ..

.. は「1つ上のディレクトリ」を意味します。このコマンドの後、再度 pwd を実行してください。現在は /home/labex にいるはずです。

  1. プロジェクトディレクトリに戻ります:
cd project

これで /home/labex/project に戻ります。

  1. ホームディレクトリに移動します:
cd ~

~ はホームディレクトリへのショートカットです。pwd を実行して /home/labex にいることを確認してください。

  1. 絶対パスを使用してプロジェクトディレクトリに戻ります:
cd /home/labex/project

これは「絶対パス」と呼ばれます。ルート (/) から始まり、完全な場所を指定するためです。

ファイルの作成とディレクトリ内容の表示

ナビゲーション方法がわかったところで、ファイルを作成し、ディレクトリの内容を表示する方法を探ってみましょう。

まず、/home/labex/project ディレクトリにいることを確認してください。

cd /home/labex/project
  1. いくつかのファイルを作成します:
touch file1.txt

touch コマンドは空のファイルを作成するために使用されます。ファイルが既に存在する場合は、内容を変更せずにタイムスタンプを更新します。新しい空のファイルを作成する簡単な方法です。

echo "Hello, Linux" > file2.txt

このコマンドは2つのことを行います:

  • echo はテキストを出力するコマンドです。
  • > 記号は echo の出力を file2.txt という名前のファイルにリダイレクト(書き込み)します。ファイルが存在しない場合は作成され、存在する場合は内容が上書きされます。
echo "Hidden file" > .hiddenfile

これは隠しファイルを作成します。Linuxでは、ドット (.) で始まるファイルやディレクトリ名は隠しファイルとみなされます。

  1. 次に、ディレクトリを作成します:
mkdir testdir

mkdir コマンド("make directory" の略)は、testdir という名前の新しいディレクトリを作成します。

  1. 基本的なリスト表示:
ls

ディレクトリ内容のリスト表示出力

現在のディレクトリの内容が表示されます。file1.txtfile2.txttestdir が確認できるはずです。

  1. 詳細なリスト表示:
ls -l

-l オプション(数字の1ではなく、小文字のL)は「ロング」形式のリストを提供します。ファイルの権限、所有者、サイズ、更新日時などの詳細情報が表示されます。

  1. 隠しファイルを表示する:
ls -a

これにより、作成した .hiddenfile を含むすべてのファイルが表示されます。

  1. オプションの組み合わせ:
ls -la

これはロング形式 (-l) とすべてのファイル表示 (-a) を組み合わせたものです。

  1. 特定のディレクトリの内容をリスト表示する:
ls -l testdir

testdir ディレクトリの内容をリスト表示します(現時点では空のはずです)。

このステップのリスト表示コマンドは、実践的な練習と視覚的な確認のためのものです。進捗状況は、必要なファイルやディレクトリが正しく作成されているかによって評価されます。

ファイルとディレクトリのコピー

操作対象のファイルができたので、それらをコピーする方法を学びましょう。

  1. ファイルをコピーする:
cp file1.txt file1_copy.txt

これにより、file1.txt のコピーである file1_copy.txt が現在のディレクトリに作成されます。

コピーを確認します:

ls
  1. ファイルを別のディレクトリにコピーする:
cp file2.txt testdir/

これにより、file2.txttestdir ディレクトリ内にコピーされます。

  1. ディレクトリをコピーする:
cp -r testdir testdir_copy

-r オプションは「再帰的 (recursive)」を意味します。ディレクトリをコピーする際は、その中のすべての内容をコピーするために必要です。

  1. コピーを確認します:
ls
ls testdir
ls testdir_copy

コピーされたファイルを表示するターミナル

ファイルとディレクトリの移動と名前変更

Linuxでは、mv コマンドを使用して移動と名前変更の両方を行います。

  1. ファイルの名前を変更する:
mv file1.txt newname.txt

これにより、file1.txtnewname.txt に名前変更されます。

  1. ファイルをディレクトリに移動する:
mv newname.txt testdir/

これにより、newname.txttestdir ディレクトリ内に移動します。

  1. ディレクトリの名前を変更する:
mv testdir_copy new_testdir

これにより、testdir_copynew_testdir に名前変更されます。

  1. 移動と名前変更を一度に行う:
mv testdir/newname.txt ./original_file1.txt

これにより、newname.txttestdir から取り出され、現在のディレクトリで original_file1.txt という名前に変更されます。

  1. 変更を確認します:
ls
ls testdir

コマンド実行結果の表示

ファイルとディレクトリの削除

ファイルやディレクトリの削除は強力な操作です。グラフィカルインターフェースとは異なり、コマンドラインには「ごみ箱」がないことが多く、rm で削除したものは通常、元に戻せません。実行前に必ずコマンドを再確認してください!

作成したファイルとディレクトリを整理しましょう。/home/labex/project ディレクトリにいることを確認してください。

pwd
ls -a

original_file1.txt.hiddenfilefile2.txt などのファイルや、testdirnew_testdir などのディレクトリが見えるはずです。

.
..
.hiddenfile
file1_copy.txt
file2.txt
new_testdir
original_file1.txt
testdir
  1. 単一のファイルを削除する:

    rm original_file1.txt
    

    rm コマンド("remove" の略)はファイルを削除します。確認してみましょう:

    ls
    

    original_file1.txt が消えているはずです。

  2. 対話的に削除する(より安全):

    file2.txt を削除してみましょう。今回は対話フラグ -i を使用します:

    rm -i file2.txt
    

    -i オプションは、各ファイルを削除する前に確認を求めます。y(yes)を入力してEnterキーを押すと削除が確定します。n や他のキーを入力すると削除されません。

    ls
    

    確認すれば、file2.txt は削除されています。

  3. 空ではないディレクトリで何が起こるか確認する:

    testdir_copy を名前変更して作成した new_testdir を覚えていますか?中にはコピーされた file2.txt が残っているため、rmdir は失敗します。まず内容を確認します:

    ls new_testdir
    

    file2.txt が見えるはずです。ここで rmdir を試します:

    rmdir new_testdir
    

    rmdir(remove directory)は 空の ディレクトリに対してのみ機能します。

    ls
    

    new_testdir は空ではないため削除できず、リストに表示されたままになります。

  4. 空ではないディレクトリを削除しようとする:

    次に、まだ file2.txt が入っている testdir に対して rmdir を試します:

    ls testdir
    rmdir testdir
    

    rmdir: failed to remove 'testdir': Directory not empty のようなエラーメッセージが表示されるはずです。これは想定通りです。rmdir はファイルや他のディレクトリを含むディレクトリを削除できないからです。

  5. ディレクトリとその内容を削除する(再帰的):

    空ではないディレクトリを削除するには、rm-r(再帰的)オプションを付けて使用する必要があります:

    rm -r testdir
    

    このコマンドは testdir ディレクトリとその中のすべてを削除します。このコマンドは慎重に使用してください。

    ls
    

    testdir は削除されているはずです。

  6. 強制削除(極めて慎重に使用すること):

    書き込み保護されているファイルであっても、確認なしで削除したい場合があります(今回は該当しませんが)。その場合は -f(force)オプションを使用します。

    隠しファイルを削除してみましょう:

    rm .hiddenfile
    ls -a
    

    次に、-r-f を組み合わせます。rm -rf コマンドは非常に強力で危険です。ディレクトリを再帰的に (-r) 削除し、確認なしで強制的に (-f) 削除します。

    !!! 危険領域 !!! rm -rf を実行する前に、何を削除しようとしているのかを 完全に確信 してください。小さなタイプミスで重要なシステムファイルや個人データが削除される可能性があります。元に戻すことはできません。例えば、rm -rf / はシステム全体を削除しようとします(権限がある場合)。常にパスを再確認してください。

    デモンストレーション用に一時的なディレクトリとファイルを作成します(安全に):

    mkdir temp_dir
    touch temp_dir/temp_file.txt
    ls -R temp_dir
    

    注意: ls-R(大文字)を使用しました。cprm で使用した -r(小文字)とは異なります。これは単なる大文字小文字の違いではなく、全く別のオプションです!ls の場合、-R は「再帰的なリスト表示」を意味し、-r は「逆順ソート」を意味します。cprm の場合、再帰オプションは -r(小文字)です。各コマンドの特定のオプションを理解するために、常にマニュアル (man command) を確認してください。

    それでは、強制的に削除します:

    rm -rf temp_dir
    

    削除を確認します:

    ls
    

    temp_dir は消えているはずです。

覚えておいてください:Linuxのコマンドラインでは、削除されたファイルは通常永久に失われます。rm は慎重に使用しましょう!

まとめ

おめでとうございます!Linuxにおける基本的なファイル操作を習得しました:

  • cdpwd を使用したファイルシステムのナビゲーション
  • touchmkdir を使用したファイルとディレクトリの作成
  • ls とそのオプションを使用した内容のリスト表示
  • cp を使用したファイルとディレクトリのコピー
  • mv を使用した移動と名前変更
  • rmrmdir を使用したファイルとディレクトリの削除

これらのコマンドは、Linuxにおけるファイル管理の基礎となります。練習を重ねることで、コマンドラインからファイルやディレクトリを効率的に管理できるようになるでしょう。

特に rm は、ファイルを永久に削除し、復元ができないため、これらのコマンドは慎重に使用することを忘れないでください。

Linuxの学習を続ける中で、各コマンドやそのオプションについて詳しく知るためにマニュアルページ(例: man ls)を活用してください。探索を楽しんでください!