od 命令用途是以指定格式顯示文件。
常見的文件為文本文件和二進制文件。此命令主要用來查看保存在二進制文件中的值。比如,程序可能輸出大量的數據記錄,每個數據是一個單精度浮點數。這些數據記錄存放在一個文件中,如果想查看下這個數據,這時候od命令就派上用場了。
中文名
OD作????用
格式化輸出文件中的數據
OD語法
編輯
語音
使用字符串類型顯示文件,來格式化輸出。
od [ -v ] [ -A AddressBase ] [ -N Count ] [ -j Skip ] [ -t TypeString ... ] [ File ... ]
使用標志顯示文件,來格式化輸出。
od [ -a ] [ -b ] [ -c ] [ -C ] [ -d ] [ -D ] [ -e ] [ -f ] [ -F ] [ -h ] [ -H ] [ -i ] [ -I ] [ -l ] [ -L ] [ -o ] [ -O ] [ -p ] [ -P ] [ -s ] [ -v ] [ -x ] [ -X ] [ [ -S [ N ] ] [ -w [ N ] ] [ File ] [ [ + ] Offset [ . | b | B ] [ + ] Label [ . | b | B ] ]
OD描述
編輯
語音
常見的文件為文本文件和二進制文件。此命令主要用來查看保存在二進制文件中的值。比如,程序可能輸出大量的數據記錄,每個數據是一個單精度浮點數。這些數據記錄存放在一個文件中,如果想查看下這個數據,這時候od命令就派上用場了。在我看來,od命令主要用來格式化輸出文件數據,即對文件中的數據進行無二義性的解釋。不管是IEEE754格式的浮點數還是ASCII碼,od命令都能按照需求輸出他們的值。
如果沒有指定文件名,或者文件名為“-”,則從標準輸入讀入數據。
od 命令用指定格式顯示由 File 參數指定的文件。如果 File 參數沒有給定, od 命令讀取標準輸入。 使用多個 -bcCDdFfOoSstvXx 選項可以指定多個類型。
在第一個語法格式中,輸出格式是由 -t 標志指定。如果沒有指定格式類型,-t o2 是缺省值。
在第二個語法格式中,輸出格式由標志組合指定。Offset 參數指定了文件中文件輸出的開始點。 缺省情況下,Offset 參數解釋為八進制字節。如果附加了 . 點后綴, 參數解釋為十進制的;如果參數前導以 x 或 0x 開始,處理為十六進制。如果 b 后綴添加到參數,解釋為塊是 512 字節;如果 B 后綴添加到參數上,解釋為塊是 1024 字節。
OD參數
編輯
語音
Label 參數解釋為首字節顯示的偽地址。 如果使用了該參數,它在 () 括號中給出,遵循 Offset 參數。 相對于 Offset 參數,后綴有同樣的意義。
當 od 命令讀取標準輸入時, Offset 參數和 Label 參數前頭必須有個 + (加號)。
OD環境變量
編輯
語音
環境變量的設置如 LANG 和 LC_ALL 影響著 od 命令的操作。 要獲取更多信息,請參閱《AIX 5L V5.2 系統管理指南:操作系統與設備》中的『理解環境變量的語言環境』 。
OD標志
編輯
語音
第一種格式的標志:
-A AddressBase 指定輸入偏移底數。此 AddressBase 變量是下列的字符之一:
d
偏移底數寫為十進制的。
o
偏移底數寫為八進制的。
x
偏移底數寫為十六進制的。
n
偏移底數沒有顯示。
除非指定 -A n,輸出行前將有需要寫的下一字節的輸入偏移量,輸入偏移量在輸入文件間會形成。 另外,跟隨在最后一個字節的字節偏移量將在所有的輸入數據處理完后顯示。沒有 -A 基地址選項和 [offset_string] 操作數,輸入偏移量底數以八進制顯示。
=
OD使用方法
編輯
語音
-j Skip
在開始顯示輸出前,跳躍過由 Skip 變量給定的字節數。 如果指定的文件超過一個,od 命令在顯示輸出前跳躍過分配的連接輸入文件字節數。 如果混合輸入不是至少跳躍字節的長度, od 命令將寫出診斷消息給標準錯誤,并退出非零狀態。 Count 選項參數
缺省情況下,Skip 變量的值解釋為十進制數字。 帶有前綴 0x 或 0X, 偏移量解釋為十六進制數;帶有前綴 0,偏移量解釋為八進制數。 如果字符 b,k,或者 m 附加到 Skip 變量包含的數,偏移量在字節上等于 Skip 變量各自乘以 512,1024,或者 1024*1024 的值。
-N Count 格式不超過由 Count 變量指定的輸入字節數。缺省情況下,Count 變量解釋為十進制數。帶有前綴 0x 或者 0X,認為是十六進制數。 如果以 0 開始,認為是八進制數。 顯示地址的底數不是由 Count 選項參數的底數提示的。
-t TypeString 指定輸出類型。TypeString 變量是一個當寫出數據時,指定使用類型的字符串。 多個類型能夠連接在同一個 TypeString 變量中, 并且 -t 標志能夠多次指定。 對于每個指定的類型寫出了輸出行, 依照給定類型指定字符的順序。TypeString 變量能夠包括下列字符:
a
顯示字節為指定的字符。在 0 到 01777 范圍內,帶有至少 7 位的字節,對于那些字符,用相應的名稱來寫。
c
顯示字節為字符。 由 c 類型字符串變換的字節數由 LC_CTYPE 本地類別確定。可打印的多個字節字符的寫法對應于字符的第一個字節;兩個字符序列 ** 的寫法對應于字符中每個保留的字節,作為字符繼續的指示。下列非圖形字符作為 C- 語言轉義序列使用:
\a 提示符
\b 退格符
\f 換頁
\n 換行字符
\0 空
\r 回車符
\v 垂直制表符
d
顯示字節為有符號十進制。缺省情況下,od 命令變換相應的字節數為 C -語言類型 int。d 類型字符串能夠跟隨無符號的十進制整數,它指定了由每個輸出類型實例變換的字節數。
可選的項 C,I,L,或者 S 字符能夠附加到 d 可選項,表示轉換應該分別適用于 char,int,long,或者 short。
f
顯示字節為浮點。缺省情況下,od 命令變換相應的字節數為 C - 語言類型 double。 f 類型字符串能夠跟隨無符號的十進制整數,它指定了由每個輸出類型的實例變換的字節數。
可選項 F,D,或者 L 字符能夠附加到 f 可選項,表示轉換應該分別適用于類型 float,double,或者 long double。
o
顯示字節為八進制。 缺省情況下, od 命令變換相應的字節數為 C - 語言類型 int。 o 類型字符串能夠跟隨無符號的十進制整數,它指定了由每個輸出類型實例變換的字節數。
可選項 C, I,L,或者 S 字符能夠附加到 o 可選項,表示轉換應該分別適用于類型 char,int,long,或者 short。
u
顯示字節為無符號的十進制。缺省情況下,od 命令變換相應的字節數為 C-語言類型 int。u 類型字符串能夠跟隨無符號的十進制整數,它指定了由每個輸出類型的實例變換的字節數。
可選的項 C,I,L,或者 S 字符能夠附加到 u 可選項,表示轉換應該分別適用于 char,int,long 或者 short。
x
顯示字節為無符號的十六進制。缺省情況下,od 命令變換相應的字節數為 C-語言類型 int。x 類型字符串能夠跟隨無符號的十進制整數,它指定了由每個輸出類型實例變換的字節數。
可選的項 C,I,L,或者 S 字符能夠附加到 x 可選項,表示轉換應該分別適用于 char,int,long 或者 short。
第二種格式的標志:
-a 顯示字節為字符,并且用它們的 ASCII 名稱顯示。如果 -p 標志也給定了,帶有偶校驗的字節加下劃線。 -P 標志引起帶有奇校驗的字節加下劃線。 否則忽略奇偶性校驗。
-b 顯示字節為八進制值。
-c 顯示字節為 ASCII 符。下列非圖形字符作為 C-語言轉義序列使用:
\ 反斜杠
\a 提示符
\b 退格符
\f 換頁
\n 換行字符
\0 空
\r 回車符
\t 制表符
\v 垂直制表符
其它表示為 3 位的八進制數。
-C 顯示擴展字符作為標準打印 ASCII 字符(使用合適的字符轉義),并且以十六進制格式顯示多字節字符。
-d 顯示 16 位字為無符號十進制值。
-D 顯示長字為無符號十進制值。
-e 顯示長字為雙精度、浮點。(如同 -F 標志)
-f 顯示長字為浮點。
-F 顯示長字為雙精度、浮點。(如同 -e 標志)
-h 顯示 16 位字為無符號十六進制。
-H 顯示長字為無符號十六進制值。
-i 顯示 16 位字為有標記十進制。
-I (大寫 i)顯示長字為有標記十進制值。
-l (小寫 L)顯示長字為有標記十進制值。
-L 顯示長字為有標記十進制值。
注意: 標志 -I(大寫 i),-l(小寫 L), 和 -L 是相同的。
-o 顯示 16 位字為無符號八進制。
-O 顯示長字為無符號八進制值。
-p 表示對 -a 轉換進行偶校驗。
-P 表示對 -a 轉換進行奇校驗。
-s 顯示 16 位字為有標記十進制值。
-S[N] 搜索以空字節結束的字符的字符串。 N 變量指定了需標識的最小長度的字符串。如果 N 變量省略了,最小長度缺省值為 3 個字符。
-v 標志對于下列兩種格式是一樣的:
-v 寫所有輸入數據。 缺省情況下, 等同于先前輸出行的輸出行沒有打印,但是用只包含 * (星號)的行替換。 當指定 -v 標志時,打印所有的行。
-w [N] 指定需解釋并且在每個輸出行顯示的輸入字節的數量。 如果 -w 標志沒有指定,每一顯示行讀取 16 字節。 如果指定了 -w 標志沒有帶 N 變量,每個顯示行讀取 32 個字節。 最大輸入值是 4096 字節。 大于 4096 字節的輸入值將重新分配最大值。
-x 顯示 16 位字為十六進制值。
-X 顯示長字為無符號十六進制值。(如同 -H 標志)
退出狀態
此命令返回下列出口值:
0 所有輸入文件被成功處理。
>0 出現錯誤。
OD示例
編輯
語音
1. 以八進制顯示文件,一次顯示一頁,請輸入:
od a.out | pg
此命令以八進制格式顯示 a.out 文件并且通過 pg 命令管道輸出。
2. 一次轉換文件為數個格式,請輸入:
od -t cx a.out > a.xcd
此命令把 a.out 文件的內容,以十六進制格式(x)和字符格式(c)寫到 a.xcd 文件中。
3. 在中間開始顯示文件(使用第一語法格式),請輸入:
od -t acx -j 100 a.out
此命令把 a.out 文件以指定的字符(a)、字符(c)和十六進制(x)格式顯示,從第 100 個字節開始。
4. 在文件中間啟動(使用第二種語法格式),請輸入:
od -bcx a.out +100.
把 a.out 文件以八進制字節(-b)、字節(-c)和十六進制(-x)格式顯示,從第 100 個字節開始。偏移量后的 . (點)表示它是十進制數。沒有點,輸出將從第 64(八進制為 100)個字節開始。
文件
/usr/bin/od 包含od 命令。