catコマンドとは?使い方・オプション一覧・実行例をわかりやすく解説

コマンドリファレンス

cat コマンドは、ファイルの内容を標準出力(画面)に表示するLinux/Unixの基本コマンドです。名前は concatenate(連結する)の略で、1つのファイルを表示するだけでなく、複数ファイルを結合して表示したり、新しいファイルを作成したりする用途にも使われます。

この記事では、cat コマンドの構文・主要オプション・実行例に加えて、lesshead との使い分け、Windows環境での代替コマンドまでまとめて解説します。

catコマンドとは

cat は GNU coreutils に含まれる標準コマンドで、次のような場面でよく使われます。

  • ログファイルや設定ファイルの中身を素早く確認する
  • 複数のファイルを1つに結合する
  • リダイレクトと組み合わせて新しいファイルを作成する
  • パイプと組み合わせて他のコマンドへ入力を渡す

構文(Syntax)

cat [オプション] [FILE...]

FILEを省略、または - を指定すると標準入力から読み込みます。

主なオプション一覧

オプション説明使用例
-n行番号を付けて表示cat -n test.txt
-b空行を除いて行番号を付けるcat -b test.txt
-s連続する空行を1行にまとめるcat -s test.txt
-E行末に $ を表示cat -E test.txt
-Tタブ文字を ^I として表示cat -T test.txt
-A非表示文字もすべて可視化(-vET と同じ)cat -A test.txt

実行例

ファイル内容を表示

cat test.txt

出力例:

Hello
World

行番号を付けて表示

cat -n test.txt

出力例:

     1	Hello
     2	World

空行を除いて行番号を付ける

cat -b blank.txt

出力例(blank.txt の中身が a / 空行 / b の場合、空行には番号が付かない):

     1	a

     2	b

複数ファイルを結合して表示

cat file1.txt file2.txt

出力例:

Line A
Line B
Line C
Line D

複数ファイルを結合して新しいファイルに保存

結合結果を画面に表示するだけでなく、リダイレクト(>)で新しいファイルに保存できます。

cat file1.txt file2.txt > combined.txt

既存のファイルにさらに追記したい場合は >>(追記リダイレクト)を使います。> は上書き、>> は追記という違いに注意してください。

cat file1.txt >> combined.txt

新しいファイルを作成(リダイレクトを使用)

cat > newfile.txt
これは新しいファイルです
Ctrl+D

(入力終了後、newfile.txt に保存されます)

パイプで他のコマンドと組み合わせる

cat は標準入力をそのまま出力するため、パイプの動作確認や他コマンドの出力の受け皿としてもよく使われます。

echo "Hello World" | cat
head -n 10 access.log | cat -n

権限不足でエラーになる例

cat /etc/shadow

出力例:

cat: /etc/shadow: Permission denied

catとless・head・tailの違い

cat はファイル全体を一度に出力するため、大きなファイルを開くと大量の行が流れてしまい、内容を追いづらくなります。用途に応じて次のコマンドと使い分けます。

コマンド用途特徴
catファイル全体を一括表示・結合スクロール不可。小さいファイル向け
lessページ単位で閲覧スクロール・検索が可能。大きいファイル向け
moreページ単位で閲覧(旧式)前方スクロールのみ
headファイルの先頭を表示既定は先頭10行
tailファイルの末尾を表示-f でログのリアルタイム監視も可能
taccat の逆で行を逆順に表示名前の通り cat の綴りを逆にしたコマンド

目安として、ターミナルの画面に収まらない・スクロールして読みたいファイルは less、先頭や末尾だけ確認したい場合は head / tail を使うとよいでしょう。

よくある質問(FAQ)

catの語源は?

concatenate(連結する)の略です。もともと複数ファイルを1つに連結する用途で作られたコマンドで、単一ファイルの表示はその副次的な使い方にあたります。

catとlessの違いは?

cat はファイル内容を一括で出力するのに対し、less はページ単位でスクロール・検索しながら閲覧できます。行数が多いファイルは less の方が扱いやすいです。

大きなファイルをcatすると画面が乱れる・固まるのはなぜ?

行数が多いファイルを cat すると全行が一気に出力され、スクロールが追いつかなくなります。また、バイナリファイルを誤って cat すると制御文字により端末表示が乱れることがあります。その場合は端末を閉じて開き直すか、reset コマンドで表示を復元してください。大きいファイルは lesshead の利用をおすすめします。

WindowsでLinuxのcatコマンドは使えますか?

Git Bash や WSL(Windows Subsystem for Linux)では cat コマンドがそのまま使えます。コマンドプロンプト(cmd.exe)には cat は存在せず、同等の操作は type コマンドで行います。PowerShellでは Get-Content(エイリアス catgc)が同様の役割を果たします。

# コマンドプロンプト(cmd.exe)
type test.txt

# PowerShell
Get-Content test.txt

ファイルを結合する以外の使い道はありますか?

はい。標準入力の内容をそのまま出力する性質を利用して、パイプラインの動作確認(echo "test" | cat)や、他コマンドの出力を整形せずそのまま次の処理に渡す用途にも使われます。

注意点

  • cat は GNU coreutils に含まれます。BSD系(macOSなど)でも同様に利用できますが、細かいオプションの違いがあります。
  • 権限のないファイルは sudo が必要です。
  • リダイレクト(>)は既存ファイルを無条件に上書きします。誤って重要なファイルを上書きしないよう、書き込み先のファイル名は慎重に確認してください。
  • cat で内容を表示する代わりに、/etc/group/etc/passwd のようなシステム設定ファイルは専用コマンド(例: getent)で参照することも推奨されます。

関連コマンド

  • less : ファイル内容をスクロールしながら閲覧できる
  • more : ページ単位でファイルを表示できる
  • head : ファイルの先頭を表示する
  • tail : ファイルの末尾を表示する
  • tac : cat の逆で、ファイルを逆順に表示する

参考

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント