Linux学习第九篇--linux文件查看
前言
在使用linux的过程中,我们不可避免的要去查看一些文件,有些时候是查看这些文件的内容,有些时候是查看文件的权限属性.
那么,在linux中如何去查看一个文件呢?
linux查看文件的命令大致如下:
cat: 从一行开始显示文件内容
tac 从最后一航开始显示
nl 显示的时候,顺道输出行号
more 一页一页的显示数据
less 类似于more,但是less可以往前翻页.
head只看头几行
tail只看后几行.
od 以二进制的方式读取文件内容
下面就详细的介绍这几个命令~
注意,我们应该常用man 命令来查看命令的介绍,我英文水平也很差,但是感觉看文档时间长了,就能猜出来了...
cat(concatenate):从头开始读文件
在cat命令的介绍中,指出cat命令用于连接文件并在输出设备上打印出来.他有以下参数:1.A 等效于-vET的组合2.b 显示出非空行的行号3.e 等效于 -vE4.E 在每一行的末尾显示$符号5.n 所有行都显示行号,包括空白行6.s 合并多个空行为一行7.t 等效于 vt8.T 将制表符(TAB)以 ^I 的形式显示出来.9.v 显示看不出来的内容tac:从尾部开始读文件
tac命令的作用是反向输出文件的内容,即从尾行输出.
他的选项主要有三个:
1.b 在(行)前面添加分隔符
2.r 将分隔符视为正则表达式来解析
3.s 指定字符串作为分隔符
就我感觉,tac命令用的并不多.
nl(number lines):显示文件的行号
其实nl是个不常用的命令,学到这的时候,我浮躁的心理又出现了,心里蹦跶出一个小黑人,他旋转跳跃,他闭着眼,告诉我:跳过去吧,跳过去吧,反正学了也不会,会了也不一样能用到,能用到,也不定是自己用,既然如此,还学他干什么?正在我蠢蠢欲动的时候,这时候内心又蹦跶出一个小白人,小白人没说话.看了小黑人一眼,伸出一根手指,小黑人没搭理他,然后小白人又伸出了一根手指,小黑人依然没搭理他.然后小白人就把小黑人拍死了....,接下来,小白人看了我一眼,伸出一根手指.....so,我还是man一下nl吧.
额咳咳,看一下nl的描述,
那个,nl是number of lines的缩写,顾名思义嘛,就是每一行的编号.他的作用是将指定的文件添加行号标注后输出,但是又和cat不同,nl命令可以将行号做比较多的显示设计.
然后他的参数也大多数同样式有关系.
1.b 使用指定样式编号文件的主体部分.
2.d 使用指定的定界符来分隔逻辑分页
3.f 使用指定的样式作为页脚
4.h 使用指定的样式作为页眉
5.i 指定每一行的增量值,意思就是,比如,现在设置增量为10,然后打开文件后,本来第一行为1,第二行为2,第三行为3,但是增量后,第一行是1,第二行却是11,第三行就是21,也就是说这个增量值就是每换一行,添加几行.
6.l 将多个空行视为一个空行
7.n 根据指定的格式插入行号
8.p 在逻辑分页的时候,(翻页时)不会重置行号
9.s 在行号后面添加指定的字符串(尽可能的)
10.v 指定每一页第一行的行号
11 w 指定每一行的列数
额,学起来也就这样嘛,也不是很难呀....
在上面的选项里使用好多次指定样式这个词汇,指定样式到底是个什么东西呢?
在 b选项时,可以使用的样式,主要有:
a 给所有行编号,
t 只给非空行编号,
n 不编号.
d选项,可以选择页面分界符(分页符),分界符是自己输入的格式,紧跟在d选项后的字符串就是分界符.这个分界符用于匹配文件中的该字符,进行分页.
在n选项上支持指定格式化样式,比如:
ln 左对齐,前面没有0
rn 右对齐,前面没有0
rz 右对齐 ,前面有0
more:分页看文件
使用more命令查看文件的时候,当文件的内容长度超出当前屏幕的时候,文件内容显示满当前屏幕就会停止,在下方显示 [已显示文件内容的百分比],
同时可以使用空格键来翻页,这里有一点,more命令从前向后读取文件,因此在启动的时候,就已经加载了整个文件.
在man more中介绍了more命令,more是一个一次只显示一个屏幕内容的分页过滤器,里面还牵扯到一个命令less,less命令是我们下一个要学习的命令.
下面是关于more 选项的介绍:
1.-[数值]通过指定一个数字,来初始化屏幕显示的行数.不需要输入number这个单词,直接 more -100 文件 这种方式即可指定.
2. d 显示[Press space to continue, 'q' to quit.],同时禁用系统的响铃功能(就是那个你一输错就"噔!噔!"的声音 ).
3.l 忽略掉ctrl+l 换页字符
4. f 引入计算逻辑.比如可以一直不换行
5.p 通过清除整个屏幕来显示内容,而不是滚动屏幕.
6.c 和p差不多,但是先显示内容,后清除屏幕.
7.s 多个连续空行合并成一行
8.u 不显示下划线
9.+/[字符串] 在文件中查找该字符串,然后从该字符串开始显示.
10.+[数值] 从指定行开始显示
more命令在运行过程中,还支持一些操作命令:
Enter 默认向下滚动一行
ctrl+F 向下翻页
空格键 向下翻页
ctrl+B 返回上一页
= 显示当前行号
:f 输入文件名和当前行的行号
v 调用vi编辑器
!命令 调用shell,并执行.
q退出more
h 查看操作命令帮助
Less:功能更强大的more
在说到more命令的时候,提到了一个命令less,在more命令的描述中,less增强了more命令的功能,简称more plus~
咦!!?excuse me!!??喵喵喵!???为何在more中说less是more的增强,但是打开less之后,说more和less是对立的....这是要闹哪样...
希望这个疑问能在文档中找到...
less的文档略微有点长,就不全翻译了,主要看一些主要的内容,我这是又开始浮躁了么...
在man less 中描诉了less的作用,其中主要内容是:
less是比more更强大的一个程序,他允许向前查看内容,而且less和more不同,less在读取文件之前不会加载整份文件,所以less命令相较于vi(文件编辑器)这种命令来说,更快
,而且less拥有终端处理能力,所以less命令可以运行在多种终端上,甚至有限的支持硬拷贝终端.
在less的描述中,其实如果非要说和more有对立的应该就是less在读取文件前不会预加载整份文件,more要加载整份文件这点吧.
那么less的常用参数有哪些呢?又有什么作用呢?
1.b 设置缓冲区大小,我们知道cpu处理的数据必须是存储在内存中的数据,那么当内存中从硬盘中读取数据的时候,往往不会一个一个字节的读取,而是一次性读取多个字节,缓冲区的作用就是用来一次存取多个字节.
2.e 当文件显示结束时,自动退出.
3.f 强制打开特殊的文件,比如二进制文件,目录,硬件设备代号等.
4.g 只标记最后搜索的关键词汇
5.i 忽略搜索时的大小写.
6.m 显示类似于more命令的百分比
7.N 显示行号
8.o[文件名] 将less输出的内容在指定的文件中保存起来
9 Q 关闭系统那个出错时"噔噔噔"的声音.
10.s 合并连续空行为一行
11.S 当一行里的内容过长时,将超长部分舍弃.
12. -x [数值] 将制表符[tab]替换成指定的数字显示.
当然,既然less是more的增强版,那么less在运行时自然也支持一些操作命令.依然在less运行时,输入h,查看一下它支持的操作命令.
在less中:
空格键:向下翻一页,这里要和more区别,在more中空格键默认向下翻一行.
pagedown:向下翻一页
pageup:向上翻一页
/字符串 向后查找内容
?字符串 向前查找内容
n重复前一个搜寻,这个命令和/[字符串].?[字符串]有关,如果之前是/[字符串]那么n就代表向下查找,如果是?[字符串]则表示向前查找.
N反向重复前一个搜寻,和n命令类似,但是,他的结果刚好和n相反.
q 退出
h 查看帮助
新技能get!!
其实man命令就是通过less来查看文件的.
head:其实我是看脸的
他的主要参数就四个,
第一个参数c,指定显示多少字节的数据
第二个参数n,指定显示多少行
第三个参数q,打死都不显示文件名
第四个参数v,我不管我要一直显示文件名.
tail:额..我看腿
tail和head的审美观不同,head是个看脸的人,但是tail是个看腿的人.
所以呢,tail默认输出文件的最后一部分,也是默认输出10行.
各选项的作用:
1.c[数值]输出文件尾部制定大小的数据
2.f 显示文件最新追加的内容
3.F 在tail命令启动后,文件不可访问或者文件稍后变得不可访问,都会尝试打开文件
4.n 输出文件尾部指定行数的内容
5.--pid 当指定进程号的进程结束后,tail命令停止.
6. q 当有多个文件的时候,不显示文件名
7. s 指定监视变化文件时间间隔(秒) .
od:无论如何,我可以看二进制文件
od的作用就是可以以不同的方式来显示文件,比如,十进制,八进制,十六进制,ascii.
下面是od的一些选项:
A:输出格式的文件偏移量,想要选择那种字码基数,可选的有(d,o,x,n),依次对应着,十进制,八进制,十六进制以及木有.
j:略过的字节数量
N:截止到指定的字节数.
S:用于指定输出的字符串占多少个图形字符的位置.
t: 选择输出的格式,可选择的有:
a 每个ascii对应的名字
b 用八进制字节表示字符对应的ascii码值
d 有符号数值
f 浮点数
o 八进制
u 无符号数值
x十六进制数
v:不用*代替重复的输出
w:设置每行显示的字符数.
不行了,我得吐槽一下....
我得天哪,这几个命令我竟然学了两天...我感觉我要疯了....果然认真的学和粗略的看区别很大啊,我记得我之前看了类似的书籍的时候,两天基本一本书就看的差不多了...
现在几个命令我竟然学了这么久....
but,但是确实是有用处的,这种细细的学习方式,远比快读要深刻的多...虽然这样很累.
加油!少年!