こんにちは、たねやつです。
このシリーズでは、Linuxの基本的なコマンドを一つずつ取り上げ、その使い方を具体的な例とともに解説していきます。今回は、ファイルの内容を表示したり、複数のファイルを連結したりするcatコマンドです。
catコマンドとは?
catコマンドは、conCATenate(連結する)の略で、元々はファイルを連結するためのコマンドです。しかし、単一のファイルを指定するとその内容が標準出力に表示されるため、短いテキストファイルや設定ファイルの内容を素早く確認する用途で非常によく使われます。
主なオプション
| オプション | 説明 |
|---|---|
-n |
--numberの略。すべての行に行番号を付けて表示します。 |
-b |
--number-nonblankの略。空白行を除いて、行番号を付けて表示します。 |
-s |
--squeeze-blankの略。2行以上連続する空白行を、1行の空白行にまとめて表示します。 |
-E |
--show-endsの略。各行の末尾に$マークを表示します。 |
具体的な使用例
状況1: 設定ファイルの内容を素早く確認したい
Raspberry Piのシステム設定ファイル/boot/config.txtの内容をターミナルで確認したい場面です。
cat /boot/config.txt
ファイルの内容がすべてターミナルに表示されます。長いファイルの場合はlessコマンドの方が適していますが、短いファイルならcatが手軽です。
状況2: ファイルの内容に行番号を付けて表示したい
スクリプトのエラーが「25行目」と表示された際に、該当のファイルmy_script.shの25行目周辺を確認したい場面です。
cat -n my_script.sh
すべての行の先頭に行番号が表示されるため、特定の行を探しやすくなります。
状況3: 複数のファイルを一つにまとめて新しいファイルを作成したい
日々のログがlog_day1.txt, log_day2.txtのように複数ファイルに分かれているのを、log_all.txtという一つのファイルに結合したい場面です。
# 2つのファイルを連結し、リダイレクト(>)で新しいファイルに書き出す cat log_day1.txt log_day2.txt > log_all.txt
log_all.txtには、log_day1.txtとlog_day2.txtの内容が順番に書き込まれます。
状況4: ターミナルから直接ファイルに書き込みたい(ヒアドキュメント)
短い設定ファイルやメモを、エディタを開かずに直接作成したい場面です。
cat << EOF > new_file.txt Hello, this is the first line. This is the second line. EOF
cat << EOFからEOFまでの間の文字列が、new_file.txtに書き込まれます。簡単なファイル作成に便利です。
最後に
今回はcatコマンドについて解説しました。ファイル内容の表示という用途が有名ですが、本来の「連結」機能や、リダイレクトと組み合わせることで、ファイルの作成や結合といった多彩な操作が可能です。