Linux系统之tail命令的基本使用

举报
江湖有缘 发表于 2024/08/22 13:22:14 2024/08/22
【摘要】 Linux系统之tail命令的基本使用

@TOC

在这里插入图片描述

一、tail命令介绍

tail命令是Linux系统中常用的命令之一,用于查看文件的末尾内容。它可以显示文件的最后几行内容,默认显示文件的末尾10行。

二、tail命令的使用帮助

2.1 tail命令的help帮助信息

使用–help,查看tail的帮助信息。

[root@openEuler-test ~]# tail --help
Usage: tail [OPTION]... [FILE]...
Print the last 10 lines of each FILE to standard output.
With more than one FILE, precede each with a header giving the file name.

With no FILE, or when FILE is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -c, --bytes=[+]NUM       output the last NUM bytes; or use -c +NUM to
                             output starting with byte NUM of each file
  -f, --follow[={name|descriptor}]
                           output appended data as the file grows;
                             an absent option argument means 'descriptor'
  -F                       same as --follow=name --retry
  -n, --lines=[+]NUM       output the last NUM lines, instead of the last 10;
                             or use -n +NUM to skip NUM-1 lines at the start
      --max-unchanged-stats=N
                           with --follow=name, reopen a FILE which has not
                             changed size after N (default 5) iterations
                             to see if it has been unlinked or renamed
                             (this is the usual case of rotated log files);
                             with inotify, this option is rarely useful
      --pid=PID            with -f, terminate after process ID, PID dies
  -q, --quiet, --silent    never output headers giving file names
      --retry              keep trying to open a file if it is inaccessible
  -s, --sleep-interval=N   with -f, sleep for approximately N seconds
                             (default 1.0) between iterations;
                             with inotify and --pid=P, check process P at
                             least once every N seconds
  -v, --verbose            always output headers giving file names
  -z, --zero-terminated    line delimiter is NUL, not newline
      --help        display this help and exit
      --version     output version information and exit

2.2 tail命令的语法解释

选项 长选项 描述
-c --bytes=NUM 输出文件尾部的 NUM 个字节内容。
-f --follow[={name|descriptor}] 显示文件最新追加的内容。name 表示以文件名的方式监视文件的变化。
-F 等同于 --follow=name --retry,即监视文件变化并自动重试打开文件。
-n --lines=NUM 输出文件的尾部 NUM 行内容。
--pid=<进程号> -f 选项连用,当指定的进程号的进程终止后,自动退出 tail 命令。
-q --quiet, --silent 当有多个文件参数时,不输出各个文件名。
--retry 即使在 tail 命令启动时文件不可访问或稍后变得不可访问,都始终尝试打开文件。通常与 --follow=name 连用。
-s --sleep-interval=<秒数> -f 选项连用,指定监视文件变化的时间间隔(秒数)。
-v --verbose 当有多个文件参数时,总是输出各个文件名。
--help 显示指令的帮助信息。
--version 显示指令的版本信息。

这个表格清晰地展示了 tail 命令的各个选项及其功能描述。

NUM值后面可以有后缀:


b : 512
kB : 1000
k : 1024
MB : 1000 * 1000
M : 1024 * 1024
GB : 1000 * 1000 * 1000
G : 1024 * 1024 * 1024
T、P、E、Z、Y等以此类推。

三、tail命令的基本使用

3.1 直接使用tail命令

直接使用tail命令,默认会显示文本的后10行内容。

[root@openEuler-test ~]# tail /etc/passwd
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
saslauth:x:998:76:Saslauthd user:/run/saslauthd:/sbin/nologin
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:D-Bus:/var/run/dbus:/sbin/nologin
polkitd:x:997:995:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
unbound:x:996:993:Unbound DNS resolver:/etc/unbound:/sbin/nologin
chrony:x:995:992::/var/lib/chrony:/sbin/nologin
admin:x:1000:1000:admin:/home/admin:/bin/bash

3.2 使用-n选项

-n选项,可以输出文件的尾部 NUM 行内容。

  • 显示文件的内容,从第10行至文件末尾
[root@openEuler-test ~]# tail -n +10 /etc/passwd
operator:x:11:0:operator:/root:/usr/sbin/nologin
games:x:12:100:games:/usr/games:/usr/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/usr/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/usr/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
saslauth:x:998:76:Saslauthd user:/run/saslauthd:/sbin/nologin
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:D-Bus:/var/run/dbus:/sbin/nologin
polkitd:x:997:995:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
unbound:x:996:993:Unbound DNS resolver:/etc/unbound:/sbin/nologin
chrony:x:995:992::/var/lib/chrony:/sbin/nologin
admin:x:1000:1000:admin:/home/admin:/bin/bash
  • 显示文本内容,倒数10行的内容。
