【Bash講座 第5回】ファイルの中身を覗け!cat, head, tail, less 完全攻略

bash講座

【Bash講座 第5回】巨大なログファイルも怖くない!テキスト閲覧の極意

こんにちは!「リナックス先生」です。
前回は、リダイレクトとパイプを使ってデータを保存・加工する方法を学びました。
コウ君、サーバーのログファイルなどは見れるようになった?

コウ君

先生!大変です!
エラーログの中身を見ようと思って cat error.log って打ったら、画面に凄まじい勢いで文字が流れ始めて、止まらなくなっちゃいました!
Ctrl+C を連打してやっと止まりましたけど…心臓に悪いです。

リナックス先生

あちゃー、やっちゃったわね。
Linuxのログファイルは何万行、何百万行になることもあるから、不用意に全表示するとターミナルがフリーズすることもあるのよ。
今回は、そんな巨大なファイルでも安全・快適に読むための「4つの神器(cat, less, head, tail)」を伝授するわ!

第5回となる今回は、テキストファイルの中身を確認するコマンドたちを特集します。
これらを使い分けることで、必要な情報に最短でたどり着けるようになりますよ。

本講座のカリキュラム(全12回)

AlmaLinux 9 (RHEL 9互換) 環境を前提に、基礎から応用までステップバイステップで進めます。

  1. Bash入門編:シェルとカーネルの関係、CUIの哲学、環境構築
  2. ファイル操作の極意:絶対パス・相対パスと「ワイルドカード」の魔術
  3. 権限(パーミッション)とユーザー:chmod, chown, sudoの仕組みを完全理解
  4. 入出力リダイレクトとパイプ:Linuxの真骨頂!コマンド同士を連携させる技術
  5. 【今回】テキスト処理の基本:cat, head, tail, less…ファイルの中身を覗く道具たち
  6. 最強のエディタ「Vi/Vim」入門:サーバー内でテキストを編集する必須スキル
  7. シェルスクリプトの第一歩:ファイルにまとめて自動実行!変数と引数の基礎
  8. 条件分岐(if文):サーバーの状態を見て「判断」できるスクリプトを作る
  9. 繰り返し処理(for/while文):面倒な単純作業を1秒で終わらせるループ処理
  10. テキスト処理の応用:grep, sed, awk…ログ解析の達人になるための三種の神器
  11. 実践・自動化スクリプト:バックアップと監視を自動化し、Cronで定期実行する
  12. 総仕上げ:自作スクリプトの集大成と、エンジニアとしての歩き方

1. 基本中の基本:cat(キャット)

最も有名なコマンドですが、実は「中身を見る」ためだけのコマンドではありません。
本来の意味は “Concatenate”(連結する) です。

基本的な使い方

短いファイルの中身をサッと確認するのに向いています。

# ファイルの中身を表示
[root@localhost ~]# cat /etc/hostname
localhost.localdomain

便利なオプション:行番号を表示 (-n)

設定ファイルなどを誰かに説明する時、「10行目を見て」と言えると便利ですよね。

[root@localhost ~]# cat -n /etc/resolv.conf
     1  # Generated by NetworkManager
     2  nameserver 8.8.8.8

本来の使い方:ファイルを連結する

名前の通り、複数のファイルを「連結」して表示(または保存)することができます。
これが cat の真の力です。

# file1 と file2 を連結して画面に出す
[root@localhost ~]# cat file1.txt file2.txt

# 連結した結果を new_file.txt に保存する(リダイレクトとの合わせ技)
[root@localhost ~]# cat part1.csv part2.csv > all_data.csv

2. 巨大ファイルも怖くない:less(レス)

コウ君が失敗したのは、巨大なファイルを cat で一気に流そうとしたからです。
長い文章を読むときは、「ページャー(Pager)」と呼ばれるツールを使います。
昔は more というコマンドが使われていましたが、今はより高機能な less が標準です。

リナックス先生

「less is more(より少ないことは、より豊かなこと)」という格言が名前の由来よ。
less はファイルを全部読み込まずに少しずつ表示するから、何GBもある巨大ファイルでも一瞬で開けるの。

