はじめに
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は「階層型ファイルシステム」を使用しています。大きな木と枝のようなものを想像してください。幹にあたる部分は「ルートディレクトリ」と呼ばれ、単一のスラッシュ / で表されます。他のすべてのディレクトリやファイルは、このルートから枝分かれしています。
このツリー構造の中を移動する方法を探ってみましょう。
- 現在の場所を確認します:
pwd
/home/labex/project と表示されるはずです。もし異なる場合は、cd /home/labex/project を実行して開始地点に戻ってください。
- 現在のディレクトリの内容を表示します:
ls
現在の場所にあるすべてのファイルとフォルダがリストされます。/home/labex/project は空なので、何も表示されません。
- 親ディレクトリへ1つ上の階層に移動します:
cd ..
.. は「1つ上のディレクトリ」を意味します。このコマンドの後、再度 pwd を実行してください。現在は /home/labex にいるはずです。
- プロジェクトディレクトリに戻ります:
cd project
これで /home/labex/project に戻ります。
- ホームディレクトリに移動します:
cd ~
~ はホームディレクトリへのショートカットです。pwd を実行して /home/labex にいることを確認してください。
- 絶対パスを使用してプロジェクトディレクトリに戻ります:
cd /home/labex/project
これは「絶対パス」と呼ばれます。ルート (/) から始まり、完全な場所を指定するためです。
ファイルの作成とディレクトリ内容の表示
ナビゲーション方法がわかったところで、ファイルを作成し、ディレクトリの内容を表示する方法を探ってみましょう。
まず、/home/labex/project ディレクトリにいることを確認してください。
cd /home/labex/project
- いくつかのファイルを作成します:
touch file1.txt
touch コマンドは空のファイルを作成するために使用されます。ファイルが既に存在する場合は、内容を変更せずにタイムスタンプを更新します。新しい空のファイルを作成する簡単な方法です。
echo "Hello, Linux" > file2.txt
このコマンドは2つのことを行います:
echoはテキストを出力するコマンドです。>記号はechoの出力をfile2.txtという名前のファイルにリダイレクト(書き込み)します。ファイルが存在しない場合は作成され、存在する場合は内容が上書きされます。
echo "Hidden file" > .hiddenfile
これは隠しファイルを作成します。Linuxでは、ドット (.) で始まるファイルやディレクトリ名は隠しファイルとみなされます。
- 次に、ディレクトリを作成します:
mkdir testdir
mkdir コマンド("make directory" の略)は、testdir という名前の新しいディレクトリを作成します。
- 基本的なリスト表示:
ls

現在のディレクトリの内容が表示されます。file1.txt、file2.txt、testdir が確認できるはずです。
- 詳細なリスト表示:
ls -l
-l オプション(数字の1ではなく、小文字のL)は「ロング」形式のリストを提供します。ファイルの権限、所有者、サイズ、更新日時などの詳細情報が表示されます。
- 隠しファイルを表示する:
ls -a
これにより、作成した .hiddenfile を含むすべてのファイルが表示されます。
- オプションの組み合わせ:
ls -la
これはロング形式 (-l) とすべてのファイル表示 (-a) を組み合わせたものです。
- 特定のディレクトリの内容をリスト表示する:
ls -l testdir
testdir ディレクトリの内容をリスト表示します(現時点では空のはずです)。
このステップのリスト表示コマンドは、実践的な練習と視覚的な確認のためのものです。進捗状況は、必要なファイルやディレクトリが正しく作成されているかによって評価されます。
ファイルとディレクトリのコピー
操作対象のファイルができたので、それらをコピーする方法を学びましょう。
- ファイルをコピーする:
cp file1.txt file1_copy.txt
これにより、file1.txt のコピーである file1_copy.txt が現在のディレクトリに作成されます。
コピーを確認します:
ls
- ファイルを別のディレクトリにコピーする:
cp file2.txt testdir/
これにより、file2.txt が testdir ディレクトリ内にコピーされます。
- ディレクトリをコピーする:
cp -r testdir testdir_copy
-r オプションは「再帰的 (recursive)」を意味します。ディレクトリをコピーする際は、その中のすべての内容をコピーするために必要です。
- コピーを確認します:
ls
ls testdir
ls testdir_copy

