\ ポイント最大11倍! /

【Linux】lessコマンドでログファイルの中身を閲覧してみよう!

  • Linuxでファイルの中身を確認したい
  • ログファイルを見たい
  • ページごとに閲覧したい

このような方に向けて書きました。

Linux でログファイルを閲覧しようと考えたとき、最も一般的に利用されるのが今回ご紹介する less コマンドです。

本記事では less コマンドの特徴はもちろん、実践的な使い方まで解説します。

less コマンドの特徴

主な特徴は以下の通りです。

  • 大きなファイルを高速に閲覧
  • 編集機能はないので安全
  • キー操作がシンプルで覚えやすい
  • 標準出力からパイプ入力も可能

それぞれ、解説します。

大きなファイルを高速に閲覧

less コマンドはメモリ効率がよく、大きなファイルを高速に閲覧できます。

スクロールするたびに必要な部分だけを追加で読み込むので、ファイル全体を一度に読み込もうとする他のコマンドに比べて高速です。

例えば1GB超えのログファイルでも、lessなら数秒で読み込みが完了します。

検索も高速で、以下のコマンドで素早く該当箇所に移動可能。

/search_keyword

次の候補に移動する場合にはnを、前の候補に戻るにはNキーを使います。

編集機能はないので安全

less コマンドは常に読み取り専用で開くので、誤ってテキストファイルを改変することがありません。

そのため、重要なログファイルなどの閲覧には less コマンドが最適。

よくテキストファイルを閲覧するためにvi コマンドを使う場合もありますが、vi はエディタなのでログファイルや設定ファイルを改変してしまう恐れがあります

さらには less コマンドではロックがかからないので、他のプロセスがファイルにアクセスできなくなることがありません。

キー操作がシンプルで覚えやすい

テキストを閲覧することに特化したコマンドなので、キー操作がシンプルです。

キー操作役割
qless を終了
/pattern文字列を検索
&patternマッチする行のみ表示
&!patternマッチしない行のみ表示
n次の検索結果に移動
N前の検索結果に移動
gファイルの先頭に移動
Gファイルの末尾に移動
500G500行目に移動
f1ページ下にスクロール
b1ページ上にスクロール
j1行下にスクロール
k1行上にスクロール
主なキー操作

このようにキー操作がシンプルなので、vi コマンドなどと比べてもすぐにマスターできるでしょう。

標準出力からパイプ入力も可能

他のコマンドの出力を受け取って、表示できます。

例えばlsコマンドの結果を less で表示する場合には以下となります。

ls -la /path/to/directry | less

grepコマンドを less で出力するには以下です。

grep "ERROR" /var/log/syslog | less

このように、コマンドの後に| lessを追加するだけでパイプ入力ができます。

大量の結果を扱いたい場合にはとても便利です。

less コマンドの実践的な使い方

less コマンドを実践で使うための知識をお伝えします。

基本的な使い方

テキストファイルを開くには、以下のようなコマンドを実行します。

less filename

また、先ほどお伝えした通りコマンドの結果をlessで出力する場合には以下のように書きます。

command | less

less から抜けるにはqキーを押します。

q

リアルタイムでログモニタリング

-fオプションで、最新のエントリを監視し続けます。

less -f /var/log/syslog

ただし、ログローテートなどでファイル名が変わる場合には-Fオプションとします。

less -F /var/log/syslog

fはfollowの略で、ファイルの末尾を追記する挙動になります。

less の動作をカスタマイズする

less の動作は~/.lessrcで設定を行うことができます。

# 詳細なプロンプトの表示(ファイル名、現在の行番号、総行数などを表示)
-M
# 行番号を常に表示
-N
# 検索で大文字・小文字を区別しない(ケースインセンシティブ)
-i

上記の設定は便利なので、設定しておくのがおすすめです。

この記事が気に入ったら
フォローしてね!

シェア・記事の保存はこちら!

この記事を書いた人

karo@プログラマのアバター karo@プログラマ プログラマ

「書くことで人の役にたつ」をモットーに活動中。
本職はプログラマで、Pythonが得意。
基本情報技術者試験合格。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)