LinuxやUnix系のシステムにおいて、テキストファイルやログファイルの内容を確認する際に「less」コマンドは非常に重宝されるツールです。
lessは、ファイル全体を一度に読み込むのではなく、表示に必要な分だけを読み込むため、巨大なファイルでも軽快に動作するという特徴があります。
効率的なシステム管理や開発作業を行うためには、このlessコマンドにおける検索機能や移動操作をマスターすることが不可欠です。
本記事では、日常的な操作を劇的にスピードアップさせるための検索テクニックや、便利なショートカットキーについて詳しく紹介します。
lessコマンドの基本と主なメリット
lessコマンドは、多くのLinuxディストリビューションで標準的に利用できるページャープログラムです。
かつて利用されていた「more」コマンドの機能を拡張し、後方へのスクロールや高度な検索が可能になっています。
まずは、最も基本的なファイルを開く方法から確認しましょう。
# ファイルを指定して開く
less system.log
このように実行すると、画面いっぱいにファイルの内容が表示されます。
lessの大きなメリットは、メモリの消費量を最小限に抑えられる点にあります。
数ギガバイトに及ぶ巨大なログファイルであっても、開く瞬間に待たされることはほとんどありません。
また、表示中にさまざまなキー入力を受け付ける対話的なインターフェースを持っており、柔軟な操作が可能です。
文字列を検索する高度なテクニック
ファイルの中から特定のキーワードを見つけ出す作業は、トラブルシューティングやコードリーディングにおいて頻繁に発生します。
lessコマンドには、正規表現を用いた強力な検索機能が備わっています。
前方検索と後方検索の使い分け
現在表示している位置からファイルの末尾に向かって検索することを「前方検索」と呼びます。
前方検索を行うには、スラッシュキー(/)に続けて検索したい文字列を入力し、Enterキーを押します。
/error
逆に、表示位置からファイルの先頭に向かって遡って検索することを「後方検索」と呼びます。
後方検索を行うには、クエスチョンマークキー(?)を使用します。
?warning
用途に応じてこれらの検索方向を使い分けることで、目的の箇所へ素早く到達できます。
大文字・小文字を区別せずに検索する方法
デフォルトの状態では、lessの検索は大文字と小文字を厳密に区別します。
しかし、ログの解析などでは大文字・小文字を問わずにヒットさせたい場合が多いでしょう。
その場合は、検索文字列を入力する前に「-i」オプションを付けてコマンドを起動するか、表示中に「-I」と入力して設定を切り替えます。
あるいは、検索キーワードの入力時に小文字だけで入力した場合のみ区別しない「スマートケース検索」のような挙動をさせることも可能です。
頻繁にこの設定を利用する場合は、環境変数に登録しておくのがおすすめです。
検索結果間の移動をスムーズに行う
一度検索を実行した後、次の一致箇所へ移動したい場合は「n」キーを押します。
「n」は「next」の略であり、現在の検索方向と同じ方向に次を探します。
逆に、現在の検索方向とは逆方向に移動したい場合は、大文字の「N」キーを押します。
例えば「/」で前方検索をしている場合、「n」で下方向へ、「N」で上方向へ移動することになります。
この操作を繰り返すことで、ファイル内の特定キーワードを効率よく網羅的にチェックできます。
ファイル内を自在に移動する操作方法
検索以外にも、特定の位置へ素早く移動するためのコマンドが多数用意されています。
マウスを使わずにキーボードだけで操作を完結させるのが、効率化のコツです。
基本的なスクロール操作
1行ずつ進むには「j」または「Enter」キーを使用し、1行戻るには「k」キーを使用します。
これらはUnixの標準的なエディタであるvi(vim)と同じ操作体系です。
1画面分(1ページ分)進むには「f」キー(forward)または「Space」キーを使用します。
逆に1画面分戻るには「b」キー(backward)を使用します。
半画面分だけ移動したい場合は「d」(down)と「u」(up)が便利です。
行番号を指定してジャンプする
特定の行番号に直接移動したい場面も多々あります。
例えば、プログラムのエラーメッセージで行番号が指摘されている場合などです。
lessの中で行番号を表示するには、まず「-N」と入力してEnterを押します。
1 # Sample Configuration
2 [Settings]
3 debug = true
4 port = 8080
特定の行、例えば100行目にジャンプしたい場合は、「100g」と入力します。
数字を先に入力してから小文字の「g」を押すことで、その行へ即座に移動できます。
ファイルの先頭や末尾へ一瞬で移動する
どんなに長いファイルであっても、一瞬で先頭や末尾に移動するコマンドがあります。
ファイルの先頭に移動するには、小文字の「g」を単体で入力します。
ファイルの末尾に移動するには、大文字の「G」を入力します。
最新のログを確認したい場合には、まず「G」で末尾へ移動するという操作が定番です。
また、「50%」のように数字にパーセント記号を続けて入力すると、ファイル全体の指定した位置へジャンプすることも可能です。
複数のファイルを効率的に管理・閲覧する
lessコマンドは、引数として複数のファイルを指定して起動することも可能です。
less file1.txt file2.txt file3.txt
複数のファイルを開いている場合、現在表示しているファイルから次のファイルへ移動するには「:n」と入力します。
前のファイルに戻るには「:p」と入力します。
現在どのファイルを表示しているか、あるいは全体の何番目のファイルかを確認するには「:f」を入力します。
複数の設定ファイルを比較しながら確認する場合などに、非常に便利な機能です。
リアルタイムで更新を監視する「監視モード」
開発中にログファイルを監視する場合、「tail -f」コマンドをよく使うかもしれません。
実はlessコマンドにも、同様の機能が備わっています。
lessでファイルを開いている最中に、大文字の「F」キーを押してください。
すると、ファイルの末尾に追記される内容をリアルタイムで表示するモードに切り替わります。
Waiting for data... (interrupt to abort)
このモードを終了して通常のless操作に戻るには、「Ctrl + C」を押します。
「tail -f」との最大の違いは、監視を中断した直後にそのまま検索やスクロールができる点です。
エラーが発生した瞬間に監視を止め、そのまま「?」でエラーの原因を遡って検索するといった一連の動作がスムーズに行えます。
lessコマンドの便利なショートカットキー一覧
ここまで紹介した主要な操作方法を、一覧表にまとめました。
これらを暗記しておくことで、CUI環境での作業効率は劇的に向上します。
| キー操作 | アクションの内容 |
|---|---|
/文字列 | 下方向(前方)に指定した文字列を検索する |
?文字列 | 上方向(後方)に指定した文字列を検索する |
n | 直前の検索を同じ方向で繰り返す(次を検索) |
N | 直前の検索を逆方向で繰り返す |
g | ファイルの先頭(1行目)へ移動する |
G | ファイルの末尾へ移動する |
数字 + g | 指定した行番号へ移動する(例: 50g) |
f / Space | 1画面分下へスクロールする |
b | 1画面分上へスクロールする |
d / u | 半画面分下 / 上へスクロールする |
-N | 行番号の表示 / 非表示を切り替える |
F | 最新の追記を監視する(監視モード) |
:n / :p | 次のファイル / 前のファイルへ移動する |
q | lessを終了する |
特に「g」「G」「/」「n」の4つは、最も頻繁に使用されるキーです。
まずはこれらを無意識に使えるようになるまで練習しましょう。
まとめ
lessコマンドは、単にファイルを表示するだけのツールではなく、強力な検索エンジンと柔軟なナビゲーション機能を備えたビューアです。
今回紹介した検索方法や移動のショートカットを活用することで、ログ解析やソースコードの確認作業が驚くほどスムーズになります。
特に、巨大なファイルを扱う際のパフォーマンスの良さと、監視モード(Fキー)の利便性は、他のコマンドにはない大きな魅力です。
Linux環境での作業時間を短縮し、より快適な操作環境を構築するために、ぜひこれらのテクニックを日常の業務に取り入れてみてください。
まずは今日から、ファイルを閲覧する際に「cat」や「more」ではなく「less」を積極的に使ってみることから始めましょう。
