このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
Linuxコマンドの基本:ファイルの内容を表示する:catコマンド

catコマンドとは
cat コマンドは、Linuxシステムにおいてファイルの内容を表示するための基本的なコマンドの一つです。主にテキストファイルの内容を確認するために使用されますが、複数ファイルを連結して表示することもでき、ファイルを一行ずつ出力したり、出力内容に行番号を付加するなど、さまざまなオプションを指定することが可能です。
cat という名前は「concatenate」(連結)の略であり、単にファイルを表示するだけでなく、複数のファイルを連結して一度に表示する機能も備えています。ここでは、catコマンドの基本的な使い方やオプションについて、具体的な例を交えてわかりやすく解説します。

catコマンドの基本
【書式】cat [オプション] <ファイル名>
- オプション:動作を変更するための追加指定(例:
-nで行番号を表示) - ファイル名:内容を表示したいファイルの名前を指定します。複数のファイルをスペースで区切って指定可能です。
ファイルの内容を表示する
catコマンドを使用して、ファイルの内容を端末に表示することができます。
使用例
まず、dateコマンドの出力を>(リダイレクト)を使ってnewfileというファイルに保存します。
user01@ubuntu:~$ date > newfilecatコマンドでnewfileの内容を表示したら、newfileを削除します。
user01@ubuntu:~$ cat newfile
2024年 9月 29日 日曜日 03:17:49 JST
user01@ubuntu:~$ rm newfile別のファイルを表示する
/etcディレクトリには多くの設定ファイルが存在します。その中のhostnameファイルを表示してみます。
user01@ubuntu:~$ cat /etc/hostname
ubuntu※表示される内容は、環境によって異なります。
さらに、もう少し内容のあるファイルとして、/etc/crontabを表示してみましょう。
user01@ubuntu:~$ cat /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
# You can also override PATH, but by default, newer versions inherit it from the environment
#PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.daily; }
47 6 * * 7 root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.weekly; }
52 6 1 * * root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.monthly; }
#/etc/crontabは、自動でコマンドを実行するための設定ファイルです。
ファイルを連結して表示する
catコマンドでは、一度に複数のファイルを指定することができます。この場合、ファイルの内容は順番に連結されて表示されます。
使用例
2つのファイル/etc/hostnameと/etc/crontabをまとめて表示します。
user01@ubuntu:~$ cat /etc/hostname /etc/crontab
ubuntu
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
(以下省略)ポイント: ファイルごとに区切り記号は入らず、内容がそのまま連結されて表示されます。
コマンド名の由来
catというコマンド名は、「concatenate(連結する)」の略です。複数のファイルを連結して扱う機能から、この名前が付けられています。
オプションの活用
-nオプション:行番号の表示
-nオプションを付けると、各行に行番号を付けて表示します。プログラムのソースコードやログファイルの確認時に便利です。
使用例
user01@ubuntu:~$ cat -n /etc/crontab
1 # /etc/crontab: system-wide crontab
2 # Unlike any other crontab you don't have to run the `crontab'
3 # command to install the new version when you edit this file
4 # and files in /etc/cron.d. These files also have username fields,
5 # that none of the other crontabs do.
6
7 SHELL=/bin/sh
8 # You can also override PATH, but by default, newer versions inherit it from the environment
9 #PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
(以下省略)主なオプション一覧
| オプション | 説明 |
|---|---|
-n | 各行に行番号を付けて表示する。 |
-b | 空白行を除き、行番号を付けて表示する。 |
-E | 各行の末尾に $ 記号を表示する。 |
-T | タブ文字を ^I で表示する。 |
-s | 連続する空行を1行にまとめて表示する。 |
ファイルを指定しない場合
catコマンドでファイル名を指定しないと、標準入力からのデータを受け付けます。
使用例
user01@ubuntu:~$ catこの状態でカーソルが止まり、プロンプトが表示されなくなります。ここで何か文字列を入力し、Enterキーを押してみましょう。
Hello
Hello 入力した内容がそのまま表示されます。catコマンドは、キーボードからの入力を受け取り、それをリアルタイムで表示しています。
この状態を終了するには、Ctrl + D(EOF: End Of File)を押します。
user01@ubuntu:~$ポイント: catコマンドだけでなく、多くのLinuxコマンドは、入力ファイルを指定しないと標準入力(キーボード入力)を受け付けます。
まとめ
catコマンドの基本機能
・ファイルの内容を表示する。
・複数のファイルを連結して表示する。- オプションの活用
・-nオプションで行番号を表示できる。
・その他のオプションで表示形式を調整可能。 - 標準入力からのデータ処理
・ファイル名を指定しないと、キーボードからの入力を受け付ける。
・入力を終了するにはCtrl + Dを押す。 - コマンド名の由来
・catは「concatenate(連結する)」の略で、ファイルを連結する機能から名付けられている。
catコマンドは、ファイルの内容確認やテキストデータの操作において非常に便利なコマンドです。オプションを活用することで、より効率的に作業を進めることができます。日常的に利用する機会が多いコマンドなので、ぜひ使いこなせるようになりましょう。
