前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 命令(89)—— less 命令

Linux 命令(89)—— less 命令

作者头像
恋喵大鲤鱼
发布2019-11-12 16:43:49
4.3K0
发布2019-11-12 16:43:49
举报
文章被收录于专栏:C/C++基础C/C++基础

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/K346K346/article/details/102967501

1.命令简介

less 命令是常用的文本文件阅读工具,类似于 more,是加强版的 more 命令。

less 主要用于浏览大文件,加载文件时不会读取整个文件,相比于 vim 或 nano 等文本编辑器,启动会更快。

2.命令格式

代码语言:javascript
复制
ps [OPTIONS] [FILE]...

3.选项说明

使用 less 命令选项需要注意以下几点: (1)长命令选项可以简写,比如 --quit-at-eof 可以写作 --quit,但不能写作 --qui,因为与 --quiet 选项存在二义性; (2)大写的长命令选项与与同名的小写的长命令选项作用不同,–QUIT-AT-EOF 不等于 --quit-at-eof; (3)大写的长命令选项书写时可以只将首字母大写,其余小写,比如 --QUIT-AT-EOF 可以写作 --Quit-at-eof。

代码语言:javascript
复制
-?, --help
	显示帮助信息,等于交互式命令 h
-a, --search-skip-screen
	向前搜索默认从当前屏幕的首行开始,向后搜索默认从当前屏幕的末行开始。该选项使得向前搜索从屏幕末行的下一行开始,向后搜索从当前屏幕首行的前一行开始,即跳过屏幕内容。重复搜索命令 n 或 N 不受该选项影响
-A, --SEARCH-SKIP-SCREEN
	向前搜索跳过屏幕首行到目标行,向后搜索跳过屏幕末行到目标行。重复搜索命令 n 或 N 受该选项影响
-bN, --buffers=N
	设置缓冲区的大小为 N,单位 KB。如果 N 为 -1,表示缓冲区大小没有限制
-B, --auto-buffers
	默认情况下,如果数据是从管道读取,缓存大小按照所需数据大小自动分配,如果管道数据较大,会导致大量内存被占用。-B 选项将关闭缓存的自动分配,采用 64K 或者 -b 选项指定的大小。警告:使用 -B 可能会导致错误的显示,因为只有最近查看的管道数据部分保留在内存中;任何以前的数据都会丢失
-d, --dumb
	如果终端是哑终端(dumb terminal),则抑制错误消息的正常显示
-e, --quit-at-eof
	当 less 第二次到达文件末尾时,自动退出。默认情况需要 q 命令
-E, --QUIT-AT-EOF
	当 less 第已次到达文件末尾时,自动退出。默认情况需要 q 命令
-f, --force
	强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-F, --quit-if-one-screen
	如果文件全部内容可以在一个屏幕内显示,less 自动退出
-g, --hilite-search
	不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度
-G, --HILITE-SEARCH
	不加亮显示搜索到的关键词,当前显示的关键字也不加亮
--old-bot
	恢复到旧的屏幕底部。如果长行在到达终端边界时没有正确换行时可能需要该选项
-hN, --max-back-scroll=N
	指定向后滚动的行数为 N
-i, --ignore-case
	搜索时忽略大小写。如果正则表达式中包含大写字母则不忽略
-I, --IGNORE-CASE
	搜索时忽略大小写。如果正则表达式中包含大写字母也忽略
-jN, --jump-target=n
	指定屏幕中搜索的开始行。N 可以是正数(1 屏幕的第一行,2 屏幕的第二行),也可以是负数(-1 屏幕的倒数第一行,-2 屏幕的倒数第二行),还可以是分数(.5 屏幕的中间行,.3 屏幕的十分之三行)
-kFILE or --lesskey-file=FILE
	将指定的文件作为 lesskey 文件。-k 选项可以出现多次
-K, --quit-on-intr
	使 less 遇到 SIGINT 信号(Ctrl + C)时以状态码 2 立即退出
-L, --no-lessopen
	忽略环境变量 LESSOPEN
-m, --long-prompt
	显示类似 more 命令的百分比
-M, --LONG-PROMPT
	显示类似 more 命令的百分比,此外还显示屏幕内容的行范围
-n, --line-numbers
	不使用行号,以提高效率
-N, --LINE-NUMBERS
	显示行号
-oFILE, --log-file=FILE
	将输入的数据拷贝至指定的文件。一般输入的文件是个管道时使用该选项。如果指定的文件已经存在,则覆盖写入前请求二次确认
-OFILE, --LOG-FILE=FILE
	类似于 -o 选项,不同的是覆盖写入已经存在的文件前不请求二次确认
-pPATTERN or --pattern=PATTERN
	搜索符合指定模式的内容,等同于选项 +/PATTERN
