Linux 系统有命令 more 和 less 来在终端查看文件内容,但是,两者有什么区别呢?总的来说,less 比 more 更有效率更快,因为 less 不会立即加载整个文件,而是动态加载,对于比较大的文件可以使用该命令。而 more 命令会一次加载整个文件内容。

more 命令

查看 test.log 文件内容,同时显示剩余内容百分比,可以使用 Enter(一次一行)和 Spacebar(一次一页)来翻页,使用 q 退出查看。此时,文件内容会保留在终端上。

1
2
more test.log
cat -n test.log | more
1
2
# 只显示文件 test.log 的前 5 行
more -5 test.log
1
2
# 从文件 test.log 的第 6 行开始显示,内容铺满整个屏幕,具体看屏幕大小
more +6 test.log

在用命令 more 打开文件后,输入 = 显示当前行号,输入 :f 显示文件名和当前行号。

less 命令

查看 test.log 文件内容,可以使用 Enter(一次一行)和 Spacebar(一次一页)来翻页,另外,也可以使用 pageuppagedown 来上翻页和下翻页,使用 bf 来上翻页和下翻页。使用 q 退出查看。此时,文件内容不会保留在终端上,而是退回命令行。

1
2
less test.log
cat -n test.log | less
1
2
3
# 当查看到最后页面时自动退出,不需要再按 q 键
less -e test.log
less -E test.log
1
2
# 从文件 test.log 的第 6 行开始显示
less +6 test.log
1
2
# 显示文件内容的同时显示行号
less -N test.log
1
2
3
# 显示第一次出现 ssh 的地方在最顶部
# 也可以像 vim 一样,打开文件后输入 "/ssh" 进行搜索
less +/ssh test.log

less 也可以在打开文件后,进行交互查看,如输入/python 查看文件中第一次出现 python 的地方,按下 n 查找下一个,按下 N 查找上一个。 相反地,如输入?python 查看文件中第一次出现 python 的地方,按下 N 查找下一个,按下 n 查找上一个。

对于大文件想要查看最后面的内容,可以在打开文件后使用 G 先跳转到最后一页,然后,使用 bf 来上翻页和下翻页。

其他查看文件的命令

  1. cat,常有参数 cat -n test.log,把内容打印到终端并显示行号;
  2. echo, 常用命令 echo $PATH,用来查看系统环境变量echo "date" >> test.log,向文件中添加新内容;
  3. head,查看文件前 10 行,常用参数 head -n 5 test.log,把前 5 行打印到终端;
  4. tail,查看文件后 10 行,常用参数 tail -n 5 test.log,把后 5 行打印到终端;实时监控文件更新:tail -f test.log,ctrl + c 结束监控。

参考文献

  1. Learn Why ‘less’ is Faster Than ‘more’ Command for Effective File Navigation