[root@openEuler-test ~]# tail -n 10 /etc/passwd
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
saslauth:x:998:76:Saslauthd user:/run/saslauthd:/sbin/nologin
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:D-Bus:/var/run/dbus:/sbin/nologin
polkitd:x:997:995:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
unbound:x:996:993:Unbound DNS resolver:/etc/unbound:/sbin/nologin
chrony:x:995:992::/var/lib/chrony:/sbin/nologin
admin:x:1000:1000:admin:/home/admin:/bin/bash
  • 也可以使用方式,显示文本的最后10行。
[root@openEuler-test ~]# tail -10 /etc/passwd
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
saslauth:x:998:76:Saslauthd user:/run/saslauthd:/sbin/nologin
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:D-Bus:/var/run/dbus:/sbin/nologin
polkitd:x:997:995:User for polkitd:/:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
unbound:x:996:993:Unbound DNS resolver:/etc/unbound:/sbin/nologin
chrony:x:995:992::/var/lib/chrony:/sbin/nologin
admin:x:1000:1000:admin:/home/admin:/bin/bash

3.3 显示文件最后10个字符

  • 显示文件最后10个字符
[root@openEuler-test ~]# tail -c 10 /etc/passwd
/bin/bash

3.4 实时监控文件内容

运维经常使用的一条命令,tail -f /var/log/messages命令用于实时监视/var/log/messages文件的内容。使用 Ctrl + C 可以停止 tail -f 命令的执行。

[root@openEuler-test ~]# tail -f /var/log/messages
Aug 13 19:43:29 openEuler systemd[1]: Starting Hostname Service...
Aug 13 19:43:29 openEuler dbus-daemon[957]: [system] Successfully activated service 'org.freedesktop.hostname1'
Aug 13 19:43:29 openEuler systemd[1]: Started Hostname Service.
Aug 13 19:43:29 openEuler sshd[8999]: Accepted password for root from 192.168.3.241 port 56708 ssh2
Aug 13 19:43:29 openEuler sshd[8999]: User child is on pid 9007
Aug 13 19:43:29 openEuler sshd[9007]: Starting session: subsystem 'sftp' for root from 192.168.3.241 port 56708 id 0
Aug 13 19:43:29 openEuler sftp-server[9051]: session opened for local user root from [192.168.3.241]
Aug 13 19:43:29 openEuler sftp-server[9051]: opendir "/root"
Aug 13 19:43:29 openEuler sftp-server[9051]: closedir "/root"
Aug 13 19:43:59 openEuler systemd[1]: systemd-hostnamed.service: Deactivated successfully.

3.5 指定变化时间隔的秒数

-s选项,一般与“-f”选项连用,指定监视文件变化时间隔的秒数。

[root@openEuler-test ~]# tail -s 10 -f /var/log/messages
Aug 13 19:43:29 openEuler systemd[1]: Starting Hostname Service...
Aug 13 19:43:29 openEuler dbus-daemon[957]: [system] Successfully activated service 'org.freedesktop.hostname1'
Aug 13 19:43:29 openEuler systemd[1]: Started Hostname Service.
Aug 13 19:43:29 openEuler sshd[8999]: Accepted password for root from 192.168.3.241 port 56708 ssh2
Aug 13 19:43:29 openEuler sshd[8999]: User child is on pid 9007
Aug 13 19:43:29 openEuler sshd[9007]: Starting session: subsystem 'sftp' for root from 192.168.3.241 port 56708 id 0
Aug 13 19:43:29 openEuler sftp-server[9051]: session opened for local user root from [192.168.3.241]
Aug 13 19:43:29 openEuler sftp-server[9051]: opendir "/root"
Aug 13 19:43:29 openEuler sftp-server[9051]: closedir "/root"
Aug 13 19:43:59 openEuler systemd[1]: systemd-hostnamed.service: Deactivated successfully.

四、注意事项

  • 当使用tail命令时,要注意指定正确的文件名或文件路径。如果文件名或路径错误,命令将无法执行成功。

  • 可以使用tail命令的选项来显示文件的最后几行,例如使用"-n"选项加上一个数字来指定要显示的行数。例如,使用"tail -n 10 file.txt"可以显示文件file.txt的最后10行。

  • 使用tail命令时,可以结合其他命令来实现更复杂的操作。例如,可以使用管道将tail命令的输出发送给其他命令,进行进一步处理。

  • tail命令默认将文件的最后10行显示在终端上。如果想要实时监控文件的变化,可以使用"-f"选项来追踪文件的变化,并将新的内容实时显示在终端上。例如,使用"tail -f file.txt"可以实时监控文件file.txt的变化。

  • 使用tail命令时,可以使用"-c"选项加上一个数字来指定要显示的字节数。例如,使用"tail -c 100 file.txt"可以显示文件file.txt的最后100个字节。

  • 可以使用tail命令的"-s"选项来指定以秒为单位的时间间隔,用于追踪文件的变化。例如,使用"tail -f -s 2 file.txt"可以每2秒显示一次文件file.txt的变化。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。