-PPROMPT, --prompt=PROMPT
	更改提示的内容为指定的内容。这个选项通常放在 LESS 环境变量中,而不是出现在命令行选项。该选项必须是 LESS 变量的最后一个选项,或者以美元符号终止。比如 -Ps 后面跟一个字符串会将默认(简短)提示符更改为该字符串。-Pm 改变选项 -m 的提示。-PM 更改 -M 的提示。-Ph 改变帮助内容的提示。-P= 更改由 = 命令打印的消息。-Pw 更改在等待数据时打印的消息(在 F 命令中)
-q, --quiet, --silent
	导致适度的“静音”操作。比如如果试图滚动到文件末尾之后或文件开头之前,则不响终端铃
-Q, --QUIET, --SILENT
	完全静音,终端铃永远不会响
-r, --raw-control-chars
	显示原始的控制字符。比如 ^@ 表示空字符,^A 表示字符SOH(start of headline)。警告:使用该选项后不能保证终端能够正常的显示文件内容,因为终端依赖控制字符来格式化文件内容
-R, --RAW-CONTROL-CHARS
	与 -r 类似,但只有 ANSI颜色转义序列以原始形式输出。与 -r 不同的是,屏幕外观在大多数情况下都得到了正确的维护
-s, --squeeze-blank-lines
	显示连续空行为一行
-S, --chop-long-lines
	显示长行时进行截断(chop)而不是换行(wrap)
-tTAG, --tag=TAG
	指明标签
-TTAGSFILE or --tag-file=TAGSFILE
	指明标签文件
-u, --underline-special
	退格与回车作为可打印字符对待
-U, --UNDERLINE-SPECIAL
	退格与回车作为控制字符对待
-V, --version
	显示版本信息并退出
-w, --hilite-unread
	临时高亮显示下一页的第一个新行
-W, --HILITE-UNREAD
	类似于 -w,但在任何大于一行的向前移动命令之后,临时高亮显示第一个新行
-xN,... or --tabs=N,...
	设置 tab 的位置
-X, --no-init
	禁止向终端发送 termcap 初始化和去初始化字符串。如果删除初始化字符串做了一些不必要的事情,比如清除屏幕,这有时是可取的
-yN, --max-forw-scroll=N
	指定向前滚动的最大行数
-[z]N, --window=N
	指定滚动一屏所能的滚动的行数。如果 N 是负数,表示全屏能够显示的行数减去 N
-"CC, --quotes=CC
	更改文件名引用字符。如果您试图命名一个包含空格和引号字符的文件,这可能是必要的
-~, --tilde
	文件结束后的行通常显示为单个波浪线(~)。此选项使文件结束后的行显示为空行
-#, --shift
	指定要在 RIGHTARROW 和 LEFTARROW 命令中水平滚动的默认位置数。如果指定的数字为零,则将默认位置数设置为屏幕宽度的一半。或者,可以将数字指定为屏幕宽度的分数,以小数点开始:.5是屏幕宽度的一半,.3是屏幕宽度的三分之三,以此类推。如果将数字指定为分数,则在调整终端窗口的大小时将重新计算滚动条位置的实际数量,从而使实际滚动条保持在屏幕宽度的指定分数
--follow-name
	通常,如果在执行 F 命令时重命名输入文件,less 将继续显示原始文件的内容,尽管它的名称发生了更改。如果指定了——following -name,那么在F命令期间less将定期尝试按名称重新打开文件。如果重新打开成功,并且文件与原始文件不同(这意味着创建的新文件与原始文件(现在重命名)同名),less将显示新文件的内容
--no-keypad
	禁止向终端发送键盘初始化和反初始化字符串。如果小键盘字符串使数字小键盘的行为不受欢迎,这有时是有用的
--use-backslash
	这个选项改变了后面选项的解释。在 --use-backslash 选项之后,删除选项字符串中的任何反斜杠,并按字面意思处理后面的字符。这允许在选项字符串中包含美元符号
--
	该选项标识命令行选项的结束,之后的参数被解释为文件名,当在文件名的首字符是 - 或这 + 时需要使用该选项
+
	如果命令行选项以 + 开头,则将该选项的其余部分视为初始命令。比如 +G 表示跳转至文件末尾,+/XYZ 表示跳转至匹配 XYZ 的第一行,+NUM 表示从文件第 NUM 行开始显示;如果选项以 ++ 开头,则初始命令将应用于所查看的每个文件,而不仅仅是第一个文件

实际上,less 的命令行选项很少使用,浏览文件时常用的是交互式命令。

4.交互式命令

以下描述中,^X 表示 control-X,ESC 表示退出键,比如 ESC-v 表示两个字符序列,先是 ESC,然后是 v。如果忘记命令,可以键入 h 或 H 查看命令的帮助信息。

