ファイル内容の表示と比較

LinuxLinuxBeginner
今すぐ練習

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

はじめに

Linuxでのファイル操作に関する実践的な実験へようこそ!もしあなたがLinux初心者でも心配しないでください。各ステップを丁寧に案内します。この実験では、ファイルの内容を表示する方法、ファイルの特定部分を見る方法、およびファイルを比較する方法を学びます。これらは、Linuxファイルシステムを操作し理解するのに役立つ基本的なスキルです。

目的

この実験の終了時に、以下のことができるようになります。

  • cat を使用してファイルの全内容を表示する
  • head を使用してファイルの先頭部分を表示する
  • tail を使用してファイルの末尾部分を表示する
  • diff を使用してファイルやディレクトリの内容を比較する

前提条件

  • Linuxシステム(この実験ではUbuntuを使用しますが、ほとんどのLinuxディストリビューションでも同様に動作します)
  • コンピュータの基本的な操作に慣れていること

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/head("File Beginning Display") linux/BasicFileOperationsGroup -.-> linux/tail("File End Display") linux/VersionControlandTextEditorsGroup -.-> linux/diff("File Comparing") subgraph Lab Skills linux/cat -.-> lab-270251{{"ファイル内容の表示と比較"}} linux/head -.-> lab-270251{{"ファイル内容の表示と比較"}} linux/tail -.-> lab-270251{{"ファイル内容の表示と比較"}} linux/diff -.-> lab-270251{{"ファイル内容の表示と比較"}} end

ファイル内容の表示

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

ターミナルウィンドウのスクリーンショット

ターミナルを開くと、通常は $ 記号で終わるコマンドプロンプトが表示されます。ここにコマンドを入力します。

では、cat コマンドを使ってファイルの内容を表示しましょう。

  1. ターミナルで以下のコマンドを入力し、Enterキーを押してください。
cat /tmp/hello

ここで、/tmp/hello は表示したいファイルのパスです。/tmp はシステム上のディレクトリ(フォルダ)で、hello はそのディレクトリ内のファイル名です。

  1. Enterキーを押すと、ファイルの内容が表示されます。
Hi,
I am Labby!

これが /tmp/hello ファイルに含まれるすべての内容です。cat コマンドによってターミナルに表示されました。

行番号付きでファイル内容を表示する

では、再度 cat コマンドを使用しますが、今回は出力に行番号を付けます。

  1. ターミナルで以下のコマンドを入力し、Enterキーを押してください。
cat -n /tmp/hello

ここでの -n はオプションまたはフラグと呼ばれます。これは cat に対して、すべての出力行に番号を付けるよう指示します。

  1. これで、行番号付きのファイル内容が表示されるはずです。
     1 Hi,
     2 I am Labby!

これは、長いファイルを扱い、特定の行を参照する必要がある場合に非常に便利です。

ファイルの先頭行を表示する

次に、head コマンドを使用します。名前が示す通り、head はファイルの先頭部分を表示するために使用されます。

  1. ターミナルで以下のコマンドを入力し、Enterキーを押してください。
head -n1 /tmp/hello

ここで、-n1head に最初の1行のみを表示するよう指示するオプションです。1 を任意の数字に変更することで、その行数を表示することができます。

  1. 以下の出力が表示されるはずです。
Hi,

これはファイルの最初の1行だけです。デフォルトでは、-n1 オプションを指定しない場合、head はファイルの最初の10行を表示します。

ファイルの先頭の数バイトを表示する

では、再度 head コマンドを使用しますが、今回はファイルの先頭から特定のバイト数を表示します。

  1. ターミナルで以下のコマンドを入力し、Enterキーを押してください。
head -c1 /tmp/hello

-c1 オプションは head に対して、ファイルの最初の1バイト(文字)のみを表示するよう指示します。-n と同様に、1 を任意の数字に変更することで、そのバイト数を表示することができます。

  1. 以下の出力が表示されるはずです。
H

これはファイルの最初の文字だけです。テキストファイルでは、通常、各文字は1バイトです。

