首頁 > 文字處理與搜尋 > xxd

xxd:十六進制傾印與逆轉換工具

xxd 命令是一個將檔案以十六進制(hexadecimal)格式傾印(dump)輸出,或反之將十六進制傾印逆轉換回原始二進制檔案的工具。它比 `hexdump` 更靈活,特別是在編輯二進制檔案內容後將其還原時非常有用。

概述

xxd 類似於 `hexdump` 或 `od`,它會以十六進制和 ASCII 字元串的形式顯示二進制檔案的內容。但其最大的特色是能夠將傾印的內容**逆轉換(reverse)**回原始二進制檔案。由於此功能,您可以在文字編輯器中以十六進制形式修改二進制檔案,然後使用 `xxd -r` 將其保存回二進制檔案。這種靈活性在分析和修改二進制檔案時非常強大,特別是與 `vim` 編輯器一起使用時。

主要特點

xxd 命令的主要特點如下:

  • 以十六進制和 ASCII 格式輸出檔案內容。
  • 能夠將十六進制傾印逆轉換回原始二進制。
  • 可與普通文字編輯器一起用於修改二進制檔案。
  • 提供多種選項以精細控制輸出格式。

xxd 與 hexdump 的差異

xxd 和 hexdump 在十六進制傾印功能上相似,但最大的差異在於是否存在逆轉換功能。

  • xxd: 提供將十六進制傾印還原為原始二進制檔案的「逆轉換」功能 (`-r`)。與 `vim` 的整合功能強大。
  • hexdump: 僅專注於傾印功能的工具,不提供逆轉換功能。

主要選項

我們根據目的將常用的 xxd 命令選項進行了分組。

1) 傾印與逆轉換選項

2) 說明

生成的命令:

請試著組合命令。

這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。

`xxd` 執行命令。

請將上述選項組合在一起,與 AI 一同虛擬執行命令。

使用範例

透過 xxd 命令的各種使用範例來學習其功能。

檔案內容十六進制傾印

echo 'Hello World!' > test.txt
xxd test.txt

輸出 `test.txt` 檔案的內容為十六進制和 ASCII 字元。

將十六進制傾印保存到檔案

xxd /bin/ls > ls_dump.txt

將二進制檔案 `/bin/ls` 的內容保存到 `ls_dump.txt` 檔案。

將傾印檔案逆轉換回原始檔案

xxd -r ls_dump.txt ls_copy

將之前保存的 `ls_dump.txt` 檔案還原為原始二進制檔案 `ls_copy`。**此功能是 xxd 最大的特點。**

與 vim 一起編輯二進制檔案

vim file.bin
(在 vim 中) :%!xxd
(編輯)
(在 vim 中) :%!xxd -r

在 `vim` 中使用 `%!xxd` 命令將當前檔案切換到十六進制傾印模式,編輯後再使用 `%!xxd -r` 將其還原並保存。

安裝

xxd 包含在 `vim` 套件中。大多數 Linux 發行版都預設安裝了 `vim-common` 或 `vim` 套件,因此無需額外安裝。

Debian/Ubuntu

sudo apt update
sudo apt install -y vim-common

RHEL/CentOS/Fedora

sudo dnf install -y vim-common

提示與注意事項

整理了使用 xxd 命令時需要注意的事項。

提示

  • `xxd` 的 `-r` 選項只能正常逆轉換由 `xxd` 生成的傾印檔案。它可能不適用於其他格式的十六進制傾印檔案。
  • 修改二進制檔案時務必非常小心。一個錯誤的位元組可能會損壞整個程式。
  • 逆轉換時,為了避免覆寫原始檔案,始終建議保存為不同的檔案名。(例如:`xxd -r old.hex > new.bin`)

相關命令

功能上相似或經常一起使用的命令。


相同類別命令