本文轉載:http://www.router.net.cn/Article/36508.html |
|
|
隨著電腦飛速的發展,很多人開始學習Linux,怎樣才能學好Linux,一定要學好Linux的命令。學習Linux,你可能會遇到Linux指令od的知識 ,這裡將介紹Linux指令od應用方法。
Linux指令:od
樣本用法:od -c hello
Linux指令:od
od命令
使用者通常使用od命令查看特殊格式的檔案內容。通過指定該命令的不同選項可以以十進位、八進位、十六進位和ASCII碼來顯示檔案。
文法:od [選項] 檔案…
命令中各選項的含義:
- A 指定地址基數,包括:
d 十進位
o 八進位(系統預設值)
x 十六進位
n 不列印位移值
- t 指定資料的顯示格式,主要的參數有:
c ASCII字元或反斜線序列
d 有符號十進位數
f 浮點數
o 八進位(系統預設值為02)
u 無符號十進位數
x 十六進位數
除了選項c以外的其他選項後面都可以跟一個十進位數n,指定每個顯示值所包含的位元組數。
說明:od命令系統預設的顯示方式是八進位,這也是該命令的名稱由來(Octal
Dump)。但這不是最有用的顯示方式,用ASCII碼和十六進位組合的方式能提供更有價值的資訊輸出。
例如:
- $ od - Ax - tcx1 wh5 注意:參數的順序od - Ax - txc1 wh5報錯
- 000000 F i l e s y s t e m
- 46 69 6c 65 73 79 73 74 65 6d 20 20 20 20 20 20
- 000010 1 k - b l o c k s
- 20 20 20 20 20 31 6b 2d 62 6c 6f 63 6b 73 20 20
- 000020 U s e d A v a i l a b
- 20 20 20 20 55 73 65 64 20 41 76 61 69 6c 61 62
- 000030 l e U s e % M o u n t e d
- 6c 65 20 55 73 65 25 20 4d 6f 75 6e 74 65 64 20
-
- ---- My test -----
- ysun@linetcps1dev:~> cat a
- hello,world.
- Joey.
- ysun@linetcps1dev:~> od -Ax -tcx4 a
- 000000 h e l l o , w o r l d . /n /t J o
- 6c6c6568 6f772c6f 2e646c72 6f4a090a
- 000010 e y . /n /n /0 /0 /0
- 0a2e7965 0000000a
- 000015
od 和 hexdump
公用程式 od 和 hexdump 分別輸出檔案或流的八進位、十六進位或其他編碼的位元組。它們對於訪問或可視地檢查檔案中不能直接顯示在終端上的字元很有用。
HERE 文檔
有一種特殊的重新導向值得在本教程中提一下。雖然嚴格地講,HERE 文檔是諸如 bash 這樣的 shell
的特性,而不是與文本公用程式有關的任何東西,但是它們提供了向文本公用程式發送特殊資料的有用途徑。
雙小於符號重新導向可用於從終端接收偽檔案的內容。HERE 文檔必須緊跟在 << 後面指定一個終止分隔字元。
如:
- $ od -c <<END $ od -c - Ax - tcx1 <<END 這樣就可以像上面一樣顯示了
- > Alice
- > Bob
- > END
- 0000000 A l i c e /n B o b /n
- 0000012
任何字串都可以用作分隔字元;輸入將在一行上遇到該字串本身的地方終止。這樣為我們提供了建立持久性檔案的快捷方法:
- $ cat myfile <<EOF
- > Dave
- > Edna
- > EOF
- $ hexdump -C myfile
- 00000000 44 61 76 65 0a 45 64 6e 61 0a |Dave.Edna.|
- 0000000a
這就是Linux指令od的知識。
編輯本段查詢ASCII技巧 方便查詢ASCII碼對應的字元:建立一個文字文件,按住ALT+要查詢的碼值(注意,這裡是十進位) 鬆開即可顯示出對應字元。例如:按住ALT+97,則會顯示出‘a’。
標準ASCII表
Bin |
Dec |
Hex |
縮寫/字元 |
解釋 |
00000000 |
0 |
00 |
NUL(null) |
Null 字元 |
00000001 |
1 |
01 |
SOH(start of headling) |
標題開始 |
00000010 |
2 |
02 |
STX (start of text) |
本文開始 |
00000011 |
3 |
03 |
ETX (end of text) |
本文結束 |
00000100 |
4 |
04 |
EOT (end of transmission) |
傳輸結束 |
00000101 |
5 |
05 |
ENQ (enquiry) |
請求 |
00000110 |
6 |
06 |
ACK (acknowledge) |
收到通知 |
00000111 |
7 |
07 |
BEL (bell) |
響鈴 |
00001000 |
8 |
08 |
BS (backspace) |
退格 |
00001001 |
9 |
09 |
HT (horizontal tab) |
水平定位字元 |
00001010 |
10 |
0A |
LF (NL line feed, new line) |
換行鍵 |
00001011 |
11 |
0B |
VT (vertical tab) |
垂直定位字元 |
00001100 |
12 |
0C |
FF (NP form feed, new page) |
換頁鍵 |
00001101 |
13 |
0D |
CR (carriage return) |
斷行符號鍵 |
00001110 |
14 |
0E |
SO (shift out) |
不用切換 |
00001111 |
15 |
0F |
SI (shift in) |
啟用切換 |
00010000 |
16 |
10 |
DLE (data link escape) |
資料鏈路轉義 |
00010001 |
17 |
11 |
DC1 (device control 1) |
裝置控制1 |
00010010 |
18 |
12 |
DC2 (device control 2) |
裝置控制2 |
00010011 |
19 |
13 |
DC3 (device control 3) |
裝置控制3 |
00010100 |
20 |
14 |
DC4 (device control 4) |
裝置控制4 |
00010101 |
21 |
15 |
NAK (negative acknowledge) |
拒絕接收 |
00010110 |
22 |
16 |
SYN (synchronous idle) |
同步空閑 |
00010111 |
23 |
17 |
ETB (end of trans. block) |
傳輸塊結束 |
00011000 |
24 |
18 |
CAN (cancel) |
取消 |
00011001 |
25 |
19 |
EM (end of medium) |
介質中斷 |
00011010 |
26 |
1A |
SUB (substitute) |
替補 |
00011011 |
27 |
1B |
ESC (escape) |
溢出 |
00011100 |
28 |
1C |
FS (file separator) |
檔案分割符 |
00011101 |
29 |
1D |
GS (group separator) |
分組符 |
00011110 |
30 |
1E |
RS (record separator) |
記錄分離符 |
00011111 |
31 |
1F |
US (unit separator) |
單元分隔字元 |
00100000 |
32 |
20 |
(space) |
空格 |
00100001 |
33 |
21 |
! |
|
00100010 |
34 |
22 |
" |
|
00100011 |
35 |
23 |
# |
|
00100100 |
36 |
24 |
$ |
|
00100101 |
37 |
25 |
% |
|
00100110 |
38 |
26 |
& |
|
00100111 |
39 |
27 |
' |
|
00101000 |
40 |
28 |
( |
|
00101001 |
41 |
29 |
) |
|
00101010 |
42 |
2A |
* |
|
00101011 |
43 |
2B |
+ |
|
00101100 |
44 |
2C |
, |
|
00101101 |
45 |
2D |
- |
|
00101110 |
46 |
2E |
. |
|
00101111 |
47 |
2F |
/ |
|
00110000 |
48 |
30 |
0 |
|