連載
» 2017年02月09日 05時00分 UPDATE

Linux基本コマンドTips(84):【 less 】コマンド(基本編)――メッセージやテキストファイルを1画面ずつ表示する

本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、「less」コマンドです。

[西村めぐみ,@IT]
「Linux基本コマンドTips」のインデックス

Linux基本コマンドTips一覧

 本連載では、Linuxの基本的なコマンドについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、メッセージやテキストファイルを1画面ずつ表示する「less」コマンドです。

lessコマンドとは?

 「less」は、テキストファイルを1画面ずつ表示するコマンドです。「less ファイル名」で実行する他、「コマンド | less」のように、別のコマンドの実行結果を1画面ずつ表示する場合にも使われます。

 [Enter]キーで1行、スペースキーで1画面先に進める他、上下矢印キーによるスクロールも可能です。表示を終了するには[Q]または[q]キーを入力します。

 同じ用途のコマンドに「more」があります(本連載第2回)。lessコマンドはmoreコマンドよりも機能が多く、画面内で検索したり、上にスクロールしたりすることが可能です。



lessコマンドの書式

less [オプション] ファイル名

コマンド | less [オプション]

※[ ]は省略可能な引数を示しています




lessコマンドの主なオプション

 lessコマンドの主なオプションは次の通りです。

●通常のオプション
短いオプション 長いオプション 意味
+行数,-行数 指定した行から表示する
+/文字列 指定文字列を検索し、見つけた行から表示する(正規表現によるパターン指定が可能)
-p文字列 --pattern=文字列 指定文字列を検索し、見つけた行から表示する(正規表現によるパターン指定が可能)
-oファイル --log-file=ファイル パイプ(|)などで標準入力から入力した内容を表示する際、指定したファイルにコピーを保存する。既存ファイルを指定した場合は、上書きするか、追加するかを確認するメッセージが表示される
-Oファイル --LOG-FILE=ファイル 「-o」と同じだが、既存ファイルを指定した場合は、確認せずに上書きする
-kファイル名 --lesskey-file=ファイル名 lesskeyファイル(キー定義ファイル、「lesskey」コマンドで生成)を指定する
-L --no-lessopen 環境変数LESSOPEN(lessコマンド用のオプションを定義した環境変数)を無視する

●スクロール、表示方法関係のオプション
短いオプション 長いオプション 意味
-s --squeeze-blank-lines 連続した空行を1行にする
-S --chop-long-lines 画面幅より長い行を折り返さない
-# --shift 水平方向にスクロールする際のデフォルトの移動桁数(「0」にするとデフォルト値が画面幅の半分になる)
-数、-z数 --window=数 スクロールするウィンドウの大きさを指定する(1画面より小さくする際は負の数で行数を指定。例えば、ウィンドウが24行で「-z-4」とした場合は、20行でスクロールする)
-q --quiet、--silent ファイル末尾まで表示したときのビープ音を鳴らさない(入力コマンドエラー時は鳴らす)
-Q --QUIET、--SILENT 「-q」のときも含め、ビープ音を一切鳴らさない
-e --quit-at-eof ファイルの末尾に2回達したら表示を終了する(実行例4を参照)
-E --QUIT-AT-EOF ファイルの末尾に到達したら表示を終了する
-F --quit-if-one-screen 1画面で表示できる場合はすぐに終了する
-K --quit-on-intr [Ctrl]+[C]キーで終了する
-n --line-numbers 行番号を表示しない
-N --LINE-NUMBERS 行番号を表示する
-J --status-column 画面の左にステータス行を表示する(例えば、検索時に該当する行に「*」記号が表示される)
-m --long-prompt moreコマンド同様、プロンプトに現在の表示位置をパーセントで表示する
-M --LONG-PROMPT 「-m」より詳細なプロンプトを表示する
-f --force 通常のファイル以外も強制的に表示する
-r --raw-control-chars 制御文字をそのまま表示する(デフォルトでは「^A」のようにキャレット記号を使って表示する)
-R --RAW-CONTROL-CHARS 「-r」と同様だが、可能な限り画面表示を正しく維持する
-XXX --mark-wrong-char 表示できない誤った文字を表示する際にマーク文字(〓)を使用する(デフォルトではバイナリとして表示)
-u --underline-special バックスペースとキャリッジリターンを印刷可能文字として扱う
-U --UNDERLINE-SPECIAL バックスペース、タブ、キャリッジリターンを制御文字として扱う(「-u」「-U」ともに指定していない場合は、これらの文字を使って重ね打ちによる太字や下線を表示する)
-x数,… --tabs=数,… タブストップの位置を設定する。「-x4」の場合4の倍数、「-x9,17」は「9,17,25,33…」となる(デフォルトは8)
-~ --tilde ファイル末尾以降のチルダ記号(~)を表示しない

●検索関係のオプション
短いオプション 長いオプション 意味
-i --ignore-case 検索時に大小文字を区別しない(ただし、検索文字列に大文字を使用した場合は大小文字を区別する)
-I --IGNORE-CASE 検索時、常に大小文字を区別しない
-a --search-skip-screen 画面に表示されている次の行以降を検索する(デフォルトは画面内の2行目以降、または最後の検索対象が見つかった行以降を検索する)
-g --hilite-search 検索時、最初に見つけた分だけをハイライト表示する(デフォルトでは見つけた箇所を全てハイライト表示)
-G --HILITE-SEARCH 検索時のハイライト表示をしない
-w --hilite-unread 画面単位でスクロールした際、新しく表示された行の先頭部分をハイライト表示する
-W --HILITE-UNREAD 新しく表示された行の先頭部分を常にハイライト表示する
-tタグ --tag=タグ タグを定義する(タグはソースコードで定義箇所にジャンプしたりする際に使用する)
-Tタグファイル --tag-file=タグファイル タグのリストが書かれたファイルを指定する(タグファイルは「ctags」コマンドで生成)

