less コマンド 2014/01/26
テキストファイルの中身をターミナル上でスクロールしながら閲覧できるコマンド。表示中はスペースで下にスクロール、b
で上にスクロールできる。
オプション 2017/01/28
-F
- 行数が短くて位置画面に収まる場合は less がすぐに終了する。
--help
- ヘルプ表示
-i
- 検索モードでキーワードをすべて小文字で入力した場合に、大文字小文字の区別をしない。 検索キーワードに大文字が混ざっていた場合にはこのオプションをつけていても大文字小文字を区別する。
-N
- 行番号を表示する。(
cat
でこれに相当するのは-n
) -r
- エスケープシーケンスなどのバイナリをエスケープシーケンスとして解釈せずに、 そのまま出力される。
-R
- 色のエスケープシーケンスをそのとおりに解釈して
色付きで表示する。 色以外のエスケープシーケンスは解釈せず、
そのまま出力される。
ls
は--color
、grep
は--color=always
を付けると 色付きで出力される。 -S
- 長い行を折り返さずに横方向にもページングできるようにする。 各行の左の方だけ見えれば十分な場合にもこのオプションは便利。
--version
- バージョン表示
-X
- less 終了時に画面をクリアしない。
--
というパラメータを渡すとそれ以降のパラメータをオプションではなくファイル名とみなしてくれるので、
-
で始まるファイル名を扱いたい場合に使うとよい。
閲覧中に使える主なキーバインド 2015/05/19
- q
- lessコマンドを終了
- SPACE
- 1画面分下にスクロール
- f
- 1画面分下にスクロール
- b
- 1画面分上にスクロール
- g
- ファイルの先頭に移動
- Shift + <
- ファイルの先頭に移動
- Shift + G
- ファイルの最後に移動
- Shift + >
- ファイルの最後に移動
- Shift + F
- 監視モードに移行 ->
tail -f
みたいにするには - :n
- 次のファイルに移動 -> 複数のファイルをまとめて閲覧するには
- :p
- 前のファイルに移動 -> 複数のファイルをまとめて閲覧するには
HOWTO
色付きのコマンド出力を less で見るには 2015/06/29
less
に -R
を付ければ、色を表すエスケープシーケンスを色として解釈してくれる。
ls
での例
$ ls -alF --color | less -X -R
grep
での例
$ grep -rni --color=always abc . | less -X -R
tail -f
みたいにするには
2015/05/19
less
でファイルを見ているときに Shift+F を押すと、 tail -f
みたいにファイル追記を監視できる。監視モードから通常のモードに移るには Ctrl+C を押す。
+F
というオプションを使って less +F ファイル名
とすると、始めから監視モードになる。このときも Ctrl+C を押すと、普通の less に戻る。
Make ‘less’ behave like ‘tail -f’. | commandlinefu.com
http://www.commandlinefu.com/commands/view/1024/make-less-behave-like-tail-f.
UTF-8のターミナルからEUC-JPなサーバに接続してlessで文字化けしてしまう場合 2013/06/28
less hoge.txt
で日本語が ?
とかに化けてしまい、
nkf -Ew hoge.txt | less
で日本語が [3m<9A>
みたいなコードで表示されてしまう場合、
-r
をつけることでうまく表示できる。
$ nkf -Ew hoge.txt | less -r
たぶん、[3m<9A>
とかはlessコマンドがUTF-8を扱えないために変換しちゃうのだと思う。-r
は文字を解釈せずにそのままスルーするオプションで、端末がUTF-8で動いていれば、結果的にうまく表示できる。
複数のファイルをまとめて less で閲覧するには 2015/05/19
find
コマンドなどのファイル一覧の出力に対して、それらを全部連結して less で閲覧するには
$ find ... -type f | awk '{print "echo " $1 "; cat -n " $1}' | sh | less
とすると、以下のようなイメージで閲覧できる。
a.txt
1 a.txtの1行目
2 a.txtの2行目
3 a.txtの3行目
b.txt
1 b.txtの1行目
2 b.txtの2行目
3 b.txtの3行目
c.txt
1 c.txtの1行目
2 c.txtの2行目
3 c.txtの3行目
cat
コマンドにある -n
オプションは行番号をつけて出力する意味。
特定のディレクトリ直下にあるファイルを閲覧するには (そのディレクトリの中にサブディレクトリが存在しない場合)
$ ls foo/bar/* | awk '{print "echo " $1 "; cat -n " $1}' | sh | less
複数のファイルをくっつけずにless
コマンドの複数ファイルを閲覧できる機能を使うにはパラメータに普通に複数のファイル名を渡す。
$ less a.txt b.txt c.txt
find
コマンドなどの出力結果をこの機能を使って閲覧するにはxargs
コマンドと組み合わせる。
$ find ... -type f | xargs less
この使い方では、less
での閲覧中に:n
を(コロン、nの2キーを順番に)押すと次のファイルに移動する。
:p
を押すと前のファイルに戻る。
表示中に特定の行に素早く移動するには 2014/02/08
1000g
と押すと、1000行目に移動できる。
テキストファイルを素早く閲覧するには 2015/10/11
自分は以下をよく使う。
$ less -X foo.txt
または
$ less -XF foo.txt
-F
を付けると、短いファイルだったときにcat
と同じ挙動になって便利。
行番号を表示するには
閲覧中に grep
のように検索にマッチした部分だけを表示させるには
2017/01/28
$ grep foo.txt -e PATTERN | less
のかわりに
$ less foo.txt
として、 &
を押して、検索キーワードを入力して Enter を押すと、検索にマッチした行だけの表示に変わる。 &
を押して続けて Enter を押せば、全行表示に戻る。
検索にマッチしない行だけを表示(grep -v -e PATTERN
のかわり)させたければ、
&
を押して、 !
を押してから検索キーワード、Enter を押せばよい。