这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战
本篇是 linux极简小知识 系列的第44篇,介绍真实有用的linux知识,欢迎阅读查看!
more
和 less
的简要介绍:
-
more 字面意思就是“显示更多”,用于分屏查看文件内容,对于内容太多的文件,可以一屏一屏(一页一页)的显示内容;使用空格(space)前进到下一页;按 b 键就会往回一页显示。more命令启动时就加载整个文件,从前往后读取内容。
-
less 表示 less is more 的含义,是对more命令的增强。more命令查看内容时只能简单的前进后退(仅能使用滚轮后退查看、使用 b 键回退一页),less在more的基础上,增加了上下方向键显示当前屏的上下内容。
Linux里流传着这样一句话:"less is more".
more 分页查看内容命令
more 除了按页查看文件的内容,还支持直接跳转行、搜索等功能。
命令参数
-
+n 从第n行开始显示
-
-n 定义屏幕大小为n行
-
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-
-c 从顶部清屏,然后显示
-
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-
-l 忽略Ctrl+l(换页)字符
-
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-
-s 把连续的多个空行显示为一行
-
-u 把文件内容中的下画线去掉
常用操作命令或按键
-
Enter 向下n行,需要定义。默认为1行
-
Ctrl + f 向下滚动一屏
-
空格键 向下滚动一屏
-
Ctrl + b 返回上一屏
-
= 输出当前行的行号
-
: + f 输出文件名和当前行的行号
-
v 调用vi编辑器(小写的字母 v 键)
-
!命令 调用Shell,并执行“命令”。
-
q 退出more
more 命令使用
- 查看 my.txt 第一屏内容。
$ more my.txt
line-1
line-2
line-3
......省略
lillne-21
line-22
line-23
--More--(5%)
- 显示从第 6 行开始的内容
$ more +6 my.txt
line-6
line-7
line-8
line-9
......
- 设置每页显示 5 行
$ more -5 my.txt
line-1
line-2
line-3
line-4
line-5
--More--(1%)
- 从文件中查找第一个出现"10"字符串的行,并从该处前两行开始显示输出。
$ more +/10 my.txt
...skipping
line-8
line-9
line-10
line-11
line-12
line-13
......
- more接受管道输入显示内容
$ cat my.txt | more -5
line-1
line-2
line-3
line-4
line-5
--More--
less 指令
less 同样用于分页显示文件内容。但less的用法比more更强大更灵活更有弹性。
less 可以使用上下方向键( [pageup] [pagedown])往前往后翻看文件,还可以实现向下搜和向上搜的搜索。
less查看时不会加载整个文件。
选项参数或命令
选项说明
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
查看过程中的操作指令
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
v 调用vi编辑器(小写的字母 v 键)
&pattern - 仅显示匹配模式的行,而不是整个文件
less 打开文件后,输入
&
后变为&/
,然后输入要匹配的内容,回车就会显示所有匹配的行如
&/10
回车后显示如下:line-10 line-100 line-101 line-102 line-103 line-104 line-105 line-106 line-107 line-108 line-109 line-110 line-210 line-310 ~ ~ ~ ~ ~ ~ ~ ~ ~ & (END)
其他操作命令和按键
- 全屏导航
ctrl + f - 向前移动一屏
ctrl + b - 向后移动一屏
ctrl + d - 向前移动半屏
ctrl + u - 向后移动半屏
- 单行导航
j - 向前移动一行
k - 向后移动一行
- 其它导航
G - 移动到最后一行
g - 移动到第一行
q / ZZ - 退出 less 命令
查找
more, less 都具备查找功能,按/ 然后输入要找的字串,再按 Enter 即可,按 n(next) 会继续找,大写的 N 则是往回(上)找,按 q(quit)或者ZZ离开。
less 使用示例
- ps查看进程信息并通过less分页显示同时显示行号
$ ps -ef|less -N
1 UID PID PPID C STIME TTY TIME CMD
2 root 1 0 0 Oct07 ? 00:02:55 /usr/lib/systemd/systemd 2 --switched-root --system --deserialize 22
3 root 2 0 0 Oct07 ? 00:00:00 [kthreadd]
......省略
16 root 18 2 0 Oct07 ? 00:00:00 [bioset]
17 root 19 2 0 Oct07 ? 00:00:00 [bioset]
18 root 20 2 0 Oct07 ? 00:00:00 [bioset]
:
- 浏览多个文件
$ less my.txt my1.txt
line-1
line-2
line-3
......省略
lillne-21
line-22
line-23
my.txt (file 1 of 2)
此时:
输入 :n
后,切换到下一个文件 my1.txt。
输入 :p
后,切换到上一个文件 my.txt。
- 当正在浏览一个文件时,也可以使用
:e
命令 打开另一个文件。
$ less my.txt
......
line-22
line-23
:e
输入 :e
后,变为 Examine:
:
line-22
line-23
Examine: my1.txt
回车就可以查看 my1.txt。
more 和 less的区别小总结
总结下more 和 less的区别:
- less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示。
- less不必读整个文件,加载速度会比more更快。
- less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容
参考
主要参考自Linux中more和less命令用法及其他资料,结合实际测试和使用。