linux查看文件命令

直接查看文件内容

一共有三个,cat/tac/nl

cat [-AbEnTv]

选项与参数
-A :相当于-vET的整合, 可以列出一些特殊字符而不是空白而已
-b :列出行号,进针对非空白行做行号显示,空白行不会标记
-E :将结尾换行符$显示出来
-n :打印出行号,连同空白行也会有行号,与-b的选项不同
-T :  将[tab]键以^I显示出来
-v :  列出一些看不出来的特殊字符

例如:

cat仅仅适合查看行数比较少的文件, 如果文件比较大则没有什么意义了,文件会快速翻到最后一行。如果文件中有特殊符号,比如[Tab], 换行等要显示出来,就必须加上-A之类的选项。当然cat也可以通过管道符配合more或less使用也可以达到比较好的效果。

tac(和cat打印顺序相反)

翻页查看

more

more命令了解一下就行了,功能太少,笔者一般都用less命令。

按键/命令
空格键(Space):向下翻页
回车(Enter):向下翻行
/字符串:在当前显示的内容(翻页进度位置),向下查找这个字符串关键字
:f:立刻显示文件名以及目前位置的行号
q: :退出当前文件的浏览
b或ctrl+b:往回翻页

less

less命令比more更加有弹性,可以前后翻页,不止可以向上查找,也可以向下查找。
按键/命令
[pagedown] :向下翻页
[pageup] :向上翻页
/字符串:在当前显示的内容(翻页进度位置),向下查找这个字符串关键字
?字符串:向上查找字符串
n :重复前一个查找,与/或?有关, 比如前一个命令是?表示向上查找,此时n会向上查找
N:  反向的重复前一个查找
g :跳转到当前文件数据的第一行
G :跳转到当前文件数据的最后一行
q :退出当前文件的浏览

数据截取

head

head命令用来提取文件的前n行,一般配合使用-n选项。当指定的行数为负数-x时,则会打印出除了后面x行的其他所有数据。

tail

从文件尾部截取数据。tail也是工作中最常用的命令,因为可以利用-f选项,一直刷新获取文件尾部最新数据。

选项与参数
-n   : 查看后n行数据,注意当n后面值带“+”号表示从第x行开始, 如 tail -n +1000 test.txt
-f  : 展示文件后面

通用命令

管道:Shell 还有一种功能,就是可以将两个或者多个命令(程序或者进程)连接到一起,把一个命令的输出作为下一个命令的输入,以这种方式连接的两个或者多个命令就形成了管道(pipe),管道命令用"|"来表示

范例:查看ll命令输出的前10行

ll | head -n 3

 

grep :命令用于查找文件里符合条件的字符串,这两个命令也是linux中最常用的的,而在查看日志文件也通常会结合这两个命令一起使用。

范例:查看文件文件中那些行包含‘999’

cat -n test.txt | grep '999'

 

>> : 文件追加重定向命令,可以往文件末尾追加数据,正如上文 echo "第$i行" >> test.txt

范例:将一个文件的最后10行复制到helloworld.txt中

tail -n 10 >> helloworld.txt

wc文件字节数,字数,行数查看wc [-clw] [文件...],
-c或--bytes或--chars 只显示Bytes数。
-l或--lines 只显示行数。
-w或--words 只显示字数。
范例:查看文件行数
wc -l

案例实战

打印日志文件中第11到20行。
思路:首先获取前20行,然后在获取20行的后10行即可,需要使用管道命令。
head -n 20 text.txt | tail -n 10