less 指令
less 指令
非常好用的文件浏览工具,功能强大,vim 是文件编辑工具,less 就是文件浏览工具,需要重点掌握
less
指令用来分屏查看文件内容,它的功能与more
指令类似,但是比more
指令更加强大,支持各种显示终端。less
指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,在显示大型文件的时候比文本编辑器比如 vi 有更高的效率。
跟 more 一样,这个命令的重点是快捷操作,而不是参数选项
|
|
-
-b
: <缓冲区大小> 设置缓冲区的大小 -
-e
:当文件显示结束后,自动离开(到最后一行了,再浏览下一行,自动退出) -
-f
:强迫打开特殊文件,例如外围设备代号、目录和二进制文件 -
-g
:只标志最后搜索的关键词 -
-i
:忽略搜索时的大小写 -
-m
:显示类似more
命令的百分比 -
-N
:显示每行的行号 -
-o
: <文件名> 将less
输出的内容在指定文件中保存起来,感觉这个参数没必要,用管道不就可以了 -
-Q
:不使用警告音 -
-s
:显示连续空行为一行 -
-S
:行过长时间将超出部分舍弃 -
-x
: <数字> 将"tab"键显示为规定的数字空格
常用 -m -N
less
相当于一个浏览工具,可以用于浏览别的命令的执行结果,非常适合和管道配合使用。eg: ps -ef | less
浏览多个文件的时候,用 :n
和 :p
来回切换。n 是 next 的意思,p 是 previous 的意思,
快捷操作
- 全屏导航
-
ctrl + f
:向下移动一屏 -
ctrl + b
:向上移动一屏 -
ctrl + d
:向下移动半屏 -
ctrl + u
:向上移动半屏
以上 4 个都和 Vim 的快捷键相同。而且在less
中,以上快捷键还可以简化为:
-
f:向下翻一页
-
b:向上翻一页
-
空格键:下翻一页
-
d:向后翻半页
-
u:向前滚动半页
- 单行导航
-
ctrl + e
:向下移动一行 -
ctrl + y
:向上移动一行
以上 2 个都和 Vim 的快捷键相同
-
e:向下移动一行
-
y:向上移动一行
-
j:向下移动一行,vim 中 j 是向下移动光标,
-
k:向上移动一行,vim 中 k 是向上移动光标
-
回车键:滚动一行
- 其它导航
-
G:移动到最后一行
-
g:移动到第一行
-
ng:移动到第 n 行
-
q/ZZ: 退出 less 命令
以上 4 个除了 g 回到第一行其他三个都和 Vim 的快捷键相同
- 搜索
-
/
字符串:向下搜索"字符串"的功能 -
?
字符串:向上搜索"字符串"的功能 -
n:重复前一个搜索(与
/
或?
有关) -
N:反向重复前一个搜索(与
/
或?
有关)
以上 4 个都和 Vim 的快捷键相同,less 没有替换功能
5.其它有用的命令
-
v:使用配置的编辑器编辑当前文件,退出编辑器之后回到
less
模式,很好用。 -
h:显示 less 的帮助文档
-
&pattern
:仅显示匹配 pattern 模式的行,而不是整个文件,这跟搜索不一样,搜索只会高亮查询到的东西,其他行还是显示的。再次输入&
,然后回车,退出匹配模式。这里可以使用正则的 ERE 字符集。
- 标记导航
当使用 less
查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:
按下 m,然后再按 a,即使用 a 标记文本的当前位置,然后输入 '
(单引号),再输入 a,导航到标记 a 处
还可以使用别的符号来进行标记,非常方便。
- 读取最新的内容
用less
打开文件之后,再敲击Shift+F
,或者直接用 less +F filename
打开文件,这样less
就会监控文件的修改,Ctrl+c
退出。这一点非常适合查看日志文件。请注意,这仅适用于追加。如果文件被删除或就地编辑,less
则不会显示这些更改。
参考讨论:watch - Is there a way to dynamically refresh the less command? - Unix & Linux Stack Exchange