catとlessは、どちらもファイルの中身を表示するコマンドですが、性格がまったく違います。catはファイルの内容を一気に全部出力し、lessは1画面ずつスクロールしながら閲覧できる「ページャ」です。この違いを知らずに数万行のログファイルをcatしてしまい、画面が一瞬で流れ切って何も読めない——というのは、初心者が必ず経験する失敗です。
使い分けのコツはシンプルで、「短いファイルや、パイプで他コマンドに渡すならcat、じっくり読む・大きいファイルならless」です。この記事では、実機のLinux(WSLのDebian)で両者の挙動を確認しながら、ファイル閲覧の基本と使い分けを整理します。lessの中での検索やスクロールといった、覚えておくと一気に便利になるキー操作も紹介します。
cat ファイルは内容を一気に全部表示。短いファイルやパイプ向きです。cat -nで行番号付き、cat a bで複数ファイルを連結できます。- 大きなファイルは
less ファイルで開き、1画面ずつスクロールします。 - less内は
/文字列で検索・Gで末尾・gで先頭・qで終了です。 lessはファイル全体をメモリに読み込まないため、巨大ファイルでも軽快です。- 逆順に表示したいときは
tacを使います。
ファイルの先頭・末尾だけ見るhead・tail、中身を検索するgrep、パイプの仕組みリダイレクトとパイプもあわせて参考になります。
catの基本:全文表示・行番号・連結
cat(concatenate=連結)は、指定したファイルの内容をそのまま標準出力に流すコマンドです。行番号を付けたり、複数ファイルをつなげたりもできます。
# ファイルの中身をそのまま表示 cat small.txt # -n: 行番号を付けて表示 cat -n small.txt # 1 1行目の内容 # 2 2行目の内容 # 複数ファイルを連結して表示(順番につながる) cat a.txt b.txt # AAA ← a.txt の中身 # BBB ← b.txt の中身
実機でも、cat small.txtでファイルの中身がそのまま出力され、cat -nで各行に行番号が付くこと、cat a.txt b.txtで2つのファイルの中身が順番に連結されることを確認しました。catの本来の意味は「連結(concatenate)」で、複数ファイルを1つにまとめる用途が名前の由来です。ただ、日常では「短いファイルの中身をさっと見る」のに使うことが最も多いでしょう。grepやawkへパイプで渡す起点としても頻繁に登場します。
catでファイルに書き込む
catはリダイレクトと組み合わせると、キーボードからの入力をそのままファイルに書き込むこともできます。ヒアドキュメントと組み合わせる書き方が定番です。
# ヒアドキュメントで複数行をファイルに書き込む cat > written.txt <<'EOF' line one line two EOF cat written.txt # line one # line two # >> にすれば追記になる cat >> written.txt <<'EOF' line three EOF
実機でも、cat > written.txt <<'EOF' ... EOFというヒアドキュメントで、複数行のテキストをファイルに書き込めることを確認しました。>は上書き、>>は追記です。設定ファイルをその場でさっと作りたいときなどに便利な小技です。
【最重要】大きなファイルはlessで開く
ここがcatとlessの使い分けで最も大切なポイントです。数万行・数MB以上のファイルをcatすると、内容が画面を一瞬で流れ切ってしまい、結局何も読めません。こういうときはlessを使います。
# NG: 巨大なログを cat すると、画面が一気に流れて読めない cat /var/log/huge.log # 数十万行が一瞬で流れ去る… # OK: less なら1画面ずつスクロールして読める less /var/log/huge.log # ↓ less の中での操作: # スペース / f … 次のページ # b … 前のページ # 矢印 / j,k … 1行ずつ移動 # /文字列 … 前方検索(n で次、N で前) # G … ファイルの末尾へ # g … ファイルの先頭へ # q … 終了
実機で、100万行(約6.6MB)のファイルを用意して挙動を確認しました。catでそのまま表示すると当然100万行がすべて流れますが、lessで開くと、必要な部分だけを読み込んで表示するため、開いた瞬間は先頭の1画面だけが表示され、スクロールに応じて読み進められます。lessの名前は「more(古いページャ)よりもっと(less is more)」に由来し、ファイル全体をメモリに読み込まずに扱えるのが大きな特徴です。そのため、数GBのログファイルでも一瞬で開けます。さらにlessの中では/エラーのように打てば「エラー」という文字列を検索でき、nで次の一致へジャンプできます。ログ調査では、grepで絞り込む前の「まず全体を眺める」段階でlessが活躍します。qを押せばいつでも閲覧を終了できます。
lessの便利なキー操作
lessは、開いたあとのキー操作を覚えると一気に使いやすくなります。最低限、「/で検索、Gで末尾、qで終了」の3つを押さえれば十分です。
| キー | 働き |
|---|---|
スペース / b |
次のページ / 前のページ |
j / k / 矢印 |
1行ずつ下 / 上へ移動 |
/文字列 |
前方検索(nで次、Nで前) |
G / g |
ファイルの末尾へ / 先頭へ |
F |
末尾で新しい行を待つ(tail -f相当) |
q |
lessを終了する |
特に便利なのがFキーです。lessでファイルを開いた状態でFを押すと、tail -fと同じように新しく追記される行をリアルタイムで追えます。Ctrl+cで追従をやめれば、そのまま検索やスクロールに戻れるため、「ログを監視しつつ、気になったら止めて調べる」という使い方ができます。grepの結果をlessで受け取る(grep error big.log | less)のも定番です。
逆順表示のtac
おまけとして、catと対になるtac(catの逆さ読み)も紹介します。行の順序を逆にして表示するコマンドで、最新のログを上に持ってきたいときなどに使えます。
# 1〜20 が入ったファイルを逆順で表示 tac small.txt # 20 # 19 # 18 # ... # 「最新のログを上に」見たいときに便利 tac /var/log/app.log | less
実機でも、tac small.txtで行が逆順(20, 19, 18, …)に表示されることを確認しました。tacはcatの名前を逆さにしたもので、機能も「行の並びを逆さにする」という覚えやすいコマンドです。時系列で追記されるログを「新しい順」に見たいときに、tac ... | lessのように組み合わせると便利です。
主な書き方一覧
cat・lessまわりの要点をまとめます。
| 書き方 | 働き |
|---|---|
cat ファイル |
全文を一気に表示(短いファイル向き) |
cat -n ファイル |
行番号付きで表示 |
cat a b |
複数ファイルを連結 |
less ファイル |
1画面ずつ閲覧(大きいファイル向き) |
less内の/・G・q |
検索・末尾へ・終了 |
tac ファイル |
行を逆順に表示 |
よくある失敗
大きなファイルをcatして画面が流れ切る
数万行のファイルはlessで開きます。catは短いファイルやパイプ向きです。
lessから抜け出せない
qを押せば終了できます。検索の入力中はEscでキャンセルします。
lessでスクロールの仕方が分からない
スペースで次ページ、bで前ページ、矢印やj/kで1行ずつ移動します。
catで書き込むつもりが上書きしてしまう
cat >は上書き、cat >>は追記です。既存ファイルには注意します。
ログを新しい順に見たいのにcatする
逆順ならtac、末尾だけならtailを使います。
よくある質問
cat、数万行以上の大きなファイルをじっくり読むならlessが向いています。catは内容を一気に全部出力するため、大きなファイルだと画面を流れ切って読めません。lessは1画面ずつスクロールでき、実機でも100万行のファイルでも軽快に開けることを確認しています。qキーを押せばlessを終了できます。もし/で検索文字列を入力している途中なら、Escでキャンセルしてからqを押してください。lessは閲覧専用で、ファイルを書き換えることはないので、qで安心して抜けられます。/を押してから検索したい文字列を入力し、Enterで前方検索します。nで次の一致、Nで前の一致へジャンプできます。大きなログから特定のエラーを探すときに便利です。先頭に戻るならg、末尾へ飛ぶならGです。cat -n ファイル名を使います。各行の先頭に行番号が付いて表示されます。lessで開いている場合は、-Nオプション(less -N ファイル)で行番号を表示できます。実機でも、cat -nで行番号が付くことを確認しています。tacを使い、tac ログファイル | lessのようにすると、最新の行が上に来ます。ただし「末尾の数行だけ見たい」ならtailのほうが手軽です。リアルタイムで追記を追うならtail -f、またはlessで開いてからFキーを使います。まとめ
catは全文を一気に表示。短いファイルやパイプ向きです。- 大きなファイルは
lessで開き、1画面ずつスクロールします。 - less内は
/検索・G末尾・g先頭・q終了を覚えれば十分です。 lessは全体を読み込まないため、巨大ファイルでも軽快です。- 行番号は
cat -n、逆順はtacを使います。
catとlessは、ファイルを「見る」という最も基本的な操作の中心です。「大きいファイルはless」という一点さえ守れば、うっかり画面を流し切ってしまう失敗はなくなります。まずlessで全体を眺め、grepで絞り込み、tailで末尾を追う——この流れがログ調査の基本形です。
- grep(文字列検索)
- find(ファイル検索)
- sed(置換・行編集)
- awk(列抽出・集計)
- cut(列の切り出し)
- chmod(パーミッション)
- tar(圧縮・解凍)
- リダイレクトとパイプ
- ps・kill(プロセス管理)
- 環境変数とPATH
- ln(シンボリックリンク)
- cp・mv・rm(コピー/移動/削除)
- touch・mkdir(ファイル/フォルダ作成)
- history(コマンド履歴)
- curl(HTTP通信・API)
- jq(JSON処理)
- vim(基本操作・終了方法)
- cron・crontab(定期実行)
- sort・uniq・wc(並べ替え/集計)
- xargs(一括処理)
- chown・chgrp(所有者/グループ変更)
- diff(ファイル比較)
- du・df(ディスク使用量)
- head・tail(先頭/末尾・ログ監視)
- cat・less(ファイル表示)
- alias(コマンドの別名)
- nohup(SSH切断対策)
- tmux(セッション管理)
- よく使うコマンドまとめ
- cd(ディレクトリ移動)

