用户通常使用od命令查看特殊格式的文件内容。通过指定该命令的不同选项可以以十进制、八进制、十六进制和ASCII码来显示文件。
语法:
od [选项] 文件…
命令中各选项的含义:
- A 指定地址基数,包括: d 十进制 o 八进制(系统默认值) x 十六进制 n 不打印位移值 - t 指定数据的显示格式,主要的参数有: c ASCII字符或反斜杠序列 d 有符号十进制数 f 浮点数 o 八进制(系统默认值为02) u 无符号十进制数 x 十六进制数
除了选项c以外的其他选项后面都可以跟一个十进制数n,指定每个显示值所包含的字节数。
说明:od命令系统默认的显示方式是八进制,这也是该命令的名称由来(Octal
Dump)。但这不是最有用的显示方式,用ASCII码和十六进制组合的方式能提供更有价值的信息输出。
实例
1 $ od - Ax - tcx1 wh5 2 000000 F i l e s y s t e m 3 46 69 6c 65 73 79 73 74 65 6d 20 20 20 20 20 20 4 000010 1 k - b l o c k s 5 20 20 20 20 20 31 6b 2d 62 6c 6f 63 6b 73 20 20 6 000020 U s e d A v a i l a b 7 20 20 20 20 55 73 65 64 20 41 76 61 69 6c 61 62 8 000030 l e U s e % M o u n t e d 9 6c 65 20 55 73 65 25 20 4d 6f 75 6e 74 65 64 20 10 11 ---- My test ----- 12 ysun@linetcps1dev:~> cat a 13 hello,world. 14 Joey.
1 ysun@linetcps1dev:~> od -Ax -tcx4 a 2 000000 h e l l o , w o r l d . J o 3 6c6c6568 6f772c6f 2e646c72 6f4a090a 4 000010 e y . 0 0 0 5 0a2e7965 0000000a 6 000015
od 和 hexdump实用程序
od 和 hexdump 分别输出文件或流的八进制、十六进制或其他编码的字节。它们对于访问或可视地检查文件中不能直接显示在终端上的字符很有用。
HERE 文档
有一种特殊的重定向值得在本教程中提一下。虽然严格地讲,HERE 文档是诸如 bash 这样的 shell的特性,而不是与文本实用程序有关的任何东西,但是它们提供了向文本实用程序发送特殊数据的有用途径。
双小于号重定向可用于从终端接收伪文件的内容。HERE 文档必须紧跟在 << 后面指定一个终止分隔符。
如:
1 $ od -c <<END 2 > Alice 3 > Bob 4 > END 5 0000000 A l i c e B o b 6 0000012
任何字符串都可以用作分隔符;输入将在一行上遇到该字符串本身的地方终止。这样为我们提供了创建持久性文件的快捷方法:
1 $ cat myfile <<EOF 2 > Dave 3 > Edna 4 > EOF 5 $ hexdump -C myfile 6 00000000 44 61 76 65 0a 45 64 6e 61 0a |Dave.Edna.| 7 0000000a