您想要數據的十六進制轉儲(十六進制視圖)嗎? xxd 命令可以為您做到這一點。
與任何其他普通命令一樣,它從標準輸入或文件中獲取數據並提供十六進制輸出。 您也可以反過來將十六進制轉換為普通字符。
在本教程中,我將向您展示如何在 Linux 中使用 xxd 命令的不同示例。
在你的 Linux 系統上安裝 XXD
xxd 實用程序並未預安裝在大多數 Linux 發行版上,但可以使用默認包管理器輕鬆安裝。
sudo apt install xxd
對於基於 Fedora/RHEL 的:
sudo dnf install vim-common
對於基於 Arch 的發行版:
sudo pacman -S xxd
Linux中XXD命令的使用方法
完成安裝後,您需要按照給定的命令語法來使用 xxd 命令:
xxd [options] [file]
為了便於理解,我將使用名為 Sample.txt
整個教程,其中包含以下內容:
Which Linux distro is your daily driver?
1. Ubuntu
2. Debian
3. RHEL
4. Fedora
5. Arch
6. Gentoo
7. LFS (The GOAT)
創建一個十六進制轉儲 Sample.txt
文件,我將使用以下命令:
xxd Sample.txt
當然,您可以使用不同的選項來修改 xdd 命令的默認行為。 讓我來告訴你怎麼做。
修剪輸出 xxd 中的線
xxd 命令允許您修剪輸出中的行。
為此,您需要使用 -s
檢查並添加要跳過的前導行數:
xxd -s [lines_to_skip] Filename
所以假設你想從第 5 行開始十六進制轉儲,這意味著你必須修剪前 4 行:
xxd -s 0x40 Sample.txt
正如你所看到的,修剪前 4 行它給了我從第五行開始的十六進制轉儲。
但是如果你想得到最後幾行的十六進制轉儲你也可以那樣做!
要獲取行的最後一個數字 n 的十六進制轉儲,您需要按如下方式運行 xxd 命令:
xxd -s -[Last_n_lines] Filename
所以假設我想獲取最後 3 行的十六進制轉儲,那麼我將使用以下內容:
xxd -s -0x30 Sample.txt

指定列的長度
您可能想要指定要顯示的列數,而不是 xxd 默認顯示的列數 (10)。
為此,您必須使用 -c
檢查並添加應在輸出中顯示的列數:
xxd -c [No_of_columns] Filename
假設我想要 4 列的輸出,那麼我將使用以下內容:
xxd -c 4 Sample.txt

指定輸出長度
它類似於我在如何修剪輸出中解釋的內容,但在這裡您可以指定從第一行開始需要多少行輸出。
要指定輸出長度,您所要做的就是使用 -l
檢查並指定您想要的輸出行數:
xxd -l [Output_length_in_lines] Filename
所以假設我只想要十六進制轉儲的前 5 行,那麼我將使用以下內容:
xxd -l 0x50 Sample.txt

獲取二進制輸出而不是十六進制
xxd 命令還允許您以二進製而不是十六進制獲取輸出!
這很簡單,二進制輸出可以使用 -b
旗幟:
xxd -b Filename
在這裡,我轉換了我的文本文件 Sample.txt
二進制:
xxd -b Sample.txt

獲取大寫字母的十六進制輸出
您可能會遇到需要大寫字母輸出的情況。
您可以使用大寫字母輕鬆獲得十六進制輸出 -u
標誌如圖:
xxd -u Filename

再次將十六進制轉換為普通文本
因此,如果您將輸出從十六進制重定向到一個文件,則有一種方法可以很容易地將其恢復正常。
供您參考,我正在重做如何首先將十六進制轉儲的輸出重定向到文本文件的整個過程:

所以我將十六進制轉儲的輸出保存在 Hex.txt
.
現在,如果我想閱讀 Hex.txt
,我將不得不進行轉換。 否則只是頭疼而已。
要扭轉這種影響,您將不得不使用 -r
標誌如圖:
xxd -r Filename

您想將十六進制轉換為 ASCII 嗎? 給你!
如果您想將十六進製字符串轉換為 ASCII,我們有一個用於該目的的詳細指南:
我希望你覺得本指南有用。
如果您有任何問題,請將其留在評論中。