はじめに
この実験では、サイバーセキュリティやペネトレーションテスト(侵入テスト)で広く利用されている強力なオペレーティングシステム、Kali Linux におけるファイル操作とナビゲーションの基礎を学びます。ハンズオン形式の演習を通じて、pwd、ls、cd、touch、nano、cp、rm、cat といった必須の Linux コマンドに慣れ親しんでいただきます。この実験は、Linux 環境でのファイルやディレクトリ操作の強固な基礎を築けるよう、ステップバイステップのガイドを提供します。すべての作業は、自動的にセットアップされた Kali Linux の Docker コンテナ内で行われます。ターミナルを開くと、直接コンテナのシェルに接続され、すぐに練習を開始できる状態になります。
Kali Linux コンテナでの準備
最初のステップでは、すべての演習を行う Kali Linux コンテナ環境について確認します。このコンテナは LabEx の仮想マシン(VM)内に自動的に構築されています。ターミナルを開くと、自動的に Kali Linux コンテナのシェルに接続されるため、手動で起動したり接続したりする必要はありません。
初心者の方向けに基本概念を説明します。Kali Linux は、サイバーセキュリティ業務に特化した Linux ディストリビューションであり、ペネトレーションテスト用のツールが多数搭載されています。これを Docker コンテナで実行することで、ホストシステムに影響を与えることなく、隔離された軽量な環境で学習を進めることができます。使用するターミナルは、コマンドを通じてこの環境とやり取りするための入り口となります。
以下の手順に従って、正しい環境にいることを確認してください。
- LabEx VM 環境でターミナルを開きます。Xfce デスクトップ上のターミナルアイコンをクリックするか、LabEx インターフェースに用意されているターミナルを使用してください。開くと、Kali Linux コンテナのシェルに入ったことを示すウェルカムメッセージが表示されます。プロンプトには
root@xxxxxxxxxxxx:/#と表示され、コンテナ内に root ユーザーとしてログインしていることがわかります。

