Infra Engineer

ページング処理 ~moreコマンド・lessコマンド~
2021.10.06
Lv1

ページング処理 ~moreコマンド・lessコマンド~

本記事の対象者

LPIC level1習得を目指す初学者の方
コマンドの基本的な用途について、要点を絞って解説します。


今回の内容

今回は、moreコマンドとlessコマンドについて解説します。

・moreコマンド
・lessコマンド
まとめ
確認問題

moreコマンド

moreコマンドは、「ページャ」と呼ばれるプログラムの一種で、一画面に収まりきらない量の出力をページングしてくれるコマンドです。
例として、/etc/passwdをcatコマンドとmoreコマンドで出力した結果を以下に示します。

① catコマンドで出力

② moreコマンドで出力

/etc/passwdの内容は、画面1ページに収まりきらない量となっています。catコマンドで出力した場合、最終行付近は確認がとれますが、出力の前半部分は流れてしまって確認がとれません。(※ Linuxの標準コンソールの場合。使用しているツールによっては、上部にスクロールすることで確認ができます。)
一方で、moreコマンドを使用した場合、ファイルの先頭から出力を行ってくれています。
一度出力した後は、Enterキーで一行送り、Spaceキーで一ページ送りが行えます。以下にページング中に使用できる操作を示します。

moreコマンド中の操作
Enter 一行送り
Space 一ページ送り
Ctrl + f 一ページ送り
Ctrl + b 一ページ戻り
/文字列 文字列のところまでスキップ(検索機能)

行送り、ページ送りのほか、特定の文字列が含まれる行までスキップする機能もついています。

lessコマンド

lessコマンドもmoreコマンド同様、ページング処理を行うページャとなります。基本的な処理や操作方法はmoreコマンドと同様です。ここでは、moreとlessの違いに焦点を絞ってみましょう。
以下はlessコマンドで/etc/passwdを出力した例となります。

① 出力途中

② 最終行まで出力

違いとしては、
・出力途中のパーセント表示がない
・最終行まで出力してもプロンプトが返ってこない

の2点が挙げられます。
個人的な意見にはなりますが、この「・最終行まで出力してもプロンプトが返ってこない」という点で、lessコマンドのほうが使い勝手がよく感じます。
最終行まで確認して、もう一度前のページに戻りたいというケースはよくあります。moreコマンドではもう一度コマンドを実行しなければならないのに対して、lessコマンドでは↑キーやCtrl+bでそのまま確認がとれます。とはいえ、軽微な違いなのでどちらか好きなほうを使用してください。
lessコマンドの表示を終了するには、「q」キーを押下します。

まとめ

今回は、出力結果をページング処理するコマンド「more」と「less」についてでした。
結論としては、どちらを使用してもそこまで変わりはないため、実際に使用する際には使いやすいほうを選定していただいて問題はないかと思います。
また、ファイルの内容を確認後に書き換える可能性がある際には、viエディタを使用することのほうが多いと思います。

確認問題

問題

ファイルの内容を標準出力する際にページングを行い、単語検索を可能にするコマンドは次のうちどれか。

A) less
B) fmt
C) pr
D) page

解答・解説
答え:A

A) ⇒ 正解です。
B) ⇒ 標準出力を整形する際に使用するコマンドです。
C) ⇒ 標準出力にページをつける際に使用するコマンドです。単語の検索は行えません。
D) ⇒ コマンドが存在しません。