これは2012年頃の社内勉強会(?)で使った記事

基本操作

  • less はテキストファイルを読むためのコマンド

  • 操作にかかるタイプ数がとても少ない

  • man とか git log でも使われてる

  • PAGER という環境変数でよく使われる

キー動作
j, k1行分スクロール
b, SPACE1画面分スクロール
/続くパターンで検索(正規表現)
?続くパターンで逆向きに検索
n次を検索
N前を検索
&続くパターンとマッチする行だけ表示

行に関する操作

キー動作
g, Gファイルの先頭/末尾に移動
<N>g<N>行目に移動
-N行番号表示/隠す
=現在行の情報を色々表示

起動オプション

端末制御文字というのは、ANSI Escape Code というやつ。 解釈すると、文字色がついたり下線がついたりして、みやすくなる。 これを解釈しない場合は \x\x1b[1;31m のような意味不明な文字になる。

起動オプションとして使うこともできるが、下記コマンドで起動中に切り替える事もできる。

キー動作
-R (--Raw-control-chars)端末制御文字を有効/無効
-S (--Chop-long-lines)長い行を折り返し/折り返さない
-I (--Ignore-case)検索時に大文字小文字を気にしない/気にする
Ftail -f と同じ効果

複数のファイルをまとめて開く

よくあるのはローテーションしているログファイルが log/ 配下に複数個有るという状況。 これをまとめて開くには下のようにする。

less log/*.log

画面上に表示されるのは1個のファイルだけなので下記のコマンドを使ってファイル間を行き来する。

キー動作
:eファイルを開く
:n次のファイル
:p前のファイル
ESC-n, ESC-N続けて検索(検索対象に前後のファイルを含める)

LESS 環境変数

LESS という名前の環境変数にデフォルトオプションをつけることができる。

例:デフォルトで行番号&端末制御文字を有効にする

export LESS="-NR"

キーのカスタマイズ

コマンド lesskey を使うと、less の操作をカスタマイズできる。 たぶん必要ない。

例:h, l で横スクロールできるようにする

echo "h left-scroll" >> less.conf
echo "l right-scroll" >> less.conf
lesskey lesskey.conf

lesskey が生成した .less をホームディレクトリに置くと有効になる