Linuxにおけるlessコマンドの使い方

  • lessコマンドは、moreコマンドのより高度なバージョンであり、テキストファイルのナビゲートと表示のためのより多くの機能を提供します。
  • lessは、テキストファイルのナビゲート、検索、編集のための幅広いオプションとキーストロークを備えており、Linuxユーザーにとって強力なツールとなっています。
  • lessを使って、パイプされた入力を表示して操作することができ、ストリーミングされたテキストデータを便利に表示してナビゲートすることができます。

lessコマンドを使用すると、テキストファイルをページングして、毎回1画面分のテキストを表示できます。一見するとLinuxコマンドの中で最もシンプルなものの1つのように見えますが、lessには見た目以上のものがあります。

lessの歴史

lessプログラムは、1978年にBerkeley Software Distribution Unix(3.0BSD)のバージョン3.0で最初にリリースされたmoreプログラムに基づいています。moreを使用すると、テキストファイルを徐々にページングして、一度に1画面分のテキストを表示できました。

必要は発明の母であり、初期バージョンのmoreではファイルを後方スクロールすることができなかったため、Mark Nudelmanはlessを開発してその特定の問題を克服しました。その作業は1983年に開始され、最初のバージョンは彼が勤務していた会社以外で1985年にリリースされました。2019年10月の時点で、彼はまだlessのメンテナーです。

lessを使用したことがないLinuxユーザーがいるでしょうか?選択したテキストファイルをページングするために使用していなくても、manを使用している可能性があります。

コマンド。そして、manはmanページを表示するために舞台裏でlessを呼び出します。

これは、多くのトリックを秘めたコマンドです。

lessがmoreよりも優れている理由

lessは長年にわたって着実に追加されてきました。膨大な数のコマンドラインオプションとアプリケーション内コマンドキーストロークがあります。lessのマニュアルページとmoreのマニュアルページを簡単に比較すると、lessmoreを完全に凌駕していることがわかります。

moreは、テキストを後方ページングできないという当初の欠陥を克服しましたが、ファイルに対してのみです。パイプされた入力に対して後方ページングすることはできません。lessを使用すると、それを行うことができます。

ファイルのナビゲート、複数のファイルの表示、テキストの検索、ブックマークへのドロップと復帰、パイプされた入力の処理における柔軟性により、lessは圧倒的に優れています。moreの代わりにlessを使用してください。

lessを使ってファイルを読み込む

lessにファイルを読み込むには、コマンドラインでファイルの名前を指定します。

less Dr-Jekyll-and-Mr-Hyde-001.txt

ファイルが読み込まれて表示されます。ファイルの先頭(または「開始」)がターミナルウィンドウに表示されます。マウスのスクロールホイールを使用して、テキストを前後にスクロールできます。

キーボードでは、スペースバーまたはPage Downキーを使用して、テキストを1画面分ずつ前方に移動します。

Page Upキーを押すと、ファイル内を後方に移動します(ファイルの「開始」方向へ)。HomeキーとEndキーを使用すると、それぞれテキストファイルの先頭と末尾に直接移動します。

ファイルの名前は、表示の左下に表示されます。ファイル内を移動し始めると、最下行が消去されます。これは、メッセージを表示したり、コマンドを入力したりするために使用されます。

「q」を押してlessを終了します。

行番号の表示

テキストファイルの行に番号を付けるには、-N(行番号)オプションを使用します。

less -N Dr-Jekyll-and-Mr-Hyde-001.txt

行番号は、ログファイルや標準的な散文で書かれていない他のファイル内の特定の行やセクションにガイドとして役立ちます。

lessでの検索

ファイルのテキストを検索するには、「/」を押してから検索フレーズを入力します。検索は大文字と小文字を区別します。検索フレーズは、表示の最下行に表示されます。「Enter」キーを押して検索を実行します。

この例では、検索語は「Enfield」であり、これは表示の一番下に表示されます。

検索は、現在のページからテキストファイルの最後まで行われます。ファイル全体を検索するには、検索する前にファイルの先頭に移動します。

一致する項目がない場合は、通知されます。一致する項目が見つかった場合、表示は移動して見つかった項目が表示されます。

次の検索結果を見つけるには、「n」を押します。前の検索結果を検索するには、「N」を押します。

ファイル内の現在位置からファイルの先頭に向かって後方検索するには、「?」キーを押して検索語を入力します。次の検索結果を見つけるには、「n」を押します。前の検索結果を検索するには、「N」を押します。

後方検索を行うと、「n」で次の検索結果が見つかるのはファイルの先頭に近い次の結果であり、「N」で前の検索結果が見つかるのはファイルの末尾に近い結果であることに注意してください。言い換えると、「n」と「N」は後方検索を行うと検索方向が逆になります。

検索語でファイルを開く

lessにテキストファイル内を検索して最初の検索結果を見つけるようにするには、-p(パターン)オプションを使用します。そうすると、ファイルの最初のページではなく、検索結果を含むページが表示されます。もちろん、検索結果がファイルの最初のページにある場合は別です。

-pと検索語の間にスペースがないことに注意してください。

less -pEnfield Dr-Jekyll-and-Mr-Hyde-001.txt