代码语言:javascript
复制
SPACE, ^V, f, ^F
	向前滚动 N 行,N 默认等于窗口大小。可以使用 -z 选项指定 N 的大小,生效多次;也可以在键入前输入数值 N,生效一次
z
	类似于 SPACE。可以使用 -z 选项指定 N 的大小,生效多次;也可以在键入前输入数值 N,生效多次
ESC-SPACE
	先键入 ESC,再键入 SPACE,表示即使到达文件尾部仍然向前滚动一页
ENTER, RETURN, ^N, e, ^E, j, ^J
	向前滚动 N 行,默认为 1。键入前可先输入数值 N,只对当前动作有效
d, ^D
	向前滚动 N 行,默认为屏幕一半。键入前可先输入数值 N,对当前与后续的 d 或 u 命令均有效,生效多次
b, ^B, ESC-v
	向后滚动 N 行,默认为屏幕大小,可以使用 -z 选项指定 N 的大小,生效多次;也可以在键入前输入数值 N,生效一次
w
	类似于 ESC-v。键入前输入数值 N,生效多次
y, ^Y, ^P, k, ^K
	向后滚动 N 行,默认为 1。键入前可先输入数值 N,只对当前动作有效
u, ^U
	向后滚动 N 行,默认为屏幕一半。键入前可先输入数值 N,对当前与后续的 d 或 u 命令均有效,生效多次
ESC-), RIGHTARROW
	向右滚动 N 个字符,N 默认等于屏幕宽度的一半。键入前可先输入数值 N,对当前与后续的 RIGHTARROW 命令均有效,生效多次
