catコマンドでファイル内容を表示する方法|結合やリダイレクトの使い方も


この記事の監修:宮崎智広(Linux教育歴15年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxコマンド, LinuxコマンドA-E, ファイル・ディレクトリ管理コマンド > catコマンドでファイル内容を表示する方法|結合やリダイレクトの使い方も
「設定ファイルの中身をちょっと確認したいだけなのに、viで開くのは面倒...」
「複数のログファイルを1つにまとめたいけど、どうすればいいか分からない」
Linuxを使い始めて最初に覚えるコマンドの1つが、ファイルの中身を表示する cat コマンドです。

この記事では、cat(キャット)コマンド の実践的な使い方を解説します。
基本的なファイル表示から、行番号の付与、複数ファイルの結合、リダイレクトによるファイル作成・追記まで、実務で必要になる操作をまとめました。

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を無料で手に入れる 図解60P/登録10秒/解除も3秒

catコマンドとは?(ファイル内容を表示する基本コマンド)

cat は「concatenate(連結する)」の略で、もともとは複数のファイルを連結して出力するためのコマンドです。実務では「ファイルの中身を画面に表示する」用途で最も頻繁に使われています。

設定ファイルの内容確認、スクリプトの中身チェック、ログの簡易閲覧など、Linuxを操作するうえで毎日のように使う基本中の基本のコマンドです。

基本的な使い方(ファイル内容を画面に表示する)

もっともシンプルな使い方は、ファイル名を指定するだけです。

# /etc/hostname の内容を表示する $ cat /etc/hostname server01

1. 行番号を付けて表示する(-n)

設定ファイルの何行目に問題があるかを確認したい時は、-n オプションで行番号を付けて表示します。エラーメッセージに「○行目にエラー」と表示された時に便利です。

# 行番号付きで表示する $ cat -n /etc/httpd/conf/httpd.conf 1 ServerRoot "/etc/httpd" 2 Listen 80 3 Include conf.modules.d/*.conf 4 User apache 5 Group apache

空行以外にだけ行番号を付けたい場合は -b オプションを使います。

# 空行以外に行番号を付ける $ cat -b /etc/httpd/conf/httpd.conf

2. 空行を詰めて表示する(-s)

設定ファイルやスクリプトの中に空行が連続して入っていると、画面が見づらくなります。-s(squeeze-blank)オプションを使うと、連続する空行を1行にまとめて表示してくれます。

# 連続する空行を1行にまとめて表示する $ cat -s /etc/httpd/conf/httpd.conf

3. タブ文字を可視化する(-A / -T)

インデントがタブなのかスペースなのか判別したい場合、-A オプションを使うと、タブ文字が ^I、行末が $ で表示されます。Makefileのようにタブとスペースを厳密に区別するファイルのデバッグに役立ちます。

# タブ文字と行末を可視化する $ cat -A Makefile all:^Igcc -o app main.c$ ^I./app$ # タブ文字だけを可視化する場合は -T $ cat -T Makefile

複数ファイルを結合(連結)する

cat の本来の用途である「ファイルの連結」も、実務で役に立ちます。

1. 2つのファイルを続けて表示する

複数のファイルをスペース区切りで並べると、順番に連結して表示します。

# file1.txt と file2.txt を続けて表示する $ cat file1.txt file2.txt

2. ワイルドカードでまとめて結合する

ワイルドカード(*)を使えば、同じ拡張子のファイルを一括で結合できます。分割されたログを1つにまとめたい場合に便利です。

# カレントディレクトリの .log ファイルをすべて結合して1つのファイルに保存する $ cat *.log > all_logs.txt

リダイレクトでファイルを作成・追記する(実務の必須テクニック)

cat はリダイレクト(>>>)と組み合わせることで、ファイルの作成や追記に使えます。

1. 新しいファイルに出力する(>)

cat の出力先をファイルに向けると、新しいファイルが作成されます。すでにファイルが存在する場合は 上書き されるので注意してください。

# file1.txt と file2.txt を結合して combined.txt に保存する $ cat file1.txt file2.txt > combined.txt

2. 既存ファイルに追記する(>>)

上書きではなく末尾に追記したい場合は >> を使います。ログの集約や設定の追加に使うテクニックです。

# additional.conf の内容を main.conf の末尾に追記する $ cat additional.conf >> main.conf

3. ヒアドキュメントで複数行を一気に書き込む

シェルスクリプトや手動作業で、複数行のテキストを一度にファイルへ書き込みたい場合、ヒアドキュメント(<<EOF)を使います。

# ヒアドキュメントで /etc/resolv.conf を作成する例 # cat << EOF > /etc/resolv.conf nameserver 8.8.8.8 nameserver 8.8.4.4 EOF

EOF は任意の文字列で構いません。開始と終了で同じ文字列を指定することで、その間の行がファイルに書き込まれます。

4. 標準入力からファイルを作成する

ファイル名を指定せずに cat を実行すると、キーボードからの入力を受け付ける状態になります。リダイレクトと組み合わせれば、手早くファイルを作成できます。

# キーボードからの入力で新しいファイルを作成する $ cat > memo.txt ここに内容を入力する 入力が終わったら Ctrl + D を押す

catコマンドの注意点と代替コマンド

【重要】大きなファイルにcatを使ってはいけない理由

cat はファイルの内容を すべて一気に画面に表示 します。数万行のログファイルに対して実行すると、画面が高速でスクロールし、ターミナルがフリーズしたように見えることがあります。

大きなファイルの内容を確認する場合は、用途に応じて以下のコマンドを使い分けてください。

less ファイル名ページ単位でスクロールしながら閲覧できる(上下移動、検索も可能)
head -n 20 ファイル名先頭の20行だけ表示する
tail -n 20 ファイル名末尾の20行だけ表示する
grep "検索文字列" ファイル名特定の文字列を含む行だけ表示する

目安として、100行を超えるファイルは less を使う癖をつけておくと安全です。

ファイルを空にする(0バイトにする)テクニック

ログファイルのサイズが大きくなりすぎた時に、ファイルを削除せずに中身だけ空にしたい場合があります。cat /dev/null とリダイレクトを組み合わせることで実現できます。

# ファイルの中身を空にする(ファイル自体は残る) # cat /dev/null > /var/log/httpd/access_log

※ログファイルを空にする場合は、事前にバックアップを取るか、ログローテーションの仕組みで管理するのが望ましいです。

本記事のまとめ(catオプション早見表)

やりたいこと コマンド
ファイル内容を表示する cat ファイル名
行番号を付けて表示する cat -n ファイル名
空行を詰めて表示する cat -s ファイル名
タブ文字・行末を可視化する cat -A ファイル名
複数ファイルを結合して表示する cat ファイル1 ファイル2
結合結果を新しいファイルに保存する cat ファイル1 ファイル2 > 出力ファイル
既存ファイルの末尾に追記する cat 追記元ファイル >> 追記先ファイル
ヒアドキュメントでファイルを作成する cat << EOF > ファイル名
ファイルの中身を空にする cat /dev/null > ファイル名


暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

※登録30秒/合わなければ解除3秒


宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが最近の悩み。ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。

図解60pのLinux無料マニュアル
登録10秒/自動返信でDL
無料で受け取る