基本操作

[root@localhost ~]# less /var/log/messages

起動すると画面が切り替わります。以下のキー操作を覚えておきましょう。

キー 動作
Space / f 次のページへ進む
b 前のページに戻る (Back)
j / Enter 1行進む
k 1行戻る
G (Shift+g) ファイルの末尾(一番最後)へジャンプ
g ファイルの先頭へジャンプ
q 終了する (Quit)

検索機能

less の中で、特定のキーワードを探すこともできます。

  • /keyword :キーワードを前方検索(Enterで実行)
    • n :次の検索結果へ (Next)
    • N :前の検索結果へ

3. 頭とお尻だけ見たい:head / tail

「ログの最初だけ確認したい」「最新のエラーだけ見たい」という時に、全部開くのは面倒です。
そんな時は「頭 (head)」と「尻尾 (tail)」を使いましょう。

head:先頭を表示

デフォルトでは「最初の10行」を表示します。

# /etc/passwd の先頭10行を表示
[root@localhost ~]# head /etc/passwd

# 行数を指定したい時は -n を使う(例:先頭5行)
[root@localhost ~]# head -n 5 /etc/passwd

tail:末尾を表示

デフォルトでは「最後の10行」を表示します。
ログファイルは末尾に最新情報が追記されるので、head よりも圧倒的に出番が多いです。

# 最後の20行を表示
[root@localhost ~]# tail -n 20 /var/log/messages

4. 【最重要】リアルタイム監視:tail -f

サーバー管理者が最も愛用する機能の一つがこれです。
「ログが書き込まれる様子をリアルタイムで眺める」ことができます。

コウ君

映画のハッカーがやってる「画面に文字がダダダダッて流れるやつ」ですか!?

リナックス先生

そうそれ!
Webサーバーが動かない時、このコマンドでエラーログを監視しながらブラウザをリロードするの。
そうすると、エラーが出た瞬間にログが表示されるから、原因特定がめちゃくちゃ早くなるわよ。

使い方:-f (follow) オプション

[root@localhost ~]# tail -f /var/log/httpd/access_log

これを実行すると、コマンドは終了せず「待ち状態」になります。
誰かがWebサイトにアクセスすると、そのログがリアルタイムで画面に追加されていきます。
終了するには Ctrl + C を押します。

まとめ:使い分けのポイント

最後に、それぞれのコマンドの使い所を整理しましょう。

コマンド こんな時に使う
cat 短い設定ファイルを見る。ファイルを結合する。
less 長いファイルを見る。キーワード検索したい。
head CSVファイルのヘッダー(項目名)だけ確認したい。
tail ログの最新部分(最後)だけ見たい。
tail -f 【必須】ログをリアルタイムで監視したい。

次回予告:禁断の「ファイル編集」へ

第5回は、ファイルの中身を「見る」コマンドたちを解説しました。
特に lesstail -f は、エンジニアの毎日の相棒です。ぜひ手に馴染ませてください。

次回は、ついにサーバー上でファイルを「編集」する方法を学びます。
Linux標準にして最強のテキストエディタ「Vi / Vim(ヴィム)」の登場です。
「終了の仕方が分からなくてPCを再起動した」という伝説を持つほど癖が強いエディタですが、使いこなせば魔法のように高速に編集できます。

リナックス先生

次回までに、tail -f を実行したまま、別のターミナル画面からそのサーバーにログインしてみて。
ログが動く様子が見られて感動するわよ!

▼本講座推奨!AlmaLinux 9がすぐ使えるVPS

【2026年最新】Linuxサーバー構築におすすめのVPS比較3選!現役エンジニアが速度とコスパで厳選
Linuxの勉強、まだ「自分のPC」でやって消耗していませんか?「Linuxを覚えたいけど、環境構築でエラーが出て先に進めない…」「VirtualBoxを入れたらパソコンが重くなった…」これは、Linux学習を始める9割の人がぶつかる壁です...

コメント