# 1.命令简介
more 是常用的文本文件阅读工具。
more 类似于 cat,不过以一页一页的形式显示,便于逐页阅读。一般文件过大时使用 more 浏览,文件较小时使用 cat。
more 一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:--More--(XX%),可以使用交互式命令进行交互。最常用交互式的指令有:
- 回车键向下滚动一行。
- 空格键(Space)显示下一页。
- b 键(back)回显上一页。
- 斜杠 / 后跟待搜索的正则表达式进行查找。
- h 或 ? 键显示帮助信息。
- q 或 Q 键退出。
注意,more 命令实际使用过程中会有很多不足之处,使用起来着实揪心,建议使用 less 命令。
- 无法显示行数。
- 搜索时无法高亮匹配的内容。
- 搜索时从屏幕末行的下一行开始搜索,不搜索屏幕内的内容,使用不便。
- 无法向后跳转至匹配项。
- 无法快速跳转至首行与末行等。
# 2.命令格式
more [OPTIONS] FILE [...]
# 3.选项说明
-NUM
指定每屏显示的行数为 NUM
-d
在屏幕下方给用户显示提示信息"[Press space to continue, 'q' to quit.]"。当用户按下其非法按键时,显示"[Press 'h' for instructions.]",而不是告警声音
-l
抑制特殊字符换页符(Form Feed)造成的暂停
-f
计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p
不以滚动的方式显示每一页,而是先清除屏幕后再显示内容
-c
与 -p 相似,不同的是先显示内容再清除其他旧的内容
-s
将多个空行压缩成一行显示
-u
不显示文本底部的下划线
+/STRING
从匹配搜索字符串 STRING 所在行的前两行开始显示
+NUM
从文件第 NUM 行开始显示
--help
显示帮助信息并退出
-V, --version
显示版本信息并退出
# 4.交互式命令
more 的交互式命令基于 Vi,有些命令前面可能有一个十进制数,在下面的描述中称为 k。^X 表示 control-X
h, ?
显示交互式命令的帮助摘要
SPACE
显示下一页内容
z
向下滚动 k 行,k 缺省值是当前的屏幕大小。可在键入命令前输入指定数值取代缺省值
RETURN
回车键,向下滚动 k,默认为 1 行。可在键入命令前输入指定数值替代缺省值
d, ^D
向下滚动 k 行,k 缺省值是当前的屏幕大小的一半,可在键入命令前输入指定数值替代缺省值
q, Q, INTERRUPT
退出 more 命令
s
显示下一页文本时跳过 k 行文本,缺省值是 1,可在键入命令前输入指定数值替代缺省值
f
显示下一页文本时跳过 k 屏文本,缺省值是 1,可在键入命令前输入指定数值替代缺省值
b, ^B
向后回显第 k 屏文本,缺省值是 1,可在键入命令前输入指定数值替代缺省值
'
单引号,跳到上一次搜索开始的地方
=
显示当前行号
/PATTERN
从当前屏幕最后一行的下一行开始搜索符合正则表达式的第 k 个文本。k 默认为 1,可在键入命令前输入指定数值替代缺省值
n
跳转到下 k 个匹配的文本,k 默认为 1,可在键入命令前输入指定数值替代缺省值
!command, :!command
在子 Shell 中执行命令 command
v
启动环境变量 VISUAL 定义的文本编译器,如果 VISUAL 未定义则使用 EDITOR,如果 EDITOR 未定义,则使用默认的 /usr/bin/vi,指向当前行
^L
刷新屏幕
:n
跳到后面第 k 个文件,缺省值是 1。可在键入命令前输入指定数值替代缺省值
:p
跳到前面第 k 个文件,缺省值是 1。可在键入命令前输入指定数值替代缺省值
:f
显示当前文件名和行号
.
重复上次命令
# 5.环境变量
more 命令使用的相关环境变量有:
MORE
设置 more 的选项
SHELL
用户使用的 Shell,Linux 系统一般为 /bin/bash
TERM
指定终端类型, more 用它来获取操作屏幕所需的终端特性
VISUAL
用户首选的编辑器,在用户键入 v 命令时使用
EDITOR
如果 VISUAL,则使用 EDITOR
# 6.常用示例
(1)查看文件内容, 按下回车逐行向下浏览。
more /etc/passwd
(2)指定每屏显示行数,使用选项 -NUM,这里指定显示 5 行。
more -5 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
(3)从文件第 NUM 行开始显示,使用选项 +NUM,这里从第 3 行开始显示。
more -5 +3 /etc/passwd
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
(4)从匹配搜索字符串 STRING 的文件位置开始显示。比如从 /etc/passwd 中搜索 adm 所在行的前两行开始显示。
more -5 +/adm /etc/passwd
...skipping
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
(5)与管道组合使用。一个命令输出内容之后,如果内容过多,可以用 more 来分页显示,需要和管道 | 结合起来。
ps -ef | more -5
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 2018 ? 01:56:14 /usr/lib/systemd/systemd --system --deserialize 19
root 2 0 0 2018 ? 00:00:20 [kthreadd]
root 3 2 0 2018 ? 00:00:30 [ksoftirqd/0]
root 5 2 0 2018 ? 00:00:00 [kworker/0:0H]