ファイルの末尾行を表示する

では、tail コマンドに移りましょう。お察しの通り、tailhead の逆で、ファイルの末尾を表示します。

  1. ターミナルで以下のコマンドを入力し、Enterキーを押してください。
tail -n1 /tmp/hello

head の場合と同じように、-n1 オプションは tail に1行のみを表示するよう指示します。この場合はファイルの最後の行です。

  1. 以下の出力が表示されるはずです。
I am Labby!

これが私たちのファイルの最後の行です。-n1 オプションを指定しない場合、tail はデフォルトで最後の10行を表示します。

ファイルの末尾の数バイトを表示する

head を使ったときと同様に、tail を使ってファイルの末尾から特定のバイト数を表示することができます。

  1. まず、末尾の1バイトを表示してみましょう。ターミナルで以下のコマンドを入力し、Enterキーを押してください。
tail -c1 /tmp/hello

出力が何も表示されないかもしれません。これは、最後の文字がおそらく改行文字であり、見えないためです。

  1. 代わりに末尾の2バイトを表示してみましょう。以下のコマンドを入力し、Enterキーを押してください。
tail -c2 /tmp/hello
  1. これで以下のように表示されるはずです。
!

-c2 オプションは tail に対して、ファイルの最後の2バイト(文字)を表示するよう指示します。この場合、ファイル内の最後の可視文字である感嘆符が表示されます。

ファイルの比較

ここでは、diff コマンドを使って2つのファイルを比較し、それらの違いを確認する方法を学びます。

  1. まず、正しいディレクトリ(フォルダ)にいることを確認しましょう。以下のコマンドを入力し、Enterキーを押してください。
cd ~/project

このコマンドは、現在のディレクトリをホームディレクトリ内の "project" フォルダに変更します。~ 記号はホームディレクトリのショートカットです。

  1. では、2つのファイルを比較しましょう。以下のコマンドを入力し、Enterキーを押してください。
diff file1 file2

このコマンドは diff に対して、file1file2 の内容を比較するよう指示します。

  1. 以下のような出力が表示されるはずです。
1c1
< this is file1
---
> this is file2

この出力は、file1 の1行目が file2 の1行目と異なることを示しています。< 記号は file1 の内容を、> 記号は file2 の内容を示しています。

ディレクトリの比較

最後に、diff コマンドを使ってディレクトリ全体を比較しましょう。

  1. ターミナルで以下のコマンドを入力し、Enterキーを押してください。
diff -r ~/Desktop ~/Code

-r オプションは diff に対して、サブディレクトリも再帰的に比較するよう指示します。~/Desktop~/Code は比較する2つのディレクトリへのパスです。

  1. 以下のような出力が表示されるかもしれません。
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つのファイルが含まれていることを示しています。

まとめ

おめでとうございます!ファイル内容の表示と比較の実験を完了しました。学んだことを振り返ってみましょう。

  1. cat を使ってファイルの全内容を表示しました。
  2. cat -n を使って行番号付きでファイル内容を表示する方法を学びました。
  3. head を使って、行単位とバイト単位でファイルの先頭部分を表示しました。
  4. tail を使って、行単位とバイト単位でファイルの末尾部分を表示しました。
  5. diff を使ってファイルの内容を比較する方法を学びました。
  6. 最後に、diff -r を使ってディレクトリ全体を比較しました。

これらのコマンドはLinuxにおける基本的なツールです。Linuxを使い続けるうちに、これらのコマンドを頻繁に使ってファイルやディレクトリを調べたり比較したりすることになるでしょう。

コマンドの使い方を忘れてしまったときは、いつでも man の後にコマンド名を入力する(例:man cat)ことで、そのコマンドのマニュアルページを表示できます。これにより、各コマンドで利用可能なすべてのオプションに関する詳細な情報が得られます。

これらのコマンドを異なるファイルやディレクトリで使い続けて練習し、使い慣れるようにしましょう。使えば使うほど、自然に使えるようになります!