Linux命令进阶篇之二
预备知识
本实验要求实验者具备如下的相关知识。
前面我们学习了如何对档案就行搜索,搜索出来之后当然是要查阅其内容啦,那么如何来查看具体的文档内容呢?最常用的命令有以下几种,cat与more以及 less。如果我们查看的文档过长,看不到完整的内容,那该怎么办呢?如果我们只想看前面几行或者后面几行那又该怎么办呢?这就要用到我们的head和 tail命令了。
这些命令通常会结合在一起用,这就需要用到管道命令符了,那什么时候管道命令符呢?
Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为第二个命令的输入,第二个命令的输出会作为第三个命令的输入,以此类推。
选取init的进程。
cat :由第一行开始显示文件内容
tac:由最后一行开始显示,有没有发现和cat是反过来写的
more:一页一页的显示内容
less:与more相似,但是可以往前翻页
head:只看头几行
tail:只看最后几行
od:以二进制方式读取档案内容
实验步骤一
文件查看命令之cat与tac命令
命令:cat
语法:cat [-n] 文件
解释:-n:显示行号
直接跟文件,可以查看文件
更多用法请使用manpage查看。
接下来就来感受下:
先cp一份文件来操作,然后再用cat
那来看看cat -n 命令吧:会把行号显示出来哦
cat是从头到尾显示,那tac就是从尾到头显示:
仔细看看 是不是倒过来了呢?
有没有发现,当你使用cat ./passwd 的时候,直接调到最后面去了,前面的看不到了。怎么办?
查阅命令之二:more && less命令
语法:more [文件名]
more 可以实现一页一页翻动
来试试吧:找个很长的文档,嘿嘿~
会显示进度哦。按空格键或者回车键盘 就能往下翻页了。按 q 键就可以离开,输入 “/keyword” 可以对关键词就行搜索,按 n 可以向下搜索。
那来看看 less命令吧,相对more来说,less更加灵活哦。
语法和more一样,那less有哪些快捷键可以使用呢?
自己慢慢感受下,是不是很方便呢?上面的 n 和 N 可能看起来有点绕,n 就是向下搜索,N 就是向上搜索啦。
实验步骤二
查看部分文档内容之head与tail命令
有时候我们并不需要查看全部的文档内容,只是想看其中几行而已,那又怎么办呢?
命令:head
语法:head [-n number] 文档
解释:-n 后面接数字,代表显示几行的意思
head命令的作用是选取头几行,默认不加参数,是显示头十行的内容。
选取尾部文档内容之tail命令
语法:tail [-n number] 文档;tail [-f] 文档
解释:-f 检测文档,直到按下 Ctrl+C 才会退出,可以用来监测日志的写入。
默认情况下 ,显示尾部十行信息
一个很有意思的参数:-f :可以做日志监测哦~,当有日志文件写入,就会实时显示了,按下 Ctrl +c 就会退出。
想一想,如果我要选取/tmp/passwd 文件的第10到20行的内容该怎么办呢?我们可以这样做,先选取头20行,然后再取后11行不就行了。那怎么做呢。这里我们就要用到管道命令了。先用 head 选取前20行,然后把输出结果交给tail命令选取后11行内容就行了。
先来看一下第10到20行有哪些内容吧:
然后再做选取:
看,内容没错吧,是第十行到第二十行的信息。
实验步骤三
查看二进制文件的内容之od命令
命令:od
语法:od [-t TYPE] 档案
解释:-t 后面接输出的类型
有哪些类型呢?
那我们就来看看 head 命令这个二进制文件有啥内容吧,咦?你不知道路径?难道忘记之前学的么?赶紧回去重学。
文件内容太多了,我们选取5行查看好了。其他的参数自己去尝试吧。
心得体会
通过这次试验我掌握了如何查阅一个文档,了解如何使用管道命令选取查看文档内容和以二进制方式查阅文档内容
分析与思考
1、请说明more和less有何区别?它们各自的优缺点是什么?
more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。more命令更加简洁明了,less命令更加灵活。
2、/var/log/httplog是一个日志文件,如何监控它的数据写入?
tail -f /var/log/httplog
3、选取/etc/passwd 第5行到15行的数据,并显示出行号?
head -n 15 /etc/passwd/ | tail -n 11