BASH指令顯示二進位資料/轉換2進位10進位/彩色文字/檔案反序列印


10進位數值轉2,8,16進位
echo 'obase=2; 10' | bc
結果會輸出:1010
echo 'obase=16; 10' | bc
結果會輸出:A
echo 'obase=8; 10' | bc
結果會輸出:12

echo印出彩色文字
echo -e 主要是為了在terminal中印出彩色文字
echo -e "Processing .....  \e[1;31m  failed \e[0m"

Dump二進位資料
hd {file_path} # short command
hd就是hexdump, 將檔案以16進位列出, 它預設印出的方式(-x)是雙byte,所以高低byte位置會受到big/little-endian影響。

在開發時我們都是一個個byte照順序看來查bug,所以我會建議用hexdump的-C來印出二進位資料,hd雖然可以用-C參數,但是不會照我們想的列印,所以用-C請打hexdump完整名稱!
hexdump -C {file_path}

另外要指定列印位置跟長度用-s和-n
hexdump -s {start_pos} -n {length} -C {file_path}

反轉換二進位資料
xxd -r # conver the hexdump into binary data

反序列印檔案內的行
tac  filename.txt
用cat來想這個指令就知道tac是反序列印

參考資料

留言