次のコマンドを入力して Enter キーを押し、ファイルシステム内での現在の場所を確認します。
pwd出力結果は以下のようになります。
/これは、あなたが「ルートディレクトリ」にいることを意味します。ルートディレクトリは、Linux のファイルシステム階層における最上位のレベルです。
pwdコマンドは "print working directory"(作業ディレクトリを表示する)の略で、現在の場所を確認するために使用されます。以降のすべてのステップは、この Kali Linux コンテナのシェル内で実行してください。誤って
exitと入力したりCtrl+Dを押したりして終了してしまった場合は、再度 LabEx VM のターミナルを開き直せば、自動的にコンテナに再接続されます。
これで、Kali Linux コンテナ内での開始地点を確認できました。次のステップでは、現在のディレクトリの中身を調べてみましょう。
ls によるディレクトリ内容の確認
このステップでは、Kali Linux コンテナ内で ls コマンドを使用して、ディレクトリの内容を表示する方法を学びます。このコマンドは、操作を行う前に現在の場所にどのようなファイルやフォルダがあるかを把握するために不可欠です。
初心者向けの重要な概念を解説します。Linux では、ファイルシステムはディレクトリ(フォルダ)の中にファイルや他のディレクトリが含まれる「ツリー構造」になっています。ls コマンドはディレクトリの中身をリスト表示し、何が利用可能かを確認するのに役立ちます。また、ls にオプションを付けることで、リストの詳細情報を取得することもできます。
すでに Kali Linux コンテナのシェルにいますので、以下の手順でルートディレクトリを探索してみましょう。
次のコマンドを入力して Enter キーを押し、現在のディレクトリ(ルートディレクトリ
/)の内容を表示します。ls出力は以下のようになります。
bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin srv sys tmp usr varこれらは Linux システムにおける標準的なディレクトリです。例えば、
binには実行ファイルが、etcには設定ファイルが格納されています。これらのディレクトリの詳細情報を確認するには、
lsコマンドに-lオプションを付けて「ロングフォーマット」で表示します。次のコマンドを入力して Enter キーを押してください。ls -l出力には、権限(パーミッション)、所有者、サイズ、更新日時などの追加情報が表示されます。
total 72 drwxr-xr-x 2 root root 4096 Oct 10 10:00 bin drwxr-xr-x 2 root root 4096 Oct 10 10:00 boot drwxr-xr-x 13 root root 4096 Oct 10 10:00 dev drwxr-xr-x 85 root root 4096 Oct 10 10:00 etc ...-lオプションを使うことで、ディレクトリ内の各項目の属性を理解するのに役立ちます。次のステップに進むため、コンテナのシェルにとどまってください。ターミナルを終了しないでください。
ls コマンドを使ってルートディレクトリの内容を確認することができました。次のステップでは、ディレクトリ間を移動する方法を学びます。
cd によるディレクトリの移動
このステップでは、cd コマンドを使用して Kali Linux コンテナ内のディレクトリ間を移動する方法を学びます。cd は "change directory"(ディレクトリを変更する)の略で、ファイルシステム内を移動して異なる場所にアクセスするための、Linux 操作における極めて重要なスキルです。
初心者のための基本概念を説明します。Linux のファイルシステムは、最上部のルートディレクトリ / から枝分かれした木のような構造をしています。cd を使って移動することで、特定のファイルやツールが保存されている場所にアクセスできます。/home のようなフルパス(絶対パス)を指定することも、.. というショートカットを使って一つ上の親ディレクトリに移動することもできます。
Kali Linux コンテナのシェルで、以下の手順に従って移動の練習をしましょう。
次のコマンドを入力して Enter キーを押し、現在の場所を確認します。
pwd出力は以下の通りです。
/ルートディレクトリにいることが確認できました。
次のコマンドを入力して Enter キーを押し、
/homeディレクトリに移動します。cd /homecdコマンドにより、現在の作業ディレクトリが指定したパス(この場合は/home)に変更されます。次のコマンドを入力して Enter キーを押し、新しい場所を確認します。
pwd出力は以下の通りです。
/home/homeディレクトリの内容をリスト表示して、何があるか確認してみましょう。lsコンテナは最小限の構成で起動しているため、出力は空か、ごくわずかな内容が表示されるはずです。
..ショートカットを使用して、ルートディレクトリに戻ります。次のコマンドを入力して Enter キーを押してください。cd ..これにより、現在の場所から一つ上の階層である親ディレクトリ(ここでは
/)に移動します。再度、場所を確認します。
pwd出力は以下の通りです。
/次のステップに進むため、コンテナのシェルにとどまってください。ターミナルを終了しないでください。
cd コマンドを使ったディレクトリの移動方法を習得しました。次のステップでは、ファイル管理の練習のために、作業用ディレクトリとファイルを作成します。
mkdir、touch、nano によるファイルとディレクトリの作成・編集
このステップでは、Kali Linux コンテナ内で mkdir、touch、nano コマンドを使用して、ディレクトリやファイルを作成し、テキストファイルを編集する方法を学びます。これらは Linux でデータを整理・管理するための必須スキルです。
基本的な概念を説明します。ディレクトリは、ファイルや他のディレクトリを保管するための「フォルダ」のようなもので、mkdir (make directory) で作成します。touch コマンドは空のファイルを作成し、一時的なファイル作成などに便利です。nano コマンドはターミナル内で動作するシンプルなテキストエディタを開き、ファイルの内容を追加・修正できます。
以下の手順に従って、Kali Linux コンテナ内にディレクトリとファイルを作成してみましょう。
現在の場所を確認します。
pwd出力は以下の通りです。
/もしルートディレクトリにいない場合は、
cd /で移動してください。ファイルを整理するために、ルートディレクトリに
myprojectという名前の新しいディレクトリを作成します。mkdir /myprojectコマンドが正常に実行された場合、出力は表示されません。これで
/myprojectというパスにディレクトリが作成されました。myprojectディレクトリに移動します。cd /myproject場所を確認します。
pwd出力は以下の通りです。
/myprojecttouchコマンドを使用して、myprojectディレクトリ内にnotes.txtという名前の空のテキストファイルを作成します。touch notes.txt成功すれば出力は表示されません。
/myproject/notes.txtという空ファイルが作成されました。ディレクトリの内容をリスト表示して、ファイルが作成されたか確認します。
ls出力に以下が表示されるはずです。
notes.txtこの最小限の Kali Linux コンテナには
nanoがプリインストールされていない可能性があるため、まずインストールします。以下のコマンドを入力してパッケージリストを更新し、nanoをインストールしてください。各コマンドの後に Enter キーを押します。apt update apt install -y nano最初のコマンド
apt updateはパッケージリストを最新の状態にし、2 番目のコマンドapt install -y nanoは確認メッセージを表示せずにnanoエディタをインストールします。インストールには少し時間がかかり、進行状況がターミナルに表示されます。nanoエディタを使用してnotes.txtに内容を追加します。nano notes.txtnanoが開くと、画面下部にメニューが表示された空白の画面になります。以下のテキストを入力してください。Learning file management in Kali Linux.必要に応じて矢印キーでカーソルを移動できます。
変更を保存して
nanoを終了するには、以下の操作を行います。Ctrl + Oを押して変更を書き込み(WriteOut)、Enter キーを押してファイル名を確定します。Ctrl + Xを押してエディタを終了します。ターミナル画面に戻ります。
次のステップに進むため、コンテナのシェルにとどまってください。ターミナルを終了しないでください。
mkdir、touch、nano を使って、ディレクトリとファイルの作成、および内容の編集に成功しました。次のステップでは、ファイルのコピーと削除について学びます。
cp と rm によるファイルのコピーと削除
このステップでは、Kali Linux コンテナ内で cp と rm コマンドを使用して、ファイルをコピーおよび削除する方法を学びます。これらの操作は、バックアップの作成や不要なデータの整理など、ファイル管理において非常に重要です。
初心者向けに概念を説明します。cp コマンドは "copy" の略で、ファイルやディレクトリを別の場所へ、あるいは別の名前で複製します。rm コマンドは "remove" の略で、ファイルやディレクトリを削除します。Linux では rm で削除したものは「ゴミ箱」に入らず、簡単に復元できないため、使用する際は十分に注意してください。
Kali Linux コンテナのシェルで、/myproject ディレクトリを使用して練習しましょう。
現在の場所を確認します。
pwd出力は以下の通りです。
/myprojectもし
/myprojectにいない場合は、以下で移動してください。cd /myprojectnotes.txtが存在することを確認します。ls出力に以下が表示されるはずです。
notes.txtcpコマンドを使用して、同じディレクトリ内にnotes.txtのコピーをnotes_backup.txtという名前で作成します。cp notes.txt notes_backup.txt成功すれば出力は表示されません。これで
/myproject内にnotes.txtの複製であるnotes_backup.txtが作成されました。コピーが作成されたか確認します。
ls出力は以下のようになります。
notes.txt notes_backup.txtrmコマンドを使用して、コピーしたファイルnotes_backup.txtを削除します。rm notes_backup.txt成功すれば出力は表示されません。これにより
/myprojectからnotes_backup.txtが削除されました。再度リストを表示して、ファイルが削除されたか確認します。
ls出力は以下の通りです。
notes.txt最後のステップに進むため、コンテナのシェルにとどまってください。ターミナルを終了しないでください。
cp と rm を使ったファイルのコピーと削除方法を学びました。最後のステップでは、エディタを開かずにファイルの内容を確認する方法を学びます。
cat によるファイル内容の表示
最後のステップでは、Kali Linux コンテナ内で cat コマンドを使用して、ファイルの内容を表示する方法を学びます。これは、エディタを開かずにターミナル上で素早くファイルの中身を確認する手法です。
初心者向けに解説します。cat コマンドは "concatenate"(連結する)の略で、ファイルの内容をターミナルに一括表示するために使われます。nano のような編集可能なエディタとは異なり、cat は読み取り専用の表示を行うため、小さなファイルやスクリプトの内容をサッと確認するのに最適です。
Kali Linux コンテナのシェルで、/myproject 内のファイルの内容を確認しましょう。
現在の場所を確認します。
pwd出力は以下の通りです。
/myprojectもし
/myprojectにいない場合は、以下で移動してください。cd /myprojectnotes.txtが存在することを確認します。ls出力に以下が表示されるはずです。
notes.txtcatコマンドを使用してnotes.txtの内容を表示します。cat notes.txtファイルの内容が以下のように表示されます。
Learning file management in Kali Linux.もしファイルが空だったり存在しなかったりする場合は、何も表示されないかエラーメッセージが表示されます。
このままコンテナのシェルでさらに探索を続けることができます。LabEx VM のターミナルに戻りたい場合は、
exitと入力するかCtrl+Dを押してください。ターミナルを再度開けば、いつでも自動的にコンテナに再接続されます。
cat を使ってファイルの内容を表示する方法を学び、この実験の基本的なファイル・ディレクトリ管理タスクをすべて完了しました。
まとめ
この実験では、Docker コンテナ内の Kali Linux でファイル操作とナビゲーションの基本スキルを習得しました。まず、ターミナルから自動的にアクセスできるコンテナ環境に慣れることから始めました。次に、現在地を確認する pwd、ディレクトリの内容をリスト表示する ls、ディレクトリ間を移動する cd といった必須コマンドを学びました。さらに、mkdir と touch によるディレクトリとファイルの作成、nano による内容の編集、cp と rm によるコピーと削除、そして cat によるファイル内容の表示を実践しました。これらのスキルは、Linux 環境における操作の強固な土台となり、Kali Linux を使用したサイバーセキュリティ業務において極めて重要です。


