Linux 命令(88)—— more 命令
- 2019 年 11 月 12 日
- 筆記
1.命令简介
more 命令是常用的文本文件阅读工具,类似于 cat,不过以一页一页的形式显示,更方便使用者逐页阅读。一般文件过大时使用 more 浏览,文件较小时使用 cat。
more 命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:–More–(XX%),可以使用交互式命令进行交互。最常用交互式的指令有: (1)回车键向下滚动一行; (2)空格键(Space)显示下一页; (3)b 键(back)回显上一页; (4)斜杠 / 后跟待搜索的正则表达式进行查找; (5)h 或 ? 键显示帮助信息; (6)q 或 Q 键退出。
注意,more 命令实际使用过程中会有很多不足之处,使用起来着实揪心,建议使用 less 命令。 (1)无法显示行数; (2)搜索时无法高亮匹配的内容; (3)搜索时从屏幕末行的下一行开始搜索,不搜索屏幕内的内容,使用不便; (4)无法向后跳转至匹配项; (5)无法快速跳转至首行与末行等。
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]