tail命令的常见用法

2021-11-30 14:18:44 浏览数 (2)

tail 是Linux中最常用的一个命令了, 他可以显示一个或者多个文件, 同时可以与管道符结合, tail最常用的是监视和分析日志文件等, 还可以和grep搭配使用

  • tail命令语法

首先了解一下tail命令的语法,格式如下:

tail [OPTION]... [FILE]...

[OPTION]是选项

[FILE]是文件

-f 循环读取

-q 不显示处理信息

-v 显示详细的处理信息

-c<数目> 显示的字节数

-n<行数> 显示文件的尾部 n 行内容

--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束

-q, --quiet, --silent 从不输出给出文件名的首部

-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

来看示例:

有如下2个文件, unix.txt 和 copy.txt

代码语言:javascript复制
[root@localhost zhou]# cat unix.txt
Name zhou
Email zhou@126.com
[root@localhost zhou]# cat copy.txt
Name Louie
Email louie@126.com
  • 可以通过tail去读取文件的不同, 语法是
代码语言:javascript复制
tail -q unix.txt cop.txt
tail --quiet  unix.txt cop.txt

实例

代码语言:javascript复制
[root@localhost zhou]# tail --quiet unix.txt copy.txt
Name zhou
Email zhou@126.com
Name Louie
Email louie@126.com
  • 默认读取最后10行
代码语言:javascript复制
tail /var/log/user.log

实例

  • 你还能指定一个行数显示
代码语言:javascript复制
tail -n 2  /var/log/user.log
tail --lines=2  /var/log/user.log

Hint : –lines= number of lines === -n number of lines 2个参数一样的效果

OUTPUT:

代码语言:javascript复制
root@localhost:~# tail --lines=2  /var/log/user.log
Oct  2 14:09:08 localhost firefox-esr[2370]: gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)' failed
Oct  2 14:09:08 localhost firefox-esr[2370]: gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)' failed
root@localhost:~#
  • tail 显示最后8个字符
代码语言:javascript复制
tail -c 10 ~/bytes.txt
tail --bytes=9 ~/bytes.txt

OUTPUT:

代码语言:javascript复制
root@localhost:~# tail --bytes=10 ~/bytes.txt
9LASTCHAR
root@localhost:~#
  • 使用tail -v(verbose)来显示带有文件名的文件内容
代码语言:javascript复制
tail -v unix.txt 
tail --verbose unix.txt 
==> unix.txt <==
Name         Email 
Mostafa      zhou@126.com

我将合并verbose和quiet选项来更清楚的展示他们的使用

OUTPUT:

代码语言:javascript复制
root@localhost:~# tail --quiet --verbose unix.txt copy.txt
==> unix.txt <==
Name         Email
Mostafa      zhou@126.com

==> copy.txt <==
Name         Email
Mostafa      zhou@126.com
root@localhost:~#
  • 使用pipeline 管道符
代码语言:javascript复制
cat /var/log/user.log | tail -n 3
ls -lah /root | tail -n 5

OUTPUT:

代码语言:javascript复制
root@localhost:~# cat /var/log/user.log | tail -n 3 > output.txt
root@localhost:~# cat output.txt
Oct  2 14:08:55 localhost firefox-esr[2370]: gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)' failed
Oct  2 14:09:08 localhost firefox-esr[2370]: gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)' failed
Oct  2 14:09:08 localhost firefox-esr[2370]: gtk_widget_get_window: assertion 'GTK_IS_WIDGET (widget)' failed
root@localhost:~#

你可以查看你的tail版本

tail --version

你可以查看帮助手册

tail --help

总结:

测试是一门技术, 更是一门艺术. 也许你今天拥有的技术, 明天就会被淘汰. 同时需要我们开拓思维和眼界, 积极拥抱变化, 学习新知识, 新方法,新技能, 计算机领域讲究的是实践, 学习更要讲究方式方法. 学习和动手一定要结合, 光看不练,犹如看武功秘籍, 是永远成不了武功大侠的.

0 人点赞