less 命令可以对文件或其它输出进行分页显示,应该说是 linux 正统查看文件内容的工具,功能强大。less 的用法比起 more 更有弹性。在 more 的时候,我们并没有办法向前面翻,只能往后面看,但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容。除此之外,在 less 里拥有更强大的搜索功能,不止可以向下搜,也可以向上搜。

命令格式

less [options] 文件

命令功能

less 与 more 类似,more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件

命令参数:

-b  缓冲区大小 设置缓冲区的大小
-e  当文件显示结束后,自动离开
-f  强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g  只标志最后搜索的关键词
-i  忽略搜索时的大小写
-m  显示类似 more 命令的百分比
-N  在 less 中显示每行的行号
-o  文件名 将 less 输出的内容在指定文件中保存起来
-Q  不使用警告音
-s  显示连续空行为一行
-S  行过长时间将超出部分舍弃
-x  数字  将“tab”键显示为规定的数字空格

交互命令, less 中的交互命令可以在 less 中直接按下按键来使用:

h H       显示帮助界面
q :q Q :Q ZZ  退出 less 命令

移动,全屏导航

F     	like tail -f 滚动到文件末尾并持续监听文件写入
jk      下 / 上 一行,因为个人习惯了 vim 的 keymap 所以使用 jk,但 less 的移动键有很多个,可以 help 来查看
G       移动到最后一行
g       移动到第一行
f 		向下移动一屏
b 		向上移动一屏
d 		向下移动半屏
u 		向上移动半屏
y       向前滚动一行
空格键 滚动一页
回车键 滚动一行
[pagedown] 向下翻动一页
[pageup]   向上翻动一页

less 命令和 Vim 类似,也可以使用比如 10k,表示向上移动 10 行。

less 内搜索

/       字符串:向下搜索“字符串”的功能
?       字符串:向上搜索“字符串”的功能
n       重复前一个搜索(与 / 或 ? 有关)
N       反向重复前一个搜索(与 / 或 ? 有关)
&pattern    只显示匹配的行

快速跳转

g   <   ESC-<           跳转到第一行
G   >   ESC->           跳转到最后行
''                      跳转到上一个位置

其它交互命令

:e  检视其他文件
v   使用配置的编辑器 ($VISUAL or $EDITOR) 编辑当前文件
V   打印 less 版本
!command    执行 $SHELL 命令
h   显示 less 的帮助文档
&pattern   仅显示匹配模式的行,而不是整个文件

标记导航

当使用 less 查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:

ma   使用 a 标记文本的当前位置
'a   导航到标记 a 处

看到这些交互命令其实应该一点都不陌生,如果使用 Vim 的话,基本都是 Vim 中用到的。

使用实例

查看文件

命令:

less +F /var/log/syslog

ps 查看进程信息并通过 less 分页显示

将其他命令的输出结果分页查看,尤其是当其他命令的输出结果多于一页时。

ps -ef |less

举一反三

apt search nemo | less

查看命令历史使用记录并通过 less 分页显示

history | less

浏览多个文件

同时查看多个文件:

less /var/log/syslog /var/log/mysql/error.log

此时 less 只会显示一个 syslog,此时

  • 输入 :n 后,切换到 mysql/error.log
  • 输入 :p 后,切换到 syslog