このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
ファイルの内容を表示する:catコマンド
catコマンドとは
cat
コマンドは、Linuxシステムにおいてファイルの内容を表示するための基本的なコマンドの一つです。主にテキストファイルの内容を確認するために使用されますが、複数ファイルを連結して表示することもでき、ファイルを一行ずつ出力したり、出力内容に行番号を付加するなど、さまざまなオプションを指定することが可能です。
cat
という名前は「concatenate」(連結)の略であり、単にファイルを表示するだけでなく、複数のファイルを連結して一度に表示する機能も備えています。ここでは、cat
コマンドの基本的な使い方やオプションについて、具体的な例を交えてわかりやすく解説します。
catコマンドの基本
【書式】cat [オプション] <ファイル名>
- オプション:動作を変更するための追加指定(例:
-n
で行番号を表示) - ファイル名:内容を表示したいファイルの名前を指定します。複数のファイルをスペースで区切って指定可能です。
ファイルの内容を表示する
cat
コマンドを使用して、ファイルの内容を端末に表示することができます。
使用例
まず、date
コマンドの出力を>
(リダイレクト)を使ってnewfile
というファイルに保存します。
user01@ubuntu:~$ date > newfile
cat
コマンドで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
コマンドは、ファイルの内容確認やテキストデータの操作において非常に便利なコマンドです。オプションを活用することで、より効率的に作業を進めることができます。日常的に利用する機会が多いコマンドなので、ぜひ使いこなせるようになりましょう。