1. 前言
今天看到团队里的以为大神使用xshell远程访问公司的服务器,通过日志查找我们测试时出现的一些bug,看到了他使用了一个
tailf
命令查看日志的动态显示,通过分析日志,很快就定位到了一个后台调试一直都没发现的bug。所以自己百度总结一些常用的查看文件命令的使用。
2. 目录
命令 | 说明 |
---|---|
cat | 由第一行开始显示内容,并将所有内容输出 |
tac | 从最后一行倒序显示内容,并将所有内容输出 |
more | 根据窗口大小,一页一页的现实文件内容 |
less | 和more类似,但其优点可以往前翻页,而且进行可以搜索字符 |
head | 只显示头几行 |
tail | 只显示最后几行 |
nl | 类似于cat -n,显示时输出行号 |
tailf | 类似于tail -f |
grep | 文件内容查看 |
2.1 cat 和 tac 命令的使用
用法: cat [options] filename
options:
-A
: 显示全部.
-E
: 在每一行的后面加上"$"符号结尾.
-b
: 在所有的非空白行上标示编号.
tac
是 cat
的倒写,cat
是从第一行开始显示,而tac
则是从最后一行开始倒着显示。
2.2 more 和 less
more
的功能是将文件从第一行开始,根据输出窗口的大小,适当的输出文件内容。当一页无法全部输出时,可以用回车键
向下翻行,用空格键
向下翻页。退出查看页面,请按q
键。另外,more
还可以配合管道符“|”(pipe)使用,例如:ls -al | more
more的语法:more filename
Enter
向下n行,需要定义,默认为1行;
Ctrl f
向下滚动一屏;
空格键
向下滚动一屏;
Ctrl b
返回上一屏;
=
输出当前行的行号;
:f
输出文件名和当前行的行号;
v
调用vi编辑器;
!
命令 调用Shell,并执行命令;
q
退出more-
less的功能和more相似,但是使用more无法向前翻页,只能向后翻。
less可以使用【pageup】
和【pagedown】
键进行前翻页和后翻页,这样看起来更方便。
less:
功能:分页显示文件,可以灵活翻页。可以结合其他命令使用。
优势:用于查看不需要监控变化
的文件。使用:
- 查看操作
less filename
Enter
(回车) 下一行
b
向上翻页
空格
向下翻页
/ 查找字段
(与vim查找相似)
shift+g
到文件尾
g
到文件头 - 结合使用。如:
ps -ef | less
history | less
实现灵活的翻页查看,查找等功能。
- 查看操作
2.2 head 和 tail
head
和tail
通常使用在只需要读取文件的前几行或者后几行的情况下使用。head的功能是显示文件的前几行内容
head的语法:head [n number]
文件名 (number 显示行数)
tail
跟它的英文意思一样,就是可以查看从文件尾开始显示末尾的几行,唯一和 tac
的不同之处就是tail
命令是可以动态监控文件内容变化的,常用的命令就是tail -f
tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容.
1.命令格式;
tail[必要参数][选择参数][文件]
2.命令功能:
用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。
3.命令参数:
-f
循环读取
-q
不显示处理信息
-v
显示详细的处理信息
-c
<数目> 显示的字节数
-n
<行数> 显示行数
--pid=PID
与-f合用,表示在进程ID,PID死掉之后结束.
-q
, --quiet, --silent 从不输出给出文件名的首部
-s
, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
2.3 nl 和 tailf
nl
的功能和cat -n
一样,同样是从第一行输出全部内容,并且把行号显示出来
nl的语法:nl 文件名
tailf
命令几乎等同于tail -f
,严格说来应该与tail --follow=name更相似些。当文件改名之后它也能继续跟踪,特别适合于日志文件的跟踪(follow the growth of a log file)
。与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件(It is similar to tail -f but does not access the file when it is not growing. This has the side effect of not updating the access time for the file, so a filesystem flush does not occur periodically when no log activity is happening.)
。tailf特别适合那些便携机上跟踪日志文件,因为它能省电,因为减少了磁盘访问嘛(tailf is extremely useful for monitoring log files on a laptop when logging is infrequent and the user desires that the hard disk spin down to conserve battery life.)
。tailf命令不是个脚本,而是一个用C代码编译后的二进制执行文件,某些Linux安装之后没有这个命令,本文提供了怎么编译安装tailf命令的方法。
格式:tailf logfile
动态跟踪日志文件logfile,最初的时候打印文件的最后10行内容。
2.4 grep命令的使用
grep
是一个非常重要的命令,他是在指定的文本文件中查找某一内容,比方说我要在history
这个文本文件中查找hell的内容,可以使用命令grep ls history
详细可以参考grep的详细使用
总结
其实linux的文件查看命令的用法是很灵活的,具体如何用好还是要看个人,很多东西并不是一下子学会的,而是一点一滴自己积累的。感谢我现在的公司给我的机会和挑战