网站搜索

了解为什么“less”比“more”命令更快,以实现有效的文件导航


更多是一个*nix命令行,用于在控制台中显示文件的内容。 more 命令的基本用法是针对文件运行该命令,如下所示:

另请阅读:通过示例了解“cat”和“tac”命令之间的区别

学习Linux“更多”命令

# more /var/log/auth.log
Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session closed for user root
Apr 12 11:55:01 tecmint CRON[7159]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session closed for user root
Apr 12 11:55:02 tecmint CRON[7159]: pam_unix(cron:session): session closed for user root
Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session closed for user root
Apr 12 12:05:01 tecmint CRON[7435]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session closed for user root
Apr 12 12:05:02 tecmint CRON[7435]: pam_unix(cron:session): session closed for user root
Apr 12 12:09:01 tecmint CRON[7542]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:09:01 tecmint CRON[7542]: pam_unix(cron:session): session closed for user root
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session closed for user root
....

另一种将 more 命令与其他命令(例如 cat 命令)结合使用(管道)的方法,如下例所示:

cat /var/log/auth.log | more

要逐行浏览文件,请按 Enter 键或按 Spacebar 键一次导航一页,该页面是您当前的终端屏幕大小。要退出命令,只需按q键。

more 命令的一个有用选项是 -number 开关,它允许您设置页面应包含的行数。例如,将 auth.log 文件显示为一页 10 行:

more -10 /var/log/auth.log

此外,您还可以使用 +number 选项显示从特定行号开始的页面,如下所示:

more +14 /var/log/auth.log
Apr 12 12:09:01 tecmint CRON[7542]: pam_unix(cron:session): session closed for user root
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:10:01 tecmint CRON[7577]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:15:01 tecmint CRON[7700]: pam_unix(cron:session): session closed for user root
Apr 12 12:15:01 tecmint CRON[7699]: pam_unix(cron:session): session closed for user root
Apr 12 12:16:01 tecmint mate-screensaver-dialog: gkr-pam: unlocked login keyring
Apr 12 12:17:01 tecmint CRON[7793]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:17:01 tecmint CRON[7793]: pam_unix(cron:session): session closed for user root
Apr 12 12:20:01 tecmint CRON[7905]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:20:01 tecmint CRON[7905]: pam_unix(cron:session): session closed for user root
Apr 12 12:25:01 tecmint CRON[8107]: pam_unix(cron:session): session opened for user root by (
uid=0)
Apr 12 12:25:01 tecmint CRON[8108]: pam_unix(cron:session): session opened for user root by (

学习Linux“less”命令

more类似,less命令允许您查看文件的内容并浏览文件。 moreless 之间的主要区别是 less 命令速度更快,因为它不会立即加载整个文件,并允许使用以下命令在文件中导航:翻页向上/向下键。

In 可以用作针对文件发出的独立命令,也可以与具有多个 Linux 命令的管道一起使用,以缩小屏幕输出范围,从而允许您滚动浏览结果。

less /var/log/auth.log
ls /etc | less

您可以按 Enter 键逐行浏览文件。页面导航可以使用空格键进行处理。页面大小由当前终端屏幕大小表示。要退出命令,请输入 q 键,与更多命令的方式相同。

less 命令的一个有用功能是使用 /word-to-seach 选项。例如,您可以通过交互指定 /sshd 字符串来搜索并匹配日志文件中的所有 sshd 消息。

为了显示以特定行号开头的文件,请使用以下语法:

less +5 /var/log/auth.log

如果您需要使用 less 命令跟踪每行的数量,请使用 -N 选项。

less -N /var/log/daemon.log
      1 Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session opened for user root by (uid=0)
      2 Apr 12 11:50:01 tecmint CRON[6932]: pam_unix(cron:session): session closed for user root
      3 Apr 12 11:55:01 tecmint CRON[7159]: pam_unix(cron:session): session opened for user root by (uid=0)
      4 Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session opened for user root by (uid=0)
      5 Apr 12 11:55:01 tecmint CRON[7160]: pam_unix(cron:session): session closed for user root
      6 Apr 12 11:55:02 tecmint CRON[7159]: pam_unix(cron:session): session closed for user root
      7 Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session opened for user root by (uid=0)
      8 Apr 12 12:00:01 tecmint CRON[7290]: pam_unix(cron:session): session closed for user root
      9 Apr 12 12:05:01 tecmint CRON[7435]: pam_unix(cron:session): session opened for user root by (uid=0)
     10 Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session opened for user root by (uid=0)
     11 Apr 12 12:05:01 tecmint CRON[7436]: pam_unix(cron:session): session closed for user root

默认情况下,退出 less 命令的唯一方法是按 q 键。要更改此行为并在到达文件末尾时自动退出文件,请使用 -e-E 选项:

less -e /var/log/auth.log
less -E /var/log/auth.log

要在模式第一次出现时打开文件,请使用以下语法:

less +/sshd /var/log/auth.log
Apr 12 16:19:39 tecmint sshd[16666]: Accepted password for tecmint from 192.168.0.15 port 41634 ssh2
Apr 12 16:19:39 tecmint sshd[16666]: pam_unix(sshd:session): session opened for user tecmint by (uid=0)
Apr 12 16:19:39 tecmint systemd-logind[954]: New session 1 of user tecmint.
Apr 12 16:19:48 tecmint sshd[16728]: Received disconnect from 192.168.0.15: 11: disconnected by user
Apr 12 16:19:48 tecmint sshd[16666]: pam_unix(sshd:session): session closed for user tecmint
Apr 12 16:20:01 tecmint CRON[16799]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 16:20:02 tecmint CRON[16799]: pam_unix(cron:session): session closed for user root
Apr 12 16:25:01 tecmint CRON[17026]: pam_unix(cron:session): session opened for user root by (uid=0)
Apr 12 16:25:01 tecmint CRON[17025]: pam_unix(cron:session): session opened for user root by (uid=0)

上面的命令告诉 lesssshd 字符串的第一个匹配处打开 auth.log 文件。

为了自动附加在less命令中打开的文件的内容,请使用Shift+f组合键或使用以下语法运行less。

less +F /var/log/syslog

这使得在交互模式(实时)下运行并在等待新数据写入文件时动态显示新内容的次数减少。此行为类似于 tail -f 命令。

结合模式,您可以在匹配关键字时通过 Shift+f 按键以交互方式查看日志文件。要退出实时模式,只需按 Ctrl+c 键。

less +/CRON /var/log/syslog

无论您决定使用更多还是更少(这是个人选择),请记住更少更多一起使用意味着更多特征。

另请阅读:使用 head、tail 和 cat 命令有效管理文件