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去读取文件的不同, 语法是
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行
tail /var/log/user.log
实例
- 你还能指定一个行数显示
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个字符
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)来显示带有文件名的文件内容
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 管道符
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
总结:
测试是一门技术, 更是一门艺术. 也许你今天拥有的技术, 明天就会被淘汰. 同时需要我们开拓思维和眼界, 积极拥抱变化, 学习新知识, 新方法,新技能, 计算机领域讲究的是实践, 学习更要讲究方式方法. 学习和动手一定要结合, 光看不练,犹如看武功秘籍, 是永远成不了武功大侠的.