less是Linux上查看文件内容的工具,功能比more更强大,支持page up和page down,more只能往后查看,不能往前走。另外less有搜索功能,可以向前、向后搜索。
截图less的man文档中的一句话,Also, less does not have to read the entire input file before starting, so with large input files it starts up faster than text editors like vi . 也就是说,less启动时不会加载整个文档,所以对于大文件来说,less的启动速度是要比vi更快的。
less命令是一个交互式的软件,所以less的命令参数选项包含了启动时参数选项和交互式选项,启动参数选项控制软件的运行前行为,交互式参数选项控制启动之后的行为。
less命令基本命令格式为
less [options] filename1,filename2...
- 启动时参数选项
- -b <缓冲区大小> 指定缓冲区的大小
- -e 当文件显示结束后,自动离开
- -f 强制打开特殊文件,例如外围设备代号、目录和二进制文件
- -g 只标志最后搜索的关键词
- -i 忽略搜索时的大小写
- -m 显示类似more命令的百分比
- -N 显示每行的行号
- -o <文件名> 将less 输出的内容在指定文件中保存起来
- -Q 不使用警告音
- -s 显示连续空行为一行
- -S 行过长时间将超出部分舍弃
- -x <数字> 将“tab”键显示为规定的数字空格
- 交互式参数选项
命令内查看帮助
- h 显示帮助界面
- Q 退出less 命令
搜索功能
- /字符串:向下搜索“字符串”的功能
- ?字符串:向上搜索“字符串”的功能
- n:重复前一个搜索,如果是/的话,就是继续向下搜索,如果是?的话,就向上搜索
- N:反向重复前一个搜索,如果是/的话,就是继续向上搜索,如果是?的话,就向下搜索
- &字符串:仅仅显示匹配上的行
翻页
- b 向上翻一页
- d 向下翻半页
- u 向上滚动半页
- y 向上滚动一行
- 空格键 向下一行
- 回车键 向下一页
- [pagedown]: 向下翻动一页
- [pageup]: 向上翻动一页
- Ctrl + F:向下翻页
- Ctrl + B :向上翻页
- Ctrl + D :向下移动半屏
- Ctrl + U : 向上移动半屏
- G:移动到最后一行
- g:移动到第一行
注:向下:是往下走,往页码大的地方走
多个文件打开及文件间操作
less的下方会显示当前文件和下一个文件的文件名
- 打开多文件的方式
- less file1 file2 file3 ...可以打开多个文件
- :e:已经运行了less命令,想要打开另外一个文件,可以使用:e进行打开,支持tab补全,支持glob通配
vim也有相同的两种方式,已经运行vim的情况下需要使用:open file_name,这没有less好用,1.不支持tab键补全;2.不支持glob通配
- 多文件间切换
- 键入 :n:切换到下一个文件,这个和vim一样(vim使用:bn)
- 键入 :p:切换到上一个文件,这个和vim一样(vim使用:bp)
- 使用less编辑文件
v :在运行的less界面上,使用v选项,会调用系统默认的编辑器(一般来说是vi,但是具体怎么查看就还是个问题???????EDITOR和VISUAL可能有用,但是查询出来没有值,再有是set -o,本机上的set -o中 vi off。)当进入键入v之后,确实和vi的使用方式是一样的,输入i进入INSERT模式,使用q!,qw等命令都可以。- 设置标签
- 设置标签,在less界面键入m,然后页面上会出现mark的字样,输入当个字符(多个字符和数字都不行),页面上的mark字样消失。
- 返回标签处,在less界面键入‘,页面出现"goto mark"的字样,输入刚刚设定的标签,就返回到刚刚的页面处。
这个功能在大文件查看是非常好用!
$ps -ef|less
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 May08 ? 00:00:03 /sbin/init
root 2 0 0 May08 ? 00:00:00 [kthreadd]
root 3 2 0 May08 ? 00:00:03 [migration/0]
root 4 2 0 May08 ? 00:00:13 [ksoftirqd/0]
root 5 2 0 May08 ? 00:00:00 [stopper/0]
:
# 这样就可以慢慢查看每个进程的id号了,这其实不是经常用,毕竟要浏览所有进程的需求并不多,主要是为了满足单个屏幕无法容下所有内容,而且需要前后翻页的情况。
网络上有人说在交互式命令中使用F选项,可以达到文件尾部,但是实验上来看,可以是可以,不过less会有一个计算该文件的行数的过程,我的实验数据是1221049行,个人笔记本的虚拟机,到文件尾部大概花了10秒左右,看起来还不错。但是tail -f file_name是秒出的。
另外如果使用F进入“Waiting for data..”这个模式后,使用Ctrl + c退出,不会立即退出less,可以继续做其他操作
G:可以直接跳到文件尾部,无论是F还是G对系统的资源占用都没有那么大(实验数据量是308M,但是考虑到机器本身也没那么好,所以less的性能还是相当不错了),同样的机器,我使用vim打开该文件,top下的wa%等值都有一定飙升的现象。
https://www.cnblogs.com/peida/archive/2012/11/05/2754477.html
https://www.cnblogs.com/molao-doing/articles/6541455.html
原文:https://www.cnblogs.com/dingcx/p/12873395.html