【Linux】lessコマンドでテキストファイルを効率的に閲覧・検索する

目次

概要

lessコマンドは、テキストファイルの内容を閲覧するためのページャー(Pager)です。catコマンドとは異なり、ファイル全体を一度に読み込まずに必要な部分だけを表示するため、数GB単位の巨大なログファイルであってもメモリを消費せずに瞬時に開くことができます。

Linuxシステム管理において、ログの調査、設定ファイルの確認、コマンド実行結果のスクロール表示など、あらゆる場面で必須となるツールです。本記事では、基本的な閲覧方法から、効率的な移動・検索操作、パイプラインと組み合わせた活用法を解説します。

仕様(引数・オプション)

構文

less [オプション] [ファイル名]

または、パイプラインを使用して他のコマンドの出力を受け取ります。

[コマンド] | less [オプション]

主なオプション

入力値を参考に、実務で頻出するオプションをまとめました。

オプション説明
-N各行の行頭に行番号を表示します。
-s連続する空白行を1行にまとめて表示します(Squeeze)。
-S長い行を折りなさずに表示します(横スクロール可能にします)。
-i検索時に大文字・小文字を区別しません。
-p [パターン]ファイルを開くと同時に、指定したパターン(文字列)を検索して該当箇所を表示します。
-f特殊ファイルやバイナリファイルでも強制的に開きます。
-x [数値]タブ文字の幅を指定した数値に設定します(例: -x4)。

内部コマンド(操作キー)

less起動後の画面操作で使用する主なキーバインドです。

キー操作動作説明
Space / f1画面分、下(先)へスクロールします。
b1画面分、上(前)へスクロールします。
Enter / e1行だけ下へスクロールします。
y1行だけ上へスクロールします。
d画面の半分だけ下へスクロールします。
u画面の半分だけ上へスクロールします。
gファイルの先頭行へ移動します。
Gファイルの最終行へ移動します。
/前方検索モード(入力後に検索ワードを入力してEnter)。
?後方検索モード(入力後に検索ワードを入力してEnter)。
n次の検索ヒット箇所へ移動します。
N前の検索ヒット箇所へ移動します。
=現在のファイル名、行数、バイト位置などの情報を表示します。
v現在表示しているファイルをデフォルトのエディタ(vi/nano等)で開きます。
! [コマンド]シェルコマンドを実行します(例: !ls -l)。
qlessを終了し、元のシェル画面に戻ります。

基本の使い方

ログファイルの閲覧

最も基本的な使い方は、対象ファイルを引数に指定して実行することです。

less /var/log/syslog

実行結果イメージ:

Jan 15 10:00:01 ubuntu-server CRON[12345]: (root) CMD (command -v debian-sa1 > /dev/null && debian-sa1 1 1)
Jan 15 10:05:01 ubuntu-server systemd[1]: Starting Cleanup of Temporary Directories...
Jan 15 10:05:01 ubuntu-server systemd[1]: systemd-tmpfiles-clean.service: Succeeded.
Jan 15 10:05:01 ubuntu-server systemd[1]: Finished Cleanup of Temporary Directories.
...(以下省略。qキーで終了)

実践コマンド

1. 行番号を表示し、空白行を圧縮して閲覧

ソースコードや整形されていないログを見る際に、行番号(-N)と空白行圧縮(-s)を組み合わせると視認性が向上します。

less -Ns application_debug.log

2. コマンドの出力結果をページャーで確認

大量に出力されるコマンドの結果をパイプでlessに渡すことで、スクロールして確認できます。ここでは、ロードされているカーネルモジュールの一覧を表示する例です。

lsmod | less

実行結果イメージ:

Module                  Size  Used by
nls_utf8               16384  1
isofs                  49152  1
vboxsf                 45056  0
snd_intel8x0           45056  2
snd_ac97_codec        135168  1 snd_intel8x0
...(矢印キーやSpaceキーでスクロール可能)

3. 初期検索位置を指定して開く

特定のエラーログを即座に確認したい場合、-pオプションで検索ワードを指定して開くことができます。

# "ERROR" という文字列がある場所から表示を開始する
less -p "ERROR" /var/log/nginx/error.log

カスタムポイント

環境や目的に応じて以下の箇所を変更してください。

  • ファイルパス (/var/log/...):
    • 閲覧したい実際のログファイルや設定ファイルのパスに置き換えてください。
  • オプション (-N, -s, -S):
    • ソースコードを読む場合は -N(行番号)が便利です。
    • 横に長いログ(JSON形式など)を読む場合は -S(折り返しなし)を使用すると見やすくなります。
  • 検索ワード (-p "..."):
    • 調査したいエラーコードやキーワードに変更してください。

注意点

  1. 終了方法:
    • 初めて使う方が迷いやすいポイントです。終了するには必ず q キーを押してください(Ctrl+Cでは終了しません)。
  2. バイナリファイルの閲覧:
    • 画像や圧縮ファイルなどのバイナリファイルをlessで開くと、制御文字が表示され画面が乱れることがあります。誤って開いた場合は何も入力せずに q を押してください。
  3. パイプ利用時のバッファ:
    • command | less の形式で実行する場合、元のコマンドの出力が完了するまで(あるいはバッファが満たされるまで)表示が始まらないことがあります。
  4. 編集機能について:
    • vキーでエディタを起動できますが、環境変数 EDITOR または VISUAL が設定されている必要があります。サーバーによっては vinano が起動します。

応用

閲覧中にシェルコマンドを実行する

lessでファイルを開いている最中に、別の情報を確認したくなることがあります。内部コマンド ! を使うと、lessを閉じずにシェルコマンドを実行できます。

操作手順:

  1. less 起動中に ! を入力します。
  2. 画面下部に ! プロンプトが表示されるので、コマンドを入力します(例: pwd)。
  3. Enterキーを押すとコマンドが実行されます。
  4. 「Press RETURN」と表示されたらEnterキーを押して元のless画面に戻ります。

実行イメージ(less画面内):

!pwd
/home/user/projects/logs
!done  (press RETURN)

複数のファイルを連続して閲覧する

複数のファイルを引数に指定して実行し、:n(次のファイル)と:p(前のファイル)で切り替えながら閲覧できます。

less error.log access.log system.log

まとめ

lessコマンドは、単にファイルの中身を見るだけでなく、強力な検索機能やスクロール機能を備えたLinux操作の基本ツールです。

  • 向く場面: ログ調査、設定ファイルの確認、大量出力コマンドの結果確認。
  • 変更ポイント: 行番号(-N)や折り返し禁止(-S)を状況に合わせて使い分ける。
  • 注意点: 終了は q キー。バイナリファイルは開かないように注意する。

Spaceキーでのスクロールと / での検索を覚えるだけで、調査作業の効率が格段に上がります。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次