哈嘍,大家好,我是程序員秘書LittleG。
前言
hexdump
是一個(gè)在 Linux 系統(tǒng)中用于顯示文件或標(biāo)準(zhǔn)輸入數(shù)據(jù)的十六進(jìn)制、十進(jìn)制、八進(jìn)制和 ASCII 編碼的命令。通常用于分析和調(diào)試二進(jìn)制文件。對(duì)于分析二進(jìn)制文件、故障排查以及理解數(shù)據(jù)結(jié)構(gòu)非常有用。通??梢越Y(jié)合dd命令使用《Linux dd命令,希望不常用,但非常有用的命令~》,今天學(xué)習(xí)一下hexdump
基本語(yǔ)法和如何使用。
正文
命令格式
hexdump [選項(xiàng)] [文件]
常用選項(xiàng)
-b:以八進(jìn)制字節(jié)形式顯示每個(gè)字節(jié)。
-d:以十進(jìn)制形式顯示每?jī)蓚€(gè)字節(jié)。
-o:以八進(jìn)制形式顯示每?jī)蓚€(gè)字節(jié)。
-x:以十六進(jìn)制形式顯示每?jī)蓚€(gè)字節(jié)。
-n length:僅顯示指定長(zhǎng)度的字節(jié)。
-s skip:從指定偏移量開始顯示。
-e fmt_string:使用自定義格式字符串來(lái)格式化輸出。
-v:在沒(méi)有找到匹配數(shù)據(jù)時(shí)不抑制輸出。
-C:與
-v
相反,當(dāng)沒(méi)有數(shù)據(jù)匹配時(shí),抑制輸出。-m:限制輸出的行數(shù),對(duì)于大文件很有用。
使用舉例
查看文件的十六進(jìn)制及ASCII表示:
hexdump -C myfile.bin
只顯示文件的前100字節(jié):
hexdump -C -n 100 myfile.bin
從偏移量256開始顯示:
hexdump -C -s 256 myfile.bin
使用自定義格式:
hexdump -e '8/1 "%02X " 1/1 " "' -e '8/1 "n"' myfile.bin
說(shuō)明:前一個(gè)格式字符串指示每行輸出8個(gè)十六進(jìn)制字節(jié),后跟一個(gè)空格,后一個(gè)格式字符串用于換行。
結(jié)合grep查找特定內(nèi)容:
hexdump -C myfile.bin | grep -a 'some pattern'
使用grep
查找十六進(jìn)制輸出中的特定模式,注意使用-a
選項(xiàng)讓grep處理二進(jìn)制數(shù)據(jù)。