每天一个linux命令:more、less、tail、head、nl、hexdump、od

每天一个linux命令:more、less、tail、head、nl、hexdump、od

更多精彩请关注:www.zicreate.com

以下命令都是查看文件内容命令,但是区别如下:

  • more 一页一页的显示档案内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行
  • od / hexdump 以二进位的方式读取档案内容!
  • nl 显示的时候,顺道输出行号!
  • cat 由第一行开始显示档案内容(concatenate)
  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!

详解

(1) more

more 命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)。

该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:–More–(XX%)可以用下列不同的方法对提示做出回答:

  • 按Space键:显示文本的下一屏内容。
  • 按Enier键:只显示文本的下一行内容。
  • 按斜线符/:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
  • 按H键:显示帮助屏,该屏上有相关的帮助信息。
  • 按B键:显示上一屏内容。
  • 按Q键:退出rnore命令。

常用参数:

-<数字>:指定每屏显示的行数;
-d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
-c:不进行滚屏操作。每次刷新这个屏幕;
-s:将多个空行压缩成一行显示;
-u:禁止下划线;
+<数字>:从指定数字的行开始显示。

常用操作:

显示文件内容:

$ more file.xtx

将管道中传过来的文件分页显示:

$ ls * | more

(2)less

less命令的作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。要退出less程序,应按Q键。

主要参数:

-e:文件内容显示完毕后,自动退出;
-f:强制显示文件;
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
-l:搜索时忽略大小写的差异;
-N:每一行行首显示行号;
-s:将连续多个空行压缩成一行显示;
-S:在单行显示较长的内容,而不换行显示;
-x<数字>:将TAB字符显示为指定个数的空格字符。

常用操作:

显示文件内容:

$ less file.xtx

将管道中传过来的文件分页显示:

$ ls * | less

想要搜索关键字时,在命令中输入“/” + keyword + 回车

(3)head

head命令用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容。

主要参数:

-n<数字>:指定显示头部内容的行数;
-c<字符数>:指定显示头部内容的字符数;
-v:总是显示文件名的头信息;
-q:不显示文件名的头信息。

常用操作:

显示文件内容:

$ head -n 20 file.xtx

显示管道中传过来的文件:

$ ls * | head -n 20

(4)tail

tail命令用于输入文件中的尾部内容。tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。

注意:如果表示字节或行数的N值之前有一个”+”号,则从文件开头的第N项开始显示,而不是显示文件的最后N项。N值后面可以有后缀:b表示512,k表示1024,m表示1 048576(1M)。

主要参数:

-c::显示后多少个字节
-n:显示后多少行,n可以省去
-f:跟踪显示文件新追加的内容,常用日志监控

常用操作:

显示文件内容:

>
tail file 显示文件file的最后10行
tail +20 file 显示文件file的内容,从第20行至文件末尾
tail -c 10 file 显示文件file的最后10个字符
tail -f /var/log/messages 跟踪显示文件新追加的内容,命令会一直运行直到 ctrl+c 退出
ls * | tail -n 20 显示管道中传过来的文件:

(5)nl

nl命令读取 file 参数(缺省情况下标准输入),计算输入中的行号,将计算过的行号写入标准输出。其默认的结果与 cat -n 有点不太一样, nl 可以将行号做比较多的显示设计,包括位数与是否自动补齐 0 等等的功能。

主要参数:

-b :指定行号指定的方式,主要有两种:
    -b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
    -b t :如果有空行,空的那一行不要列出行号(默认值);

-n :列出行号表示的方法,主要有三种:
    -n ln :行号在萤幕的最左方显示;
    -n rn :行号在自己栏位的最右方显示,且不加 0    -n rz :行号在自己栏位的最右方显示,且加 0
-w :行号栏位的占用的位数。
-p :在逻辑定界符处不重新开始计算。

用法:

$ nl joke.txt -n ln
1       一个本科男找了一个女博士。

2       情人节,本科男给女博士发了一个520元的红包,附言:我爱你。

3       稍后,女博士给本科男发了一个5.20元的红包,并附言:我爱你多一点!

$ history | awk '{CMD[$2]++;count++;} END { for (a in CMD )print CMD[ a ]" " CMD[ a ]/count*100 "% " a }' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n 10

这条命令可以打印出前十名你使用最多的命令, 最后的10表示10条。

扩展

od 和 hexdump 分别输出文件或流的八进制、十六进制或其他编码的字节。它们对于访问或可视地检查文件中不能直接显示在终端上的字符很有用。

(1)hexdump

hexdump命令一般用来查看“二进制”文件的十六进制编码,但实际上它能查看任何文件,而不只限于二进制文件。

常用参数:

-n length 只格式化输入文件的前length个字节。
-C 输出规范的十六进制和ASCII码。
-b 单字节八进制显示。
-c 单字节字符显示。
-d 双字节十进制显示。
-o 双字节八进制显示。
-x 双字节十六进制显示。
-s 从偏移量开始输出。
-e 指定格式字符串,格式字符串包含在一对单引号中,格式字符串形如:'a/b "format1" "format2"'

