# Linux中hexdump命令有什么用
## 引言
在Linux系統管理和開發過程中,我們經常需要查看或分析文件的二進制內容。`hexdump`命令就是一個強大的工具,它能夠以十六進制、ASCII、十進制等多種格式顯示文件內容。本文將深入探討`hexdump`的用途、基本語法、常用選項以及實際應用場景。
## 一、hexdump命令概述
### 1.1 什么是hexdump
`hexdump`是Linux/Unix系統中的一個命令行工具,主要用于以用戶指定的格式顯示文件內容。它可以將輸入數據轉換為十六進制、八進制、十進制或ASCII等多種格式輸出。
### 1.2 基本功能
- 以十六進制格式查看文件內容
- 支持自定義輸出格式
- 顯示ASCII字符表示
- 支持偏移量顯示
- 處理二進制數據流
## 二、hexdump基本語法
```bash
hexdump [選項] [文件...]
如果沒有指定文件或文件為-
,則從標準輸入讀取數據。
-b
:單字節八進制顯示
hexdump -b file.bin
每行顯示16個字節的八進制值
-c
:單字節字符顯示
hexdump -c file.txt
非打印字符顯示為3位八進制數
-C
:經典hex+ASCII顯示(最常用)
hexdump -C file.bin
左邊十六進制,右邊ASCII字符
-d
:兩字節十進制顯示
hexdump -d file.bin
-n 長度
:只顯示前n個字節
hexdump -n 64 -C file.bin
-s 偏移量
:跳過開始的n個字節
hexdump -s 128 -C file.bin
-v
:顯示所有數據(默認會省略重復行)
hexdump -v -C file.bin
hexdump
最強大的功能在于可以使用自定義格式字符串:
hexdump -e '格式字符串' 文件
格式字符串可以包含:
- "%07.7_ax "
:7位十六進制偏移量
- "%08x "
:8位十六進制數
- "%_p"
:ASCII字符
- "\n"
:換行
示例:
hexdump -e '16/1 "%02x " " | "' -e '16/1 "%_p" "\n"' file.bin
分析可執行文件或二進制數據文件:
hexdump -C /bin/ls | head -20
檢查原始網絡數據:
tcpdump -w packet.pcap
hexdump -C packet.pcap | less
讀取串口原始數據:
stty -F /dev/ttyS0 115200
cat /dev/ttyS0 | hexdump -C
查看磁盤前512字節(MBR):
sudo hexdump -C -n 512 /dev/sda
分析二進制文件結構:
hexdump -C -s 0x100 -n 64 program.bin
od
(八進制轉儲)是另一個類似工具,但hexdump
通常更靈活:
od -tx1 -Ax file.bin
xxd
來自vim工具集,功能類似但語法不同:
xxd file.bin
hd
是hexdump -C
的別名,提供相同的經典輸出格式。
顯示帶偏移量的十六進制和ASCII:
hexdump -e '"%07.7_Ax\n"' -e '"%07.7_ax " 8/1 "%02x " " " 8/1 "%02x " " |" 16/1 "%_p" "|\n"' file.bin
假設有一個結構體:
struct {
uint32_t magic;
uint16_t version;
uint8_t flags;
uint8_t reserved;
}
可以用以下命令解析:
hexdump -e '1/4 "%08x " 1/2 "%04x " 1/1 "%02x " 1/1 "%02x\n"' data.bin
監控USB設備輸入:
cat /dev/usbhiddev0 | hexdump -C
使用-C
選項或自定義格式中的%_ax
或%_Ad
。
hexdump -c file.bin | awk '{print $NF}'
可以配合xxd
使用:
hexdump -C file.bin | xxd -r > newfile.bin
可能是默認的重復行省略,使用-v
選項顯示全部內容。
hexdump
是Linux系統中一個極其有用的二進制數據分析工具,通過靈活的自定義格式選項,可以滿足各種二進制數據查看和分析需求。無論是系統管理員、開發人員還是安全研究人員,掌握hexdump
的使用都能大大提高工作效率。
man hexdump
- 官方手冊頁info hexdump
- 更詳細的文檔注意:本文基于Linux系統中的GNU coreutils版本hexdump編寫,不同系統或BSD版本的hexdump可能在選項和語法上有差異。 “`
這篇文章共計約1850字,全面介紹了hexdump命令的用途、語法、選項和實際應用,采用Markdown格式編寫,包含代碼塊、列表、標題等標準Markdown元素。您可以根據需要進一步調整內容或格式。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。