ファイルとディレクトリの移動と名前変更
Linuxでは、mv コマンドを使用して移動と名前変更の両方を行います。
- ファイルの名前を変更する:
mv file1.txt newname.txt
これにより、file1.txt が newname.txt に名前変更されます。
- ファイルをディレクトリに移動する:
mv newname.txt testdir/
これにより、newname.txt が testdir ディレクトリ内に移動します。
- ディレクトリの名前を変更する:
mv testdir_copy new_testdir
これにより、testdir_copy が new_testdir に名前変更されます。
- 移動と名前変更を一度に行う:
mv testdir/newname.txt ./original_file1.txt
これにより、newname.txt が testdir から取り出され、現在のディレクトリで original_file1.txt という名前に変更されます。
- 変更を確認します:
ls
ls testdir

ファイルとディレクトリの削除
ファイルやディレクトリの削除は強力な操作です。グラフィカルインターフェースとは異なり、コマンドラインには「ごみ箱」がないことが多く、rm で削除したものは通常、元に戻せません。実行前に必ずコマンドを再確認してください!
作成したファイルとディレクトリを整理しましょう。/home/labex/project ディレクトリにいることを確認してください。
pwd
ls -a
original_file1.txt、.hiddenfile、file2.txt などのファイルや、testdir、new_testdir などのディレクトリが見えるはずです。
.
..
.hiddenfile
file1_copy.txt
file2.txt
new_testdir
original_file1.txt
testdir
単一のファイルを削除する:
rm original_file1.txtrmコマンド("remove" の略)はファイルを削除します。確認してみましょう:lsoriginal_file1.txtが消えているはずです。対話的に削除する(より安全):
file2.txtを削除してみましょう。今回は対話フラグ-iを使用します:rm -i file2.txt-iオプションは、各ファイルを削除する前に確認を求めます。y(yes)を入力してEnterキーを押すと削除が確定します。nや他のキーを入力すると削除されません。ls確認すれば、
file2.txtは削除されています。空ではないディレクトリで何が起こるか確認する:
testdir_copyを名前変更して作成したnew_testdirを覚えていますか?中にはコピーされたfile2.txtが残っているため、rmdirは失敗します。まず内容を確認します:ls new_testdirfile2.txtが見えるはずです。ここでrmdirを試します:rmdir new_testdirrmdir(remove directory)は 空の ディレクトリに対してのみ機能します。lsnew_testdirは空ではないため削除できず、リストに表示されたままになります。空ではないディレクトリを削除しようとする:
次に、まだ
file2.txtが入っているtestdirに対してrmdirを試します:ls testdir rmdir testdirrmdir: failed to remove 'testdir': Directory not emptyのようなエラーメッセージが表示されるはずです。これは想定通りです。rmdirはファイルや他のディレクトリを含むディレクトリを削除できないからです。ディレクトリとその内容を削除する(再帰的):
空ではないディレクトリを削除するには、
rmに-r(再帰的)オプションを付けて使用する必要があります:rm -r testdirこのコマンドは
testdirディレクトリとその中のすべてを削除します。このコマンドは慎重に使用してください。lstestdirは削除されているはずです。強制削除(極めて慎重に使用すること):
書き込み保護されているファイルであっても、確認なしで削除したい場合があります(今回は該当しませんが)。その場合は
-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(大文字)を使用しました。cpやrmで使用した-r(小文字)とは異なります。これは単なる大文字小文字の違いではなく、全く別のオプションです!lsの場合、-Rは「再帰的なリスト表示」を意味し、-rは「逆順ソート」を意味します。cpやrmの場合、再帰オプションは-r(小文字)です。各コマンドの特定のオプションを理解するために、常にマニュアル (man command) を確認してください。それでは、強制的に削除します:
rm -rf temp_dir削除を確認します:
lstemp_dirは消えているはずです。
覚えておいてください:Linuxのコマンドラインでは、削除されたファイルは通常永久に失われます。rm は慎重に使用しましょう!
まとめ
おめでとうございます!Linuxにおける基本的なファイル操作を習得しました:
cdとpwdを使用したファイルシステムのナビゲーションtouchとmkdirを使用したファイルとディレクトリの作成lsとそのオプションを使用した内容のリスト表示cpを使用したファイルとディレクトリのコピーmvを使用した移動と名前変更rmとrmdirを使用したファイルとディレクトリの削除
これらのコマンドは、Linuxにおけるファイル管理の基礎となります。練習を重ねることで、コマンドラインからファイルやディレクトリを効率的に管理できるようになるでしょう。
特に rm は、ファイルを永久に削除し、復元ができないため、これらのコマンドは慎重に使用することを忘れないでください。
Linuxの学習を続ける中で、各コマンドやそのオプションについて詳しく知るためにマニュアルページ(例: man ls)を活用してください。探索を楽しんでください!