使用方法

$ hexdump -C joke.txt
00000000  e4 b8 80 e4 b8 aa e6 9c  ac e7 a7 91 e7 94 b7 e6  |................|
00000010  89 be e4 ba 86 e4 b8 80  e4 b8 aa e5 a5 b3 e5 8d  |................|
00000020  9a e5 a3 ab e3 80 82 0a  0a e6 83 85 e4 ba ba e8  |................|
00000030  8a 82 ef bc 8c e6 9c ac  e7 a7 91 e7 94 b7 e7 bb  |................|
00000040  99 e5 a5 b3 e5 8d 9a e5  a3 ab e5 8f 91 e4 ba 86  |................|
00000050  e4 b8 80 e4 b8 aa 35 32  30 e5 85 83 e7 9a 84 e7  |......520.......|
00000060  ba a2 e5 8c 85 ef bc 8c  e9 99 84 e8 a8 80 ef bc  |................|
00000070  9a e6 88 91 e7 88 b1 e4  bd a0 e3 80 82 0a 0a e7  |................|
00000080  a8 8d e5 90 8e ef bc 8c  e5 a5 b3 e5 8d 9a e5 a3  |................|
00000090  ab e7 bb 99 e6 9c ac e7  a7 91 e7 94 b7 e5 8f 91  |................|
000000a0  e4 ba 86 e4 b8 80 e4 b8  aa 35 2e 32 30 e5 85 83  |.........5.20...|
000000b0  e7 9a 84 e7 ba a2 e5 8c  85 ef bc 8c e5 b9 b6 e9  |................|
000000c0  99 84 e8 a8 80 ef bc 9a  e6 88 91 e7 88 b1 e4 bd  |................|
000000d0  a0 e5 a4 9a e4 b8 80 e7  82 b9 ef bc 81 0a        |..............|
000000de

(2)od

od命令用于输出文件的八进制、十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符。

常见的文件为文本文件和二进制文件。此命令主要用来查看保存在二进制文件中的值。比如,程序可能输出大量的数据记录,每个数据是一个单精度浮点数。这些数据记录存放在一个文件中,如果想查看下这个数据,这时候od命令就派上用场了。在我看来,od命令主要用来格式化输出文件数据,即对文件中的数据进行无二义性的解释。不管是IEEE754格式的浮点数还是ASCII码,od命令都能按照需求输出它们的值。

常用参数:

-a:此参数的效果和同时指定“-ta”参数相同;
-A:<字码基数>:选择以何种基数计算字码;
-b:此参数的效果和同时指定“-toC”参数相同;
-c:此参数的效果和同时指定“-tC”参数相同;
-d:此参数的效果和同时指定“-tu2”参数相同;
-f:此参数的效果和同时指定“-tfF”参数相同;
-h:此参数的效果和同时指定“-tx2”参数相同;
-i:此参数的效果和同时指定“-td2”参数相同;
-j<字符数目>或--skip-bytes=<字符数目>:略过设置的字符数目;
-l:此参数的效果和同时指定“-td4”参数相同;
-N<字符数目>或--read-bytes=<字符数目>:到设置的字符树目为止;
-o:此参数的效果和同时指定“-to2”参数相同;
-s<字符串字符数>或--strings=<字符串字符数>:只显示符合指定的字符数目的字符串;
-t<输出格式>或--format=<输出格式>:设置输出格式;
-v或--output-duplicates:输出时不省略重复的数据;
-w<每列字符数>或--width=<每列字符数>:设置每列的最大字符数;
-x:此参数的效果和同时指定“-h”参数相同;
--help:在线帮助;
--version:显示版本信息。

- A 指定地址基数,包括:
d 十进制
o 八进制(系统默认值)
x 十六进制
n 不打印位移值
- t 指定数据的显示格式,主要的参数有:
c ASCII字符或反斜杠序列
d 有符号十进制数
f 浮点数
o 八进制(系统默认值为02)
u 无符号十进制数
x 十六进制数
除了选项c以外的其他选项后面都可以跟一个十进制数n,指定每个显示值所包含的字节数。

使用方法

$ od joke.txt
0000000 134344 162200 125270 116346 163654 110647 112347 163267
0000020 137211 135344 162206 100270 134344 162652 131645 106745
0000040 162632 125643 100343 005202 163012 102603 135344 164272
0000060 101212 136357 163214 126234 123747 163621 133624 135747
0000100 162631 131645 106745 162632 125643 107745 162221 103272
0000120 134344 162200 125270 031065 162460 101605 115347 163604
0000140 121272 106345 167605 106274 114751 164204 100250 136357
0000160 163232 110610 104347 162261 120275 100343 005202 163412
0000200 106650 110345 167616 106274 122745 162663 115215 121745
0000220 163653 114673 116346 16365
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值