●lessで表示している際の主なキー操作
キー操作 内容
※「^v」は[Ctrl]キーを押しながら[v]、[esc-v]は[ESC]キーを押してから[v]
h/H ヘルプを表示(less画面と同様、[Enter]キーで1行、スペースキーで1画面先に進み[q]で終了する)
q/:q/Q/:Q/ZZ 終了する(「:q」は[:]キーを押してから[q]キー)
e/^E/j/^N/return 1行進む(コマンドに続いて数字を入力すると指定行数分進む)
y/^Y/k/^K/^P 1行戻る(コマンドに続いて数字を入力すると指定行数分進む)
f/^F/^V/space/esc-space 1画面進む([esc-space]の場合データの末尾で止まらない)
F 1画面進み、末尾まで表示しても終了せずにファイルを監視する(「tail -f」同様、データが追加され続けるログファイルなどに使用する)
b/^B/esc-v 1画面戻る
d/^D 半画面分進む
u/^U 半画面分戻る
esc-)/右矢印 半画面分右を表示する
esc-(/左矢印 半画面分左を表示する
g/</esc-< 先頭行に移動する(コマンドに続いて数字を指定すると指定した行へ移動する)
G/>/esc-> 最終行に移動する(コマンドに続いて数字を指定すると指定した行へ移動する)
v 表示中のファイルを「vi」コマンドで編集する(使用するエディタは、環境変数VISUALまたはEDITORで変更可能)
!コマンド シェルでコマンドを実行する(シェルは環境変数SHELLで変更可能)

●lessで表示している際の主なキー操作(検索関係)
キー操作 内容
/ 検索する(「/」続いて検索パターンを入力する)
? 後ろ方向に検索する(「?」に続いて検索パターンを入力する)
n 次を検索する(「n」に続いて数字を入力すると指定回数分先に進む)
N 逆順に次を検索する(「N」に続いて数字を入力すると指定回数分先に進む)
esc-u 検索結果の反転/反転解除を切り替える
& 検索パターンにあっている行だけを表示する(「&」に続いて検索パターンを入力する)



テキストを1画面ずつ表示する

 「less ファイル名」で、指定したファイルを1画面ずつ表示します。次の画面へ進みたい場合はスペースキー、1行ずつ進めたい場合は[Enter]キーを押します。上下の矢印キーや、[y]または[e]キー、[j]または[k]キーで上下にスクロールすることも可能です。[q]キーを押すと終了します。

コマンド実行例

less ファイル名

(指定したファイルの内容を1画面ずつ表示する)(画面1


画面1 画面1 「less /etc/bashrc」で「/etc/bashrc」を表示した


キー操作のヘルプを表示する

 lessコマンドで画面を表示中に[h]キーを押すと、キー操作のヘルプが表示されます(画面2)。ヘルプの表示中でもlessコマンドと同様に、上下のスクロールや検索などの操作が可能です。

画面2 画面2 lessコマンド実行中に[h]キーを押すと、キー操作のヘルプが表示される

 [q]キーを押すとヘルプの表示を終了し、元の画面に戻ります。



長い行を折り返さずに表示する

 lessコマンドでは、画面の横幅より長い行は折り返して表示されます。折り返さずに表示したい場合は、「-S」オプションを使用します。

 左右の矢印キーまたは、[ESC]キーに続いて[(]および[)]キーを押すと、左右に半画面分スクロールします。横スクロールの幅は「-#」オプションで指定できます。

コマンド実行例

less -S ファイル名

(長い行を折り返さずに表示する)(画面3


画面3 画面3 「less -S /etc/bashrc」で「/etc/bashrc」を表示。画面下部の「PROMPT_COMMAND」付近が折り返されていないことが分かる


ファイルの末尾まで表示したらすぐに終了する

 lessコマンドは上にスクロールできることもあり、ファイルの末尾まで表示した場合もそのままキー入力を待ちます。

 moreコマンドのようにファイルの末尾まで表示後に終了したい場合は、「-e」または「-E」オプションを指定します。

 「-e」オプションの場合は末尾を2回表示、つまり、末尾を表示した後に[Enter]キーや矢印キーなどでさらに先を表示する操作をすると終了します。「-E」オプションの場合は末尾まで表示するとすぐに終了します。

 lessコマンドは表示が終わると、画面をクリアして元のプロンプトに戻ります。従って、1画面より短いファイルの場合、「-E」オプションではlessコマンドが画面を停止せずに終了するため、表示内容を見ることができません。

 これを防ぐには「-F」オプションを併用します。「-F」は“1画面で表示できる場合にはすぐに終了する”というオプションで、「less -EF」でmoreコマンドと同じように、ファイル末尾まで表示したらすぐに終了することができます。

コマンド実行例

less -e ファイル名

less -EF ファイル名

(ファイル末尾まで表示したらすぐに終了する)(画面4


画面4 画面4 「-EF」オプションを付けると、ファイル末尾まで表示したらすぐに終了する


筆者紹介

西村 めぐみ(にしむら めぐみ)

PC-9801N/PC-386MからのDOSユーザー。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。のち退社し、専業ライターとして活動を開始。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

Focus

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。