less or more?两个有意思的Linux命令
这里要介绍的两个命令就是标题中的less和more,首先先从我认为更好用的less开始介绍吧。
在Linux下使用cat命令查看一些比较长的文件时或者使用其他一些输出信息比较长的命令时,往往会显示超过一页内容的信息,这时候就必须要通过鼠标进行翻页,不是很便利,甚至在某些情况下鼠标滚轮是无效的(比如通过tmate远程访问终端时),这个时候就可以使用less命令。
这里举个例子,如果需要查看计算机的cpu信息,可以使用命令:
cat /proc/cpuinfo
可以看到这个时候的输出内容是非常多的:
当然,如果不想使用鼠标翻页,可以使用vim或vi查看/proc/cpuinfo文件,但是对于非文件输出vim/vi则没有办法解决这个问题,比如history命令可以查看本机的历史命令,这个时候除非将history的输出重定向到文件,否则无法使用vim查看,一个简单的解决方案就是使用less命令,常用的两种使用方法为:
less <文件名>
<命令> | less
这个时候就会出现一个类似vim的编辑界面,可以上下方向键逐行移动信息,也可以通过page down/up逐页查看信息,按下q键则退出查看,非常便利。
除了查看方便以外,less相比较cat还有个优势,就是less命令查看文件时,并不会一次性加载全部文件,这对于查看超长文件时非常有必要,有时候不小心使用cat命令查看一个很长的log文件,光是等log完全输出完就需要十几秒钟,这个时候使用less命令就可以直接从文件头开始查看。
除了常规的使用方法,less带参数运行:
less [参数] <文件名>
<命令> | 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]: 向上翻动一页
而more命令的功能和使用方法和less基本一样,主要的区别是more只能下翻不能上翻,因此绝大多数时候less可以直接替代more命令。