ESC-(, LEFTARROW
	向右滚动 N 个字符,N 默认等于屏幕宽度的一半。键入前可先输入数值 N,对当前与后续的 LEFTARROW 命令均有效,生效多次
r, ^R, ^L
	刷新屏幕
R
	刷新屏幕,放弃缓存内容。在文件被修改时有用
F
	向前滚动,即使到达了文章尾部。当文件不断增长时该命令可以查看新增的内容,类似于 tail -f 命令
ESC-F
	与 F 类似,但是一旦找到与最后一个搜索模式匹配的行,就会按下终端铃并停止向前滚动
g, <, ESC-<
	跳转到第 N 行,默认为文件首行。键入前可先输入数值 N,生效一次
G, >, ESC->
	跳转到第 N 行,默认为文件末行。键入前可先输入数值 N,生效一次
p, %
	跳转到文件的位置 N% 处。N 应该在 0 到 100 之间,可能包含一个小数点
P
	跳转到文件中字节偏移为 N 所在的行
{
	如果屏幕的顶行出现左花括号,{ 命令将转到匹配的右花括号。匹配的右花括号将位于屏幕的末行。如果在顶行上有多个左花括号,则可以使用数字 N 来指定该行上的第 N 个括号
}
	如果屏幕的末行出现右花括号,} 命令将转到匹配的左花括号。匹配的左花括号将位于屏幕的顶部。如果在末行上有多个右花括号,则可以使用数字 N 来指定该行上的第 N 个括号
(
	类似 { 命令,但它适用于圆括号而不是花括号
)
	类似 } 命令,但它适用于圆括号而不是花括号
[
	类似 { 命令,但它适用于方括号而不是花括号
]
	类似 } 命令,但它适用于方括号而不是花括号
ESC-^F
	后跟两个字符,作用类似于 {,但分别使用这两个字符作为开括号和闭括号。例如,ESC-^F < > 可用于向前移动到与顶行的 < 匹配的 >
ESC-^B
	后跟两个字符,作用类似于 },但分别使用这两个字符作为开括号和闭括号。例如,ESC-^B < > 可用于向后移动到与末行的 < 匹配的 <
m
	后跟任意小写字母,用该字母标记当前位置
'
	(单引号)。后跟任何小写字母,返回到先前用该字母标记的位置。后跟另一个单引号,返回执行最后一个移动命令的位置。后面跟着 ^ 或 $,分别跳转到文件的开头和结尾。在检查新文件时,将保留标记,因此 ' 命令可用于在输入文件之间切换
^X^X
	等于 ' 命令
/PATTERN
	在文件中向前搜索包含指定模式的第 N 行,N 默认为 1。在 PATTERN 前输入指定特殊字符可以控制搜索的行为。主要有:
	^N 或 ! 搜索不包含 PATTERN 的行
	^E 或 * 搜索多个文件。如果当前文件没有匹配的行,搜索 less 命令行指定的下一个文件
	^F 或 @ 命令行列表中第一个文件的第一行开始搜索,不管当前屏幕上显示的是什么,也不管-a或-j选项的设置是什么
	^K 突出显示与当前屏幕上的模式匹配的任何文本,但不要移动到第一个匹配项(保持当前位置)
	^R 不要解释正则表达式元字符;也就是说,做一个简单的文本比较
?PATTERN
	在文件中向后搜索包含模式的第 N 行,N 默认为 1。搜索从紧接顶部一行之前的那一行开始。在 PATTERN 前输入指定特殊字符可以控制搜索的行为。主要有:
	^N 或 ! 搜索不包含 PATTERN 的行
	^E 或 * 搜索多个文件。如果搜索到达当前文件的开头,但没有找到匹配项,那么搜索将继续在命令行列表中的前一个文件中进行
	^F 或 @ 从命令行列表中最后一个文件的最后一行开始搜索,不管当前屏幕上显示的是什么,也不管 -a 或 -j 选项的设置是什么
	^K  等于前向搜索
	^R  等于前向搜索
ESC-/PATTERN
	等于 /*
ESC-?PATTERN
	等于 ?*
n
	跳转到下一个匹配项
N
	跳转到前一个匹配项
&pattern
	只显示符合模式的行,与模式不匹配的行将不显示
:e [filename]
	打开另一个文件
^X^V, E
	等同于 :e
:n
	检查下 N 个文件(从命令行中给定的文件列表);N 默认为 1,可以在键入命令前输入 N
:p
	检查前 N 个文件(从命令行中给定的文件列表);N 默认为 1,可以在键入命令前输入 N
:x
	检查第 N 个文件(从命令行中给定的文件列表);N 默认为 1,可以在键入命令前输入 N
:d
	从文件列表中删除当前文件
t
	跳到下一个标签
T
	跳到上一个标签
=, ^G, :f
	打印有关正在查看的文件的一些信息,包括它的名称、行号和显示底线的字节偏移量。如果可能的话,打印文件的长度、文件中的行数和最后显示行至首行占文件的百分比
-
	后跟命令行选项字母,这将更改该选项的设置并打印一条描述新设置的消息
--
	类似于命令 -,但是后跟长选项的名称
-+
	后面跟着一个命令行选项字母,这将把选项重置为默认设置,并打印一条描述新设置的消息
--+
	类似于命令 -+,但是后跟长选项的名称
-!
	后面跟着一个命令行选项字母,这将把选项重置为其默认设置的“反面”,并打印一条描述新设置的消息。这不适用于数值或字符串值选项
--!
	类似于命令 -!,但是后跟长选项的名称
_
	下划线,后跟命令行选项字母后,将打印一条描述该选项当前设置的消息。选项的设置没有改变
__
	两个下划线,类似于命令 _,但是后跟长选项的名称
+CMD
	使指定的命令 CMD 在每次检查新文件时执行
V
	显示 less 的版本号
q, Q, :q, :Q, ZZ
	退出
v
	启动编辑器编辑当前文件,默认为 vim。可通过环境变量 VISUAL 或 EDITOR 指定
! shell-command
	执行 Shell 命令
| <m> shell-command
	将当前屏幕的第一行到 <m> 指定的位置作为管道的内容传送给 Shell 命令。m 可以是 ^(文件开始位置)、$(文件结束位置)、点号 . 或换行(当前屏幕的内容)
s FILENAME
	将输入保存到文件中。这只在输入是管道而不是普通文件时才有效

如此繁多的交互式命令,常用的并不多,符合二八定律,记住下面这些命令足以应对日常浏览需求。

代码语言:javascript
复制
ENTER 向前滚动一行
y 向后滚动一行

d 向前滚动半屏
u 向后滚动半屏

f 向前滚动一屏
b 向后滚动一屏

g 跳转到文件首行
G 跳转到文件末行

/PATTERN 向前搜索指定内容
n 跳转到下一个匹配项
N 跳转到前一个匹配项

h 显示帮助信息
q 退出

注意,如果环境变量 LESSSECURE 设置为 1,表示 less 运行在安全模式下,某些特性无法使用:

代码语言:javascript
复制
! 执行 Shell 命令
| 管道命令
:e 打开新文件命令
v 编辑命令
s 保存命令
-k 使用 lesskey 文件
文件名中包含星号
文件名自动补全

5.常用示例

(1)查看文件,同时显示行号。

代码语言:javascript
复制
less -N /etc/passwd

1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/sbin/nologin
3 daemon:x:2:2:daemon:/sbin:/sbin/nologin
...

(2)执行命令,然后分页显示。

代码语言:javascript
复制
ps -ef | less -N

(3)浏览多个文件。

代码语言:javascript
复制
less a.txt b.txt

在浏览 a.txt 时,输入 :n 后,切换到 b.txt,输入 :p 后,切换回 a.txt。也可以使用 :e 命令打开另一个文件。

(4)查看 less 帮助信息。

代码语言:javascript
复制
less -?

参考文献

[1] less manual [2]【Linux】一步一步学Linux——less命令(40)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.命令简介
  • 2.命令格式
  • 3.选项说明
  • 4.交互式命令
  • 5.常用示例
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档