linux用cat查看二進(jìn)制文件出現(xiàn)亂碼的解決方案
今天用cat查看文件時(shí)突然全屏亂碼,登出重新登陸之后還是未解決。于是在網(wǎng)上找了一些解決辦法。
亂碼截圖
經(jīng)過(guò)了解才知道是因?yàn)槲掖蜷_的文件名為二進(jìn)制。
先說(shuō)解決方法
1、盲打輸入 echo -e '\xf' 并回車。(或者復(fù)制粘貼過(guò)去)與這個(gè)命令相對(duì)的是echo -e '\xe',在正常狀態(tài)下輸入此命令會(huì)把終端搞出亂碼來(lái)。
2、輸入:reset 指令重置,之后就恢復(fù)正常了
在bash下用cat顯示二進(jìn)制文件后就會(huì)出現(xiàn)亂碼,并且整個(gè)終端顯示包括shell提示符都是亂碼,這個(gè)跟語(yǔ)言環(huán)境無(wú)關(guān)。
如果說(shuō)在查看文件之前我們不確定文件格式,可以使用 file -i查看文件的編碼格式。這個(gè)命令會(huì)輸出文件的相關(guān)信息,包括編碼格式。
file -i 文件名
- fsimage_0000000000000000000: application/octet-stream; charset=binary
- #fsimage0000000000000000000:應(yīng)用程序/八位字節(jié)流;字符集=二進(jìn)制
想要查看文件內(nèi)容則用命令:
1、使用 vim 打開二進(jìn)制文件(這種方法適用于需要對(duì)二進(jìn)制文件進(jìn)行修改的場(chǎng)景)
vim 是一個(gè)強(qiáng)大的文本編輯器,可以用來(lái)查看和編輯二進(jìn)制文件。
以下是使用 vim 打開二進(jìn)制文件的步驟:
- 使用 vim -b 命令打開二進(jìn)制文件:vim -b 文件名
- 將內(nèi)容轉(zhuǎn)換為十六進(jìn)制格式::%!xxd
- 編輯文件內(nèi)容后,將其轉(zhuǎn)換回文本格式::%!xxd -r
- 保存并退出::wq
2、使用 od 命令(od 命令與 hexdump 類似,但提供了更多的格式選項(xiàng))
od 命令可以用來(lái)查看文件內(nèi)容,并且可以指定輸出格式。以下是一些常用的選項(xiàng):
- 以十六進(jìn)制格式顯示文件內(nèi)容:od -tx1 文件名
- 以 ASCII 格式顯示文件內(nèi)容:od -tc 文件名
- 從指定偏移量開始輸出:od -j 偏移量 文件名
3、使用 hexdump 命令
hexdump 是一個(gè)用于查看二進(jìn)制文件的命令,可以將二進(jìn)制文件轉(zhuǎn)換為十六進(jìn)制格式并打印出來(lái)。
以下是一些常用的選項(xiàng):
- 顯示文件的 ASCII 格式:hexdump -C 文件名
- 以單字節(jié)轉(zhuǎn)換為八進(jìn)制顯示:hexdump -b 文件名
- 從指定偏移量開始輸出:hexdump -s 偏移量 文件名
4、除了上述方法,還有一些其他工具可以用來(lái)分析二進(jìn)制文件
例如:
file
:確定文件類型。ldd
:打印共享對(duì)象依賴關(guān)系。ltrace
:庫(kù)調(diào)用跟 蹤器。strings
:打印文件中的可打印字符的字符串。readelf
:顯示有關(guān) ELF 文件的信息。objdump
:從對(duì)象文件中顯示信息。strace
:跟蹤系統(tǒng)調(diào)用和信號(hào)。nm
:列出對(duì)象文件中的符號(hào)。gdb
:GNU 調(diào)試器。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vim自定義高亮分組以及一些實(shí)用技巧小結(jié)
Vim/Vi基本上是*nix世界最受歡迎的編輯器了,不知道為什么,一直以來(lái)覺(jué)得和Emacs比起來(lái),Vim更加有親和力,用起來(lái)很舒服。那么下面這篇文章主要給大家介紹了關(guān)于Vim自定義高亮分組以及一些實(shí)用技巧的相關(guān)資料,需要的朋友可以參考下。2017-07-07linux系統(tǒng)下定時(shí)執(zhí)行php腳本的方法
網(wǎng)站運(yùn)營(yíng)過(guò)程中,經(jīng)常會(huì)遇到需要定時(shí)執(zhí)行php腳本的情況,下面這篇文章主要介紹了linux系統(tǒng)下定時(shí)執(zhí)行php腳本的方法,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-01-01Xshell7遠(yuǎn)程連接失敗(connection failed)的問(wèn)題解決
本文主要介紹了Xshell7遠(yuǎn)程連接失敗(connection failed)的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Linux系統(tǒng)中獲取時(shí)間的方法總結(jié)
在Linux操作系統(tǒng)中,獲取時(shí)間是一個(gè)基本且重要的功能,本文旨在全面總結(jié)Linux系統(tǒng)中獲取時(shí)間的方法,包括命令行工具和編程接口,幫助讀者深入理解Linux時(shí)間管理的機(jī)制,需要的朋友可以參考下2025-03-03linux如何使用date命令獲取系統(tǒng)時(shí)間
這篇文章主要介紹了linux如何使用date命令獲取系統(tǒng)時(shí)間問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Ubuntu中如何實(shí)現(xiàn)更新Linux內(nèi)核
本文詳細(xì)介紹了如何使用三種方法更新Ubuntu中的Linux內(nèi)核,包括系統(tǒng)更新流程、使用系統(tǒng)更新程序強(qiáng)制更新以及手動(dòng)使用Mainline選擇和安裝新內(nèi)核2025-01-01Linux服務(wù)器下Nginx與Apache共存的實(shí)現(xiàn)方法分析
這篇文章主要介紹了Linux服務(wù)器下Nginx與Apache共存的實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Linux服務(wù)器下Nginx與Apache共存的原理、解決思路與實(shí)現(xiàn)方法,需要的朋友可以參考下2019-06-06linux下統(tǒng)計(jì)appche站點(diǎn)IP訪問(wèn)量的shell腳本
這篇文章主要介紹了linux下統(tǒng)計(jì)appche站點(diǎn)IP訪問(wèn)量的幾種shell腳本以及執(zhí)行結(jié)果2014-06-06