与服务器斗智斗勇之文件内容

查询文件内容属实常有的事,命令也都比较简单,主要是内容,而非命令,所以对这几个命令不需要特别精通,只要知道这个常用的就好了,除非是查询日志信息,像一般的配置文件,谁有闲心去动不动查看啊

 

命令格式都是命令 参数 文件

 

cat,这个不是猫,而是concatenate,参数比较常用的是-n:打印行号,空白行也会有行号

其余参数分别为:

-b:列出行号,空白行不进行行标号

-E:将结尾的断行字符显示出来

-T:将Tab键以^I显示出来

-v:列出一些看不出来的特殊字符

-A:相当于-vET的整合

很多时候文件内容中TAB键和空格一样都是一堆空白,这时候加一下参数就能看出来不同了,断行符在Windows系统和Linux系统里不一样,Windows里是^M$

 

接下来是另一个命令,tac。这个命令要和cat对比着看,cat是将内容从第一行到最后一行输出,tac就是反着来,所以有些文件要看倒数的时候还是比较嗨皮的

 

nl(添加行号打印)

-b:指定行号的方式,主要有两种

-b a:不论是否为空行,都进行行号标识(类似cat -n)

-b t:空行不进行行号标识(这个是默认值)

-n:列出行号的表示方法,主要有三种

-n ln:行号在屏幕的最左方

-n rn:行号在行号字段的最右方,且不加0

-n rz:行号在行号字段的最右方,且加0

-w:行号字段占用的位数

这个加0是指,默认字段是6位数,不加零的时候显示是1,2,3,加0显示是000001,000002,000003,如果要改成占3个字符,就是在命令后面的参数中指定-w 3即可,左右也只是在自己字段里改变,并不影响文件的内容显示

 

 

其实说的这三个都是比较适合小型文件的显示,稍微行数多点的,cat那种直接全部显示能把人气死,所以我们需要个可以一页一页显示的,这就是more

more后面的文件内容行数大于屏幕显示行数的时候,就会看到最后一行会显示目前显示的百分比,而且还可以在这一行输入一些有用的命令,在more运行期间,有几个主要功能:

空格键:下翻一页

回车键:向下滚动一行

/字符串:显示的内容当中向下查询这个字符串关键字

:f:立刻显示出文件名及当前显示的行数

q:立刻离开more命令,不再显示文件内容

b或者ctrl-b:回翻页,不过只对文件游泳,对管道无用

与more相对应的是less,而相比较而言,less有更高的灵活度,而且在我们查询一个命令的时候,man是必备的的,而man显示的内筒就是用来less实现的

less的显示界面,最下面是个冒号,可以用上下键进行翻页,也可以pageup,pagedown进行翻页,空格也是下翻页,/字符串是向下查找字符串关键字,q是退出

不同的是,?字符串,是向上查找字符串关键字,n是重复上一个查询,不管是/还是?,N是反向重复上一个查询

less ,好东西呦

 

数据选取也是一个很重要的功能,head 和tail就是这么一个功能的命令,这两个命令都是依据行作为数据选取单位的

head/tail -n  number 文件

两个命令都是默认十行,也就是不加参数指定 行数的情况下,它会输出最前或者最后的十行,如果要输出最前/最后20行,那就加上参数 -n 20就可以了

不过也有不同,毕竟在使用最前功能和最后功能的时候需求是不一样的

如果后面60行都不显示,只显示前面的几行,命令是head -n 60 文件

如果不知道一个文件有多长,只想要100行以后的呢?使用tail -n +100 文件名

要持续检测呢:tail -f 文件名,等要退出的时候Ctrl C即可

其实这两个可以复核使用的,比如,要查11-20行,那其实就是先要前20行,再要这20行后的10行

head -n 20 文件名 | tail -n 10         你的好友:管道已上线.jpg

 

 

文件有三个时间,mtime:修改时间,ctime:状态(权限和属性被修改的时候更新)时间,atime:读取时间,被读取的时候更新,当我们ls 的时候默认显示的是mtime也就是上次被修改的时间,其实也可以理解,最主要的是看什么时候被修改的, 要看另两个时间,加上参数--time=atime/ctime即可

系统时间可能会来自未来,因为这个地球是有时差的,唉····愚蠢的地球人······

这时候有个不务正业的功能出现了,touch,这个命令可以用来创建一个空文件 ,touch 文件名,即可,搞定,然后,它还可以用来修改时间

参数

-a:仅修改访问时间

-c:仅修改文件时间,文件不存在则不创建新文件

-d:后面可以接想要使用的时间,也可以用--date=来设置具体时间

-m:仅修改mtime

-t:后面可以接想要修改的时间,格式为YYMMDDHHMM

比如把文件的mtime改为两天前:touch -d "2 days ago" 文件

 

总之这个命令最主要的还是用来创建一个康文件,还有就是修改一下mtime和atime

 

 

最后这个是很少用的,不过工程师可以使用它获得一些必要的信息,因为它是针对非纯文本文件进行操作的,如果用前面那些命令很可能会出现乱码,比如常为二进制文件的执行文件,所以我们要用od这个命令

命令细节就不说了,一般我们这群运维狗是用不到的,不过虽然即使读出来二进制也并不能看出来什么,但是只要通过参数转化成不同的字符对文件内容进行一个大致的输出,对我们有个稍微的提示就可以了,毕竟,这是给工程师用的,而我们,再怎么进化也只能是从运维狗到运维加鲁鲁兽,开心就好,前面那些够我们用了

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值