Linux超級強(qiáng)大的十六進(jìn)制dump工具:XXD命令,我教你應(yīng)該如何使用!
在Linux操作系統(tǒng)中,XXD是一個(gè)十六進(jìn)制dump工具,可以將二進(jìn)制文件轉(zhuǎn)換為十六進(jìn)制表示,并以可讀的形式顯示。XXD命令可用于顯示文件內(nèi)容、編輯文件等用途。本文將介紹如何在Linux中使用XXD命令。
安裝XXD命令
通常情況下,XXD命令已經(jīng)預(yù)裝在Linux操作系統(tǒng)中,因此無需安裝即可使用。如果不確定是否安裝了XXD命令,可以使用以下命令檢查:
which?xxd

如果返回了XXD的路徑,則說明已經(jīng)安裝了XXD命令。如果沒有返回任何內(nèi)容,則需要先安裝XXD命令。在Debian/Ubuntu系統(tǒng)中,可以使用以下命令進(jìn)行安裝:
sudo?apt-get?install?xxd
在Red Hat/CentOS系統(tǒng)中,可以使用以下命令進(jìn)行安裝:
sudo?yum?install?vim-common
使用XXD命令查看文件內(nèi)容
XXD命令可以用于查看文件內(nèi)容的十六進(jìn)制表示。使用XXD命令的語法如下:
xxd?<filename>
例如,要查看文件wljslmz.txt的十六進(jìn)制表示,可以使用以下命令:
xxd?wljslmz.txt
執(zhí)行該命令后,會在終端上顯示wljslmz.txt文件的十六進(jìn)制表示,如下所示:
00000000:?6865?6c6c?6f0a?0a69?0a0a?616d?0a0a?776c??hello..i..am..wl
00000010:?6a73?6c6d?7a0a???????????????????????????jslmz.

上面的輸出顯示了wljslmz.txt文件的每個(gè)字節(jié)的十六進(jìn)制值和對應(yīng)的ASCII字符。輸出中的第一列是偏移地址,以十六進(jìn)制表示,第二列是十六進(jìn)制表示,第三列是ASCII表示。
將文件轉(zhuǎn)換為十六進(jìn)制表示
XXD命令還可以將文件轉(zhuǎn)換為十六進(jìn)制表示,并將其寫入文件中。使用XXD命令將文件轉(zhuǎn)換為十六進(jìn)制表示的語法如下:
xxd?-i?<inputfile>?<outputfile>
例如,要將文件wljslmz.txt轉(zhuǎn)換為十六進(jìn)制表示,并將其寫入文件wljslmz.c中,可以使用以下命令:
xxd?-i?wljslmz.txt?wljslmz.c
執(zhí)行該命令后,會在當(dāng)前目錄下創(chuàng)建一個(gè)名為wljslmz.c的文件,其中包含wljslmz.txt文件的十六進(jìn)制表示。

在wljslmz.c文件中,可以使用以下語句將十六進(jìn)制表示轉(zhuǎn)換回原始的二進(jìn)制數(shù)據(jù):

unsigned?char?wljslmz_txt[]?=?{
??0x68,?0x65,?0x6c,?0x6c,?0x6f,?0x0a,?0x0a,?0x69,?0x0a,?0x0a,?0x61,?0x6d,
??0x0a,?0x0a,?0x77,?0x6c,?0x6a,?0x73,?0x6c,?0x6d,?0x7a,?0x0a
};
unsigned?int?wljslmz_txt_len?=?22;
編輯二進(jìn)制文件
XXD命令還可以用于編輯二進(jìn)制文件??梢允褂靡韵旅顚⑽募ljslmz.bin加載到vim編輯器中:
xxd?wljslmz.bin?|?vim?-
該命令將文件wljslmz.bin的十六進(jìn)制表示輸出到終端,并將其傳遞給vim編輯器進(jìn)行編輯。編輯完成后,可以使用以下命令將文件保存并退出vim編輯器:
:%!xxd?-r
該命令會將vim編輯器中的十六進(jìn)制表示轉(zhuǎn)換回原始的二進(jìn)制數(shù)據(jù),并將其寫入到wljslmz.bin文件中。
總結(jié)
本文介紹了在Linux操作系統(tǒng)中使用XXD命令的基礎(chǔ)知識,包括如何安裝XXD命令、如何使用XXD命令查看文件內(nèi)容、將文件轉(zhuǎn)換為十六進(jìn)制表示以及編輯二進(jìn)制文件等操作。XXD命令是一種非常有用的工具,對于開發(fā)人員和系統(tǒng)管理員來說,掌握XXD命令的使用方法是非常重要的。