大きなファイルをページ単位で閲覧する

LinuxBeginner
オンラインで実践に進む

はじめに

何千冊もの本がある図書館から、特定の一文を探す場面を想像してください。cat を使うのは、すべての本を一度に床へ広げるようなものです。

Linux では、システムログのような非常に大きなファイルを扱うときに、pager と呼ばれるツールを使います。最も一般的な pager が less です。

less は、テキストの「ストリーミングサービス」だと考えてください。映画全体をダウンロードするようにファイル全体を読み込むのではなく、ページ単位で順番に表示します。そのため、非常に大きなファイルでもすぐに開けます。

この違いは重要です。システム管理者は、単純な出力コマンドでは快適に確認できないほど大きなファイルを扱うことがよくあります。pager は単なる便利機能ではなく、大量のテキストを制御しながら確認するための実用的な方法です。

この実験では、ファイルを開く方法、内容をスクロールする方法、キーワードを検索する方法、安全に終了する方法を学びます。

大きなファイルを開く

system.log という名前のダミーのログファイルを用意しています。このファイルには 1000 行あります。cat を使うと、内容が画面をすぐに流れていってしまいます。

まず、ファイルが存在することを確認します。

ls -lh system.log

次に、less でファイルを開きます。

less system.log

これで、コマンドラインにはいません。Less Interface に入りました。

重要なポイント:今はプログラムの「中」にいます。ここでは ls などの通常のコマンドは動作しません。ファイルを読むモードになっています。

これは、ターミナルを使ううえで一般的に重要な概念です。シェルは一時的に別のプログラムへ操作を引き渡しており、現在はそのプログラムがキー入力の意味を決めています。

テキストをスクロールする

ファイルを開くと、最初の「ページ」が表示されます。

less での移動にはキーボードを使います。

  1. ページをスクロールする:スペースキー(Spacebar)を押します。画面 1 枚分進みます。
  2. 1 行ずつスクロールする:Enter キー(Enter)または下矢印キー(Down Arrow)を押します。1 行ずつ進みます。
  3. 戻る:b を押すと、1 ページ分上へ戻ります。

スペースキー(Spacebar)、b、矢印キー(Arrow Keys)を使って、画面内を自由に移動できるまで試してください。マウスを使わずに Web ページを閲覧するような感覚です。

Linux の多くのテキストベースのプログラムでも、同じようなキーボード操作を使います。ターミナルのインターフェース内で移動、検索、終了を行うことに慣れると、さまざまなツールを安心して使えるようになります。

ファイル内を検索する

特定の単語を探している場合、スクロールだけでは時間がかかります。

less には、Ctrl+F のような検索機能が組み込まれています。

  1. /(スラッシュ)を入力します。画面下部に表示されます。
  2. error と入力し、Enter キー(Enter)を押します。
/error

画面が移動し、最初に一致した箇所が表示されます。

  • 次の一致箇所:n を押すと、次の error へ移動します。
  • 前の一致箇所:N(Shift+n)を押すと、前の一致箇所へ戻ります。

この機能により、大量のテキストを検索可能なデータベースのように扱えます。

pager が現在のシステムでも役立つ理由はここにあります。ターミナル接続でも、読み取り、移動、検索を効率よく組み合わせて実行できます。

pager を終了する

初心者から最もよく聞かれる質問は、「どうやって終了するのですか?」です。

ここでは Ctrl+C は機能しません。Esc も機能しません。

less を終了してコマンドプロンプトに戻るには、次のキーを押します。

q を押します。

ファイルの表示が閉じ、labex:~/project$ というプロンプトに戻ります。

覚えておきましょう:Linux のビューアーでは、通常「q」は Quit(終了)を意味します。

この小さな慣習は頻繁に登場するため、やがて体で覚えられるようになります。q で終了するような、繰り返し登場するキーボード操作を覚えることは、ターミナルベースのプログラムに慣れるための大切な一歩です。

まとめ

これで、Linux のツールセットの中でも特に便利なツールの 1 つである less pager の基本操作を身につけました。

  • 開く:less filename で読み取りを開始します。
  • 移動する:スペースキー(Spacebar)でページを進め、矢印キー(Arrows)で細かく移動します。
  • 検索する:/keyword でテキストを検索し、n で次の一致箇所を探します。
  • 終了する:q で終了します。

これで、扱えないほど大きなファイルはありません。小さなメモでも、ギガバイト単位のサーバーログでも、less を使えば快適に読み取れます。