今回はLinuxコマンドであるcatコマンドについて解説します
ファイルの中身を閲覧するために必要なコマンドです
Linuxを使用するうえで頻繁に使うコマンドなのでぜひ覚えて帰ってくださいね!
※注 本文の△は半角スペースに置き換えてください。わかりやすくするために△で記述してます
catコマンドとは??
catコマンドは、ファイルを閲覧するコマンドです
cat△ファイル名
catコマンドでのファイル結合
そもそも「cat」は連結するという意味を持つ「concatenate」の略です
そのため、ファイルを2つ3つ指定することでファイルの連結も可能です
cat△ファイル名1△ファイル名2
catコマンドの主なオプション
catコマンドは多くの便利なオプションがあります
オプション | 意味 |
---|---|
-n (--number) | 行番号をつけて出力 |
-b (--number-blank) | 空白行を入れずに行番号をつけて出力 |
-n (--squeeze-blank) | 連続した空白行を1つの空白行にまとめて出力 |
-E (--show-ends) | 各行の最後に「$」をつけて出力 |
-T (--show-tabs) | タブを「^|」に変換して出力 |
-n (–number)
行番号をつけて出力するオプション
よくオプションは頭文字がつけられることが多いのですが、
こちらは「number」の頭文字のnと覚えましょう
cat△-n△ファイル名
-b (–number-nonblank)
空白行を入れずに行番号をつけて表示するオプション
「blank」のbです
cat△-b△ファイル名
-s (–squeeze-blank)
連続している空白行を1行にまとめるオプション
「squeeze」のsです
cat△-s△ファイル名
-E (–show-ends)
各行の最後に「$」をつけて表示するオプション
各行の終わりがわかりやすくなるので、1行が長くなりすぎた時に、変に改行されていないか等の確認に使えます
cat△-E△ファイル名
-T (–show-tabs)
タブを「^I」に置き換えて表示するコマンド
ファイル内のタブ文字を視覚的に確認したい場合に便利です
cat△-T△ファイル名
-A (–show-all)
-vET オプションをすべて組み合わせたオプション
タブ、行末、非印字文字をすべて表示します
ファイルの内容を詳細に調査したい場合に便利です
cat△-A△ファイル名
-v (–show-nonprinting)
印字できない文字を可視化して表示するオプション
制御文字やバイナリデータが混入していないかチェックする際に有効です
cat△-v△ファイル名
-u
出力をバッファリングしないオプション
リアルタイムでファイルの内容を確認したい場合に使用します
特にログファイルの監視などで役立ちます
cat△-u△ファイル名
catを使う際に覚えておくと便利なもの
画面へ標準出力した結果をテキスト化するリダイレクト「>」「>>」を覚えておくとめちゃくちゃ便利なので一緒に覚えるとよいでしょう
「>」:上書きリダイレクト
別ファイルに出力内容を記述することが出来る
cat△ファイル名1△>△ファイル名2
ファイルがもともとあった場合、そのファイルの内容がなくなり、上書きされる
「>>」:追記リダイレクト
別ファイルに出力内容を追記することが出来る
cat△ファイル名1△>>△ファイル名2
ファイルがもともとあった場合、そのファイルの内容に追加で記述される

catコマンドの実用的な活用例
実際の現場でよく使われるcatコマンドの活用例をご紹介します
ファイルの新規作成
catコマンドとリダイレクトを組み合わせて、新しいファイルを作成できます
cat△>△newfile.txt
# 入力待ちになるので、内容を入力してCtrl+Dで終了
cat△<<△EOF△>△newfile.txt
ここに内容を記述
複数行も可能
EOF
# ヒアドキュメントを使った作成方法
複数ファイルの結合
複数のファイルを一つに結合する際の便利な使い方です
cat△file1.txt△file2.txt△file3.txt△>△merged.txt
# 3つのファイルを結合して新しいファイルに保存
cat△*.txt△>△all_text_files.txt
# 現在のディレクトリの全txtファイルを結合
cat△header.txt△content.txt△footer.txt△>△complete.txt
# ヘッダー、コンテンツ、フッターを結合
ログファイルの確認
システム管理でよく使われるログファイルの確認方法です
cat△-n△/var/log/messages
# システムログを行番号付きで表示
cat△/var/log/apache2/access.log△|△tail△-n△100
# Apacheアクセスログの最後100行を表示
cat△/var/log/syslog△|△grep△”ERROR”
# エラーログのみを抽出
設定ファイルのバックアップ
重要な設定ファイルをバックアップする際の方法です
cat△/etc/nginx/nginx.conf△>△nginx.conf.backup
# Nginxの設定ファイルをバックアップ
cat△/etc/hosts△>>△hosts_backup_$(date△+%Y%m%d).txt
# 日付付きでhostsファイルをバックアップ
cat△/etc/fstab△|△cat△-n△>△fstab_with_numbers.txt
# 行番号付きでfstabをバックアップ
catと組み合わせて使える便利なコマンド
catコマンドを他のコマンドと組み合わせることで、より高度な操作が可能になります
cat△file.txt△|△wc△-l
# ファイルの行数をカウント
cat△file.txt△|△sort
# ファイル内容をソートして表示
cat△file.txt△|△head△-n△10
# ファイルの最初10行のみ表示
cat△file.txt△|△tail△-n△5
# ファイルの最後5行のみ表示
cat△*.log△|△grep△”$(date△+%Y-%m-%d)”
# 今日の日付を含むログエントリを全ログファイルから検索
オプションの組み合わせ例
複数のオプションを組み合わせることで、より詳細な情報を得ることができます
cat△-nET△file.txt
# 行番号、行末文字、タブ文字をすべて表示
cat△-bs△file.txt
# 空白行以外に行番号を付けて、連続空白行を圧縮
cat△-A△suspicious_file.txt
# すべての制御文字を表示(ファイル内容の詳細調査)
catの類似コマンド
おまけですが、「cat」の類似のコマンドとして「tac」コマンドというものがあります。
これは「cat」をさかさまにしたもので、出力もさかさまにしてしまうというコマンドです。
ぜひ試してみてください!実行例も載せておきます。
その他の類似コマンド
ファイル表示に関連する他の便利なコマンドもご紹介します
less△file.txt
# ページ単位でファイルを表示(大きなファイルに適している)
more△file.txt
# スクロール表示でファイルを閲覧
head△file.txt
# ファイルの先頭部分のみ表示
tail△file.txt
# ファイルの末尾部分のみ表示
zcat△file.txt.gz
# 圧縮ファイルを展開せずに表示
catコマンドの効率的な使い方
大きなファイルや多数のファイルを扱う際のパフォーマンスを向上させるコツです
# 大きなファイルの場合はlessやmoreを使用
less△large_file.txt
# 特定の部分だけ必要な場合
cat△file.txt△|△head△-n△100△|△tail△-n△10
# 91-100行目を表示
# バイナリファイルは避ける
file△unknown_file
# ファイルタイプを事前確認
# パイプを活用した効率的な処理
cat△*.log△|△sort△|△uniq△>△sorted_unique.log
まとめ
いかがでしたでしょうか
今回はcatコマンドについてまとめてみました
catコマンドはファイルの中身を閲覧するLinuxの基本コマンドですが、様々なオプションや組み合わせにより非常に多機能なツールとして活用できます
ファイルの表示だけでなく、結合、作成、バックアップなど、日常的なLinux作業で欠かせないコマンドです
リダイレクトやパイプと組み合わせることで、さらに強力なファイル操作が可能になるので、ぜひマスターしてください!