ファイルが表示され、最初の検索結果がハイライト表示されます。

lessでのナビゲート:最も便利なキー

これらのキーを使用して、テキストファイルを移動して検索します。

  • 1行進む:下矢印、Enter、e、またはj
  • 1行戻る:上矢印、y、またはk
  • 1ページ進む:スペースバーまたはPage Down
  • 1ページ戻る:Page Upまたはb
  • 右にスクロール:右矢印
  • 左にスクロール:左矢印
  • ファイルの先頭ジャンプ:Homeまたはg
  • ファイルの末尾ジャンプ:EndまたはG
  • 特定のジャンプ:行番号を入力してから「g」を押します。
  • ファイルのパーセンテージジャンプ:パーセンテージを入力してから「p」または「%」を押します。(10進数の値を入力することもできます。たとえば、ファイルの27.2パーセントのポイントにジャンプするには、「27.2」と入力してから「p」または「%」を押します。なぜ10進数を使用したいのでしょうか?正直に言って、わかりません。)
  • 前方に検索:「/」を押して「/Jekyll」のように検索を入力し、Enterを押します。
  • 後方に検索:「?」を押して「/Hyde」のように検索を入力し、Enterを押します。
  • 次の検索結果:n
  • 前の検索結果:N
  • 終了:q

空白行を圧縮する

-s(空白行を圧縮)オプションは、一連の空白行を削除し、1つの空白行に置き換えます。

サンプルファイルには連続した空白行がいくつかあります。less-sオプションを使用するとどうなるかを見てみましょう。

less -s Dr-Jekyll-and-Mr-Hyde-001.txt

すべての間隔が2倍(またはそれ以上)の空白行は、それぞれ1つの空白行に置き換えられました。

複数のファイルを表示する

lessは複数のファイルを開くことができます。ファイル間を行き来できます。lessは各ファイルでの位置を記憶します。

less Dr-Jekyll-and-Mr-Hyde-001.txt Dr-Jekyll-and-Mr-Hyde-002.txt

ファイルが開かれ、最初のファイルが表示されます。どのファイルを見ているか、およびロードされたファイルの数が示されます。これは以下でハイライトされています。

次のファイルを表示するには、「:」を押してから「n」を押します。

表示が変わり、2番目のファイルが表示され、最下行の情報が更新されて、2番目のファイルを表示していることが示されます。これは以下でハイライトされています。

前のファイルに移動するには、「:」と入力してから「p」を押します。

マークを使用する

lessを使用すると、マークをドロップして、マークされた箇所に簡単に戻ることができます。各マークは文字で表されます。最上部に表示されている行にマークをドロップするには、「m」を押してから、「a」など使用する文字を押します。

「m」を押すと、表示の最下行に、文字キーを押すのを待つプロンプトが表示されます。

文字を押すとすぐに、プロンプトが削除されます。

ファイル内の別の場所からでも、アポストロフィ(またはシングルクォート)「'」を押してから、戻りたいマークの文字を押すことで、マークに簡単に戻ることができます。「'」キーを押すと、移動先のマークのプロンプトが表示されます。

戻りたいマークの文字を押すと、テキストファイルのそのセクションが表示されます。

パイプされた入力をlessで使用する

lessは、パイプされたテキストのストリームとしてやってくる情報を、ファイルの場合と同じように簡単に表示できます。

dmesgコマンドは、カーネルリングバッファメッセージを表示します。dmesgからの出力を次のコマンドを使用してlessにパイプできます。

dmesg | less

dmesgからの出力が表示されます。

パイプされた入力を、ファイルの場合と同様にページングして検索できます。最新のメッセージを表示するには、「End」を押してファイルの末尾に移動します。

新しいメッセージが届くと、「End」を押し続けてlessにファイルの末尾を表示させる必要があります。これはあまり便利ではありません。新しいデータが追加されてもlessが常にテキストの末尾を表示するようにするには、+F(前方)オプションを使用します。オプションフラグとして+を使用し、-を使用しないことに注意してください。

dmesg | less +F

+オプションフラグは、lessに、そのコマンドをless内で使用したかのようにオプションを扱うように指示します。したがって、+Fオプションを使用するのを忘れた場合は、less内で「F」を押します。

lessはテキストの末尾を表示し、dmesgからの最新のメッセージを示します。さらに、データの待機中であることを示すメッセージが表示されます。カーネルメッセージがさらに表示されると、常に最新のメッセージが表示されるようにディスプレイがスクロールします。

このモードでは、スクロールやページングはできません。パイプされたテキストの末尾を表示することに専念しています。このモードを終了するには、Ctrl+cを押すと、通常のless対話モードに戻ります。

lessでファイルを編集する

lessでファイルを編集できますが、ある程度だけです。このコマンドではファイルを編集できませんが、ファイルを表示しているときに「v」を入力すると、ファイルはデフォルトのエディタに転送されます。エディタを終了すると、lessに戻ります。

lessでファイルを閲覧中に「v」を押します。

ファイルがデフォルトのエディタに読み込まれます。この場合はnanoです。

エディタを閉じると、lessに戻ります。

まとめ

直感に反するように思えるかもしれませんが、この場合はless>moreです。