面试官都在问 | 谈谈Linux日志查看方式都有哪些
0.概述
在我们面试各大公司的时候,关于Linux往往最容易问到的问题之一就是Linux指令,而其中,能够使用命令快速
的查看文件内容已经成为了使用Linux系统的必备技能了,所以,面试官往往通过对于该系列命令的考察,获取应
聘者对Linux环境是否熟悉。我们结合海量面经,提取出最容易被问到的Linux当中查看文件的命令以及命令行参
数,供大家参考。
- 如何使用cat命令查看文件内容
- 如何使用less命令查看文件内容
- 如何使用more命令查看文件内容
- 如何使用head命令查看文件内容
- 如何使用tail命令查看文件内容
1.命令测试文件内容
在开始讨论命令之前,我们先约定接下来的供我们查看的文件内容,如下:
1 123
2 456
3 789
4 aaa
5 bbb
6 ccc
7 ddd
8 eee
9 fff
10 ggg
11 hhh
12 iii
13 ggg
14 kkk
15 LLL
16 mmm
2.linux命令之cat
2.1 简述
cat 命令用于将文件并打印到标准输出设备上。
2.2 高频选项
-n:由 1 开始对所有输出的行数编号
2.3 查看文件内容
cat [filename]
: cat
命令加上文件名称就可以将文件内容输出到标准设备上了。
[Ann@localhost viewfile]$ cat logfile
123
456
789
aaa
bbb
ccc
ddd
eee
fff
ggg
hhh
iii
ggg
kkk
LLL
mmm
cat
:cat命令,使用cat命令的起手式
logfile
:待查看的文件名称
对于使用cat [filename]
命令和测试文件内容一致
2.4 查看内容并且带有行号
cat -n [filename]
:cat
命令加上-n
命令参数,可以完成查看内容的同时带有行号
[Ann@localhost viewfile]$ cat -n logfile
1 123
2 456
3 789
4 aaa
5 bbb
6 ccc
7 ddd
8 eee
9 fff
10 ggg
11 hhh
12 iii
13 ggg
14 kkk
15 LLL
16 mmm
cat
:cat命令,使用cat命令的起手式
-n
:cat命令支持的命令行参数,由 1 开始对所有输出的行数编号
logfile
:待查看的文件名称
在输出内容中,可以看到在每一行的左边都增加行号,由1开始并且自增的
3.linux命令之less
3.1简述
less 命令是对文件进行分页显示的工具。在linux当中查看文件内容必不可少的工具,功能极其强大。若使用了 less 查看到尾时,文件并不会显示结束后自动离开,需要配合-e
选项或者q
命令来结束查看。当进入查看文件内容的时候,就可以使用[pageup][pagedown]
等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容。接下来,我们就一些来体验下less命令的魅力
3.2 高频选项
-N:显示每行的行号
-e:当文件显示结束后,自动离开
[pagedown]:向下翻动一页
[pageup]:向上翻动一页
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
Q:退出less 命令
3.3 查看文件内容&退出less查看
使用less命令查看logfile文件,结果如下:
123
456
789
aaa
bbb
ccc
ddd
eee
fff
ggg
hhh
iii
ggg
kkk
logfile
我们可以看到打开文件已经到达尾部,所以可以看到logfile (END)
,但是此时并不能直接退出查看文件界面,需要配合q
命令进行退出
3.4 查看内容并且带有行号
我们在查看一个文件内容的时候,有时会有需求想要带有行号进行查看,less命令提供了一个命令行参数-N
,用来让我们带有行号的查看文件,命令使用方法:less -N [filename]
效果如下:
1 123
2 456
3 789
4 aaa
5 bbb
6 ccc
7 ddd
8 eee
9 fff
10 ggg
11 hhh
12 iii
13 ggg
14 kkk
logfile
在上面输出结果中我们可以发现在输出的每一行的左边都带有一个行号,这样我们就可以准确的对应文件内容处于哪一行了
3.5 在文件当中搜索字符串
如果使用less查看文件的时候,可能会存在文件比较大,所以查找内容的时候需要借助搜索字符串的功能来更快的定位到需要查找的字符串,例如:在“命令测试文件内容”当中查找"aaa"字符串
4 aaa
5 bbb
6 ccc
7 ddd
8 eee
9 fff
10 ggg
11 hhh
12 iii
13 ggg
14 kkk
15 LLL
16 mmm
~
~
~
(END)
/aaa
上面结果中我们使用/
加上搜索字符串内容来进行搜索,需要大家注意的是,/
是向下搜索,大家可以在试试?
向上搜索的功能,两者之间非常之相似。
4.linux命令之more
4.1 简述
Linux more 命令类似 cat ,不过会以一页一页的形式显示,更方便我们逐页查看文件内容
4.2 高频选项
空白键(space)就往下一页显示
b 键就会往回(back)一页显示
4.3 查看内容
使用more [filename]
命令查看文件,下面我们来测试下
[Ann@localhost viewfile]$ more logfile
123
456
789
aaa
bbb
ccc
ddd
eee
fff
ggg
hhh
iii
ggg
kkk
LLL
mmm
由于more命令和cat命令比较相似,所以我们就不一一尝试了,小伙伴们可以在自己的linux操作系统中尝试下哦
5.linux命令之head
5.1 简述
head 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行
5.2 高频选项
-n<行数> 显示的行数
5.3 查看文件内容
假设我们想要像是”logfile“文件的前3行,我们可以使用命令head -3 logfile
[Ann@localhost viewfile]$ head -3 logfile
123
456
789
从上面的命令结果来看,显示的内容只是“命令测试文件内容“的前三行,所以也佐证了-n<行数> 显示的行数
这样的 参数的含义为显示几行数据的功能。
6.linux命令之tail
6.1 简述
tail命令用途是依照要求将指定的文件的最后部分输出到标准设备,通常是终端,通俗讲来,就是把某个档案文件的最后几行显示到终端上。
6.2 高频选项
-n<行数> 显示文件的尾部 n 行内容
-f 循环读取
6.3 查看文件尾部n行内容
使用tail
命令查看文件尾部的信息,同时也可以使用-n
命令行参数指定想要查看文件尾部n行的内容,例如,下面我们使用tail -n 2 [filename]
查看文件后两行的内容
[Ann@localhost viewfile]$ tail -n 2 logfile
LLL
mmm
从上面的结果当中我们可以对比“命令参数文件内容”,发现就是最后两行的内容,符合我们查看文件内容的预期。大家也可以尝试起来哦。
6.4 动态读取文件内容
tail命令动态读取文件内容是我们在工作上比较常用的一种用法,用来监控文件在尾部是否有新的写入,当我们使用tail -f [filename]
的时候,如果文件当中有新的内容写入,就会立即输出到控制台中,这样我们在第一时间就可以查看到,所以tail -f
命令打开的文件,并不会直接结束。如果需要结束循环读取,在命令行当中使用ctrl+c就可以停止循环读取。如下,我们在“命令测试文件内容”后增加字符串“aaa”
[Ann@localhost ~]$ tail -f logfile
ddd
eee
fff
ggg
hhh
iii
ggg
kkk
LLL
mmm
aaa
如上结果所示:tail -f 命令会默认输出尾部10行内容,并且在“aaa”字符串之后,新增加的字符串“aaa”就会显示到该终端的上,小伙伴们也可以尝试起来哦
7.总结
cat [filename]
#查看filename文件内容
cat -n [filename]
#查看filename文件内容并且带有行号
less [filename]
#查看filename文件内容,使用q命令退出查看
less -N [filename]
#查看filename文件内容并且带有行号,,使用q命令退出查看
more [filename]
#查看filename文件内容
head -n [filename]
#查看前n行号文件内容,如果不加-n选项,则默认查看前10行内容
tail -n [filename]
#查看尾n行文件内容,如果不加-n选项,则默认查看尾10行内容
tail -f [filename]
#循环读取文件