〇,文档内容查询命令概述cat从第一行开始显示文档内容tac从最后一行开始显示文档内容行,可以看出tac是把cat反写的!显示nl时,顺带输出行号!more逐页显示文件内容。less类似于more,但比more更好,他可以翻页!head只看前几行tail只看尾部几行od以二进制形式读取文件内容!1、直接查看文件内容要直接查看文件内容,可以使用命令cat/tac/nl。1.cat(从第一行开始显示文档内容)cat[option][filename]option-A:相当于-vET的集成选项,可以列出一些特殊字符,而不是空白;-b:列出行号,行号显示只针对非空行,空行不标行号!-E:在末尾显示换行符$;-n:打印行号,与-b选项不同的是,空行旁边会有行号;-T:将[tab]按钮显示为^I;-v:列出一些不可见的特殊字符实例查看文档内容[vagrant/tmp/abc]]$cathosts127.0.0.1localhost127.0.1.1vagrant-ubuntu-trusty.vagrantup.comvagrant-ubuntu-trusty#ThefollowinglinesaredesirableforIPv6capablehosts::1localhostip6-localhostip6-loopbackff02::1ip6-allnodesff02::2ip6-allroutersoutputwithlinenumbers,emptynumbersarenotnumbered[vagrant/tmp/abc]]$cat-bhosts1127.0.0.1localhost2127.0.1.1vagrant-ubuntu-trusty.vagrantup.comvagrant-ubuntu-trusty3#以下行适用于支持IPv6的主机4::1localhostip6-localhostip6-loopback5ff02::1ip6-allnodes6ff02::2ip6-allrouters输出带行号,空号也有编号[vagrant/tmp/abc]]$cat-nhosts1127.0.0.1本地主机2127.0.1.1流浪者-ubuntu-trusty.vagrantup.comvagrant-ubuntu-trusty34#以下行适用于支持IPv6的主机5::1localhostip6-localhostip6-loopback6ff02::1ip6-allnodes7ff02::2ip6-allrouters在文档字符,显示结束换行符$,[tab]按钮显示为^I[vagrant/tmp/abc]]$cat-Ahosts127.0.0.1^Ilocalhost$127.0.1.1^Ivagrant-ubuntu-trusty。vagrantup.com^Ivagrant-ubuntu-trusty$$#以下行适用于支持IPv6的主机$::1localhostip6-localhostip6-loopback$ff02::1ip6-allnodes$ff02::2ip6-allrouters$2。tac(从最后一行开始显示文档内容,tac是cat倒过来写的)tac[filename]实例显示从最后一行开始的文档内容[vagrant/tmp/abc]]$tachostsff02::2ip6-allroutersff02::1ip6-allnodes::1localhostip6-localhostip6-loopback#以下几行适用于支持IPv6的主机127.0.1.1vagrant-ubuntu-trusty.vagrantup.comvagrant-ubuntu-trusty127.0.0.1localhost3.nl(输出文件内容带行号)nl可以自动给输出文件内容加上行号!默认结果和cat-n有点不同,nl可以显示更多的行号,包括位数和是否自动补0等功能nl[option][filename]option-b:指定指定行号的方式,主要有两种:-bt:如果有空行,空行不列出行号;(default)-ba:表示无论是否为空行,行号也一并列出(类似于cat-n);-n:列出行号表示方式,主要有三种方式:-nln:行号显示在屏幕最左边;-nrn:行号显示在自己字段的最右边,不加0;(默认)-nrz:行号显示在自己字段的最右边,加0;-w:字段的行号占用的位数。示例输出文档内容,显示行号,空行不编号。类似于cat-b[vagrant/tmp/abc]]$nlhosts1127.0.0.1localhost2127.0.1.1vagrant-ubuntu-trusty.vagrantup.comvagrant-ubuntu-trusty3#以下行适用于支持IPv6的主机4::1localhostip6-localhostip6-loopback5ff02::1ip6-allnodes6ff02::2ip6-allrouters输出文档内容,显示行号,空行也有编号。类似于cat-n[vagrant/tmp/abc]]$nl-bahosts1127.0.0.1localhost2127.0.1.1vagrant-ubuntu-trusty.vagrantup.comvagrant-ubuntu-trusty34#以下几行是可取的IPv6capablehosts5::1localhostip6-localhostip6-loopback6ff02::1ip6-allnodes7ff02::2ip6-allrouters行号显示在最左边[vagrant/tmp/abc]]$nl-ba-nlnhosts1127.0.0.1localhost2127.0.1.1vagrant-ubuntu-trusty.vagrantup.comvagrant-ubuntu-trusty34#以下行适用于支持IPv6的主机5::1localhostip6-localhostip6-loopback6ff02::1ip6-allnodes7ff02::2最右边显示ip6-allrouters行号,前面填0[vagrant/tmp/abc]]$nl-ba-nrzhosts000001127.0.0.1localhost000002127.0.1.1vagrant-ubuntu-trusty.vagrantup。comvagrant-ubuntu-trusty000003000004#以下行适用于支持IPv6的主机000005::1localhostip6-localhostip6-loopback000006ff02::1ip6-allnodes000007ff02::2ip6-allrouters指定行号字段占用的位数为3[vagrant/tmp/abc]]$nl-ba-nrz-w3hosts001127.0.0.1localhost002127.0.1.1vagrant-ubuntu-trusty.vagrantup.comvagrant-ubuntu-trusty003004#以下行适用于支持IPv6的主机005::1localhostip6-localhostip6-loopback006ff02::1ip6-allnodes0::07ff2ip6-allrouters2.翻页查看文件内容more和less都有翻页查看文件内容的功能,都可以搜索,但是less的功能更强大more,less搜索字符串时,会高亮搜索到的字符串(more不会高亮)。1.moremore[文件名]操作空格键(Space):表示向下翻一页;Enter:表示调低‘一行’;/string:表示在显示的内容中往下搜索'string'对于这个关键字,回车开始搜索,按n查找下一个匹配项;:f:立即显示文件名和当前显示的行数;q:表示立即离开,不再显示文件内容。b或[ctrl]-b:表示向后翻页,但是这个动作只对文件有用,对管道没有用。2.less[文件名]参数-N:显示行号-m:显示百分比类似more命令的操作空格(Space):向下翻一页;[pagedown]:向下翻一页;[pageup]:向上翻一页;/string:向下搜索'string'函数;?string:向上搜索'string'函数;n:重复之前的搜索(与/或!相关)N:reverse重复之前的搜索(与/或?!相关)q:离开less程序;3、查看部分文档内容我们可以对输出数据做最简单的选择,即提取文本的前面(head)和提取后面(tail)的函数。不过需要注意的是,head和tail都是以'行'为单位选择数据!1.head(去掉前几行)head[-nnumber]文件名参数-n:后面跟一个数字,表示显示几行。默认显示前10行。示例显示前5行,head-n5和head-5[vagrant/tmp/abc]]$head-n5hosts127.0.0.1localhost127.0.1.1vagrant-ubuntu-trusty.vagrantup.comvagrant-ubuntu-trusty#以下行适用于支持IPv6的主机::1localhostip6-localhostip6-loopback[vagrant/tmp/abc]]$head-5hosts127.0.0.1localhost127.0.1.1vagrant-ubuntu-trusty。vagrantup.comvagrant-ubuntu-trusty#以下几行是支持IPv6的hosts::1localhostip6-localhostip6-loopback显示除最后5行以外的所有行(文档一共7行,也就是只有显示前两行)[vagrant/tmp/abc]]$head-n-5hosts127.0.0.1localhost127.0.1.1vagrant-ubuntu-trusty.vagrantup.comvagrant-ubuntu-trusty[vagrant/tmp/abc]]$cat-nhosts1127.0.0.1localhost2127.0.1.1vagrant-ubuntu-trusty.vagrantup.comvagrant-ubuntu-trusty34#以下行适用于支持IPv6的主机5::1localhostip6-本地主机ip6-环回6ff02::1ip6-allnodes7ff02::2ip6-allrouters2。tail(取出后面几行)tail[-nnumber]文件名参数-n:后面跟一个数字,表示显示几行,默认显示前10行。-f:表示持续监控文件内容的修改,可以按Ctrl+c退出监控。该示例显示了最后5行,tail-n5和tail-5[vagrant/tmp/abc]]$tail-n5hosts#以下行适用于支持IPv6的主机::1localhostip6-localhostip6-loopbackff02::1ip6-allnodesff02::2ip6-allrouters[vagrant/tmp/abc]]$tail-5hosts#以下行适用于支持IPv6的主机::1localhostip6-localhostip6-loopbackff02::1ip6-allnodesff02::2ip6-allrouters显示从第5行到文件末尾的所有行(文档一共7行,即只显示最后3行)[vagrant/tmp/abc]]$tail-n+5hosts::1localhostip6-localhostip6-loopbackff02::1ip6-allnodesff02::2ip6-allrouters显示最后5行,持续监控文件更新[vagrant/tmp/abc]]$tail-n5-fhosts#以下行适用于支持IPv6的主机::1localhostip6-localhostip6-loopbackff02::1ip6-allnodesff02::2ip6-allrouters╚4.读取非文本内容1.上述命令都是在查找纯文本文件内容。如果我们要查看非文本文件的内容,比如可执行文件/usr/bin/passwd,使用上述指令读取其内容时,会输出类似乱码的数据!这时候我们可以使用od命令。参数-t:可以跟各种‘TYPE’输出,例如:a:使用默认字符输出;c:使用ASCII字符输出d[size]:使用十进制(decimal)输出数据,每个整数占用size个字节;f[size]:使用浮点值(floating)输出数据,每个数占用size个字节;o[size]:使用八进制(octal)输出数据,每个整数占用size个字节;x[size]:用16进制输出数据,每个整数占用size个字节;该示例以ASCII模式输出/usr/bin/passwd的内容[vagrant/tmp/abc]]$od-tc/usr/bin/passwd0000000177ELF002001001\0\0\0\0\0\0\0\0\00000020002\0>\0001\0\0\03378@\0\0\0\0\00000040@\0\0\0\0\0\0\0270260\0\0\0\0\0\00000060\0\0\0\0@\08\0\t\0@\0034\0033\00000100006\0\0\0005\0\0\0@\0\0\0\0\0\0\0...之后省略n行。..#最左边的第一列代表八进制的字节数。#上面例子中,第二列0000020表示开头是第16字节(2x8)的内容。以八进制列出/etc/issue文件的内容,并将存储的值与ASCII进行比较[vagrant/tmp/abc]]$od-toCc/etc/issue0000000125142165156164165040061064056060064040114124123Ubuntu14。04LTS0000020040134156040134154012012\n\l\n\n\n0000030#如上所示,可以找到每个字符对应的值。#比如b对应的记录值为142,换算成十进制:1x8^2+4x8+2=98。
