はじめに
Linux でファイルを操作する実践的な実験へようこそ。Linux が初めてでも心配ありません。各ステップを順番に説明します。この実験では、ファイルの内容全体を表示する方法、ファイルの一部を確認する方法、ファイルを比較する方法を学びます。これらは、Linux のファイルシステムを操作し、理解するための基本的なスキルです。
ファイルの内容を表示する
まず、Desktop でターミナルを開くか、実験環境のターミナルタブに切り替えてください。

ターミナルを開くと、通常は末尾が $ になっているコマンドプロンプトが表示されます。ここにコマンドを入力します。
まず、cat コマンドを使ってファイルの内容を表示します。
- ターミナルで次のコマンドを入力し、Enter キーを押します。
cat /tmp/hello
ここで、/tmp/hello は表示するファイルのパスです。/tmp はシステム上のディレクトリ(フォルダー)で、hello はそのディレクトリ内にあるファイル名です。
- Enter キーを押すと、ファイルの内容が表示されます。
Hi,
I am Labby!
これは /tmp/hello ファイルに含まれているすべての内容です。cat コマンドによって、ファイルの内容がターミナルに表示されました。
行番号付きでファイルの内容を表示する
次は、cat コマンドの出力に行番号を付けて表示します。
- ターミナルで次のコマンドを入力し、Enter キーを押します。
cat -n /tmp/hello
ここでの -n はオプションまたはフラグと呼ばれます。cat に対して、出力するすべての行に行番号を付けるよう指示します。
- ファイルの内容が行番号付きで表示されます。
1 Hi,
2 I am Labby!
長いファイルを扱うときや、特定の行を参照するときに便利です。
ファイルの先頭行を表示する
次に、head コマンドを使います。名前が示すとおり、head はファイルの先頭部分、つまり「ヘッド」を表示するコマンドです。
- ターミナルで次のコマンドを入力し、Enter キーを押します。
head -n1 /tmp/hello
ここで、-n1 は最初の 1 行だけを表示するよう head に指示するオプションです。1 を別の数字に変更すると、その数字の行数を表示できます。
- 次のような出力が表示されます。
Hi,
これはファイルの最初の行だけです。-n1 オプションを指定しない場合、head はデフォルトでファイルの先頭 10 行を表示します。
ファイルの先頭の数バイトを表示する
今度は、head コマンドを使って、ファイルの先頭から指定したバイト数を表示します。
- ターミナルで次のコマンドを入力し、Enter キーを押します。
head -c1 /tmp/hello
-c1 オプションは、ファイルの最初の 1 バイト(文字)だけを表示するよう head に指示します。-n と同じように、1 を別の数字に変更すると、その数のバイトを表示できます。
- 次のような出力が表示されます。
H
これはファイルの最初の文字だけです。テキストファイルでは、通常、1 文字が 1 バイトです。
ファイルの末尾行を表示する
次は、tail コマンドを使います。tail は head と反対に、ファイルの末尾を表示します。
- ターミナルで次のコマンドを入力し、Enter キーを押します。
tail -n1 /tmp/hello
head の場合と同様に、-n1 オプションは 1 行だけを表示するよう tail に指示します。ここでは、ファイルの最後の行が表示されます。
- 次のような出力が表示されます。
I am Labby!
これはファイルの最後の行です。-n1 オプションを指定しない場合、tail はデフォルトで最後の 10 行を表示します。
ファイルの末尾の数バイトを表示する
head で行った操作と同じように、tail を使ってファイルの末尾から指定したバイト数を表示できます。
- まず、最後の 1 バイトを表示してみます。ターミナルで次のコマンドを入力し、Enter キーを押します。
tail -c1 /tmp/hello
何も表示されない場合があります。これは、最後の文字が表示できない改行文字である可能性が高いためです。
- 次に、最後の 2 バイトを表示してみます。次のコマンドを入力し、Enter キーを押します。
tail -c2 /tmp/hello
- 次のように表示されます。
!
-c2 オプションは、ファイルの最後の 2 バイト(文字)を表示するよう tail に指示します。ここでは、ファイル内で最後に表示できる文字である感嘆符が表示されます。
ファイルを比較する
ここでは、diff コマンドを使って 2 つのファイルを比較し、相違点を確認します。
- まず、正しいディレクトリ(フォルダー)にいることを確認します。次のコマンドを入力し、Enter キーを押します。
cd ~/project
このコマンドで、現在のディレクトリをホームディレクトリ内の project フォルダーに変更します。~ はホームディレクトリを表す省略記号です。
- 次に、2 つのファイルを比較します。次のコマンドを入力し、Enter キーを押します。
diff file1 file2
このコマンドは、file1 と file2 の内容を比較します。
- 次のような出力が表示されます。
1c1
< this is file1
---
> this is file2
この出力の意味を確認しましょう。diff コマンドは、1 つ目のファイルを 2 つ目のファイルと同じ内容にするために必要な変更を示します。どちらのファイルが先に作成・変更されたかは関係ありません。diff は、コマンドを実行した時点の内容だけを比較します。
1c1:1 つ目のファイルの 1 行目を、2 つ目のファイルの 1 行目と一致するように change(変更)する必要があることを示します。< this is file1:<記号は、1 つ目のファイル(file1)の行であることを示します。---:file1とfile2の行を区切るセパレーターです。> this is file2:>記号は、2 つ目のファイル(file2)の行であることを示します。
簡単に言うと、diff は 2 つのファイルで 1 行目の内容が異なることを示しています。file1 を file2 と同じにするには、this is file1 という行を this is file2 に置き換える必要があります。
ディレクトリを比較する
最後に、diff コマンドを使ってディレクトリ全体を比較します。
- ターミナルで次のコマンドを入力し、Enter キーを押します。
diff -r ~/Desktop ~/Code
-r オプションは、サブディレクトリも再帰的に比較するよう diff に指示します。~/Desktop と ~/Code は、比較する 2 つのディレクトリのパスです。
- 次のような出力が表示されることがあります。
Only in /home/labex/Desktop: code.desktop
Only in /home/labex/Desktop: gedit.desktop
Only in /home/labex/Desktop: gvim.desktop
Only in /home/labex/Desktop: xfce4-terminal.desktop
この出力は、Desktop ディレクトリに Code ディレクトリには存在しないファイルが 4 つあることを示しています。
まとめ
お疲れさまでした。これで「ファイルの内容と比較」の実験は完了です。今回学んだ内容を振り返りましょう。
catを使って、ファイルの内容全体を表示しました。cat -nを使って、行番号付きでファイルの内容を表示する方法を学びました。headを使って、行単位およびバイト単位でファイルの先頭を表示しました。tailを使って、行単位およびバイト単位でファイルの末尾を表示しました。diffを使って、ファイルの内容を比較する方法を学びました。- 最後に、
diff -rを使ってディレクトリ全体を比較しました。
これらのコマンドは、Linux の基本的なツールです。Linux を使い続ける中で、ファイルやディレクトリを確認・比較するために、これらのコマンドを頻繁に使うことになるでしょう。
コマンドの使い方を忘れた場合は、man の後にコマンド名を入力してください(例:man cat)。そのコマンドのマニュアルページが表示され、利用できる各オプションの詳しい情報を確認できます。
さまざまなファイルやディレクトリでこれらのコマンドを練習し、操作に慣れていきましょう。使うほど、自然に扱えるようになります。



