linux轉16進制
Ⅰ linux 下有個hexmp函數,把二進制換成16進制顯示,有沒有功能相反的函數
vim 自帶的 xxd 就可以完成轉十六進制和反轉的功能,反轉是只要把十六進制數按它轉出的格式排好(右側的顯示符號可以不管),就可以轉換。如果不在乎轉完的十六進制格式,那用 xxd -ps 更方便。
Ⅱ 請教,怎麼向linux下串口發送16進制數比如0xFA之類的
在程序中打開你的串口設備,int fd; fd = open("/dev/ttyS1",O_RDWD);
比如你要發送0x01,0x02,0x03,0x04,
char buf[256]={0x01,0x02,0x03,0x04};
write(fd,buf,4);
直接往你的串口寫四個位元組的數就可以了,在你的另一個程序中讀取你往串口寫的那幾個數,十六進制列印出來就可以了。
Ⅲ linux cpu使用率過高排查
方法一
第一步:使用
top命令,然後按shift+p按照CPU排序
找到佔用CPU過高的進程的pid
第二步:使用
top -H -p [進程id]
找到進程中消耗資源最高的線程的id
第三步:使用
echo 'obase=16;[線程id]' | bc或者printf "%x
" [線程id]
將線程id轉換為16進制(字母要小寫)
bc是linux的計算器命令
第四步:執行
jstack [進程id] |grep -A 10 [線程id的16進制]」
查看線程狀態信息
方法二
第一步:使用
top命令,然後按shift+p按照CPU排序
找到佔用CPU過高的進程
第二步:使用
ps -mp pid -o THREAD,tid,time | sort -rn
獲取線程信息,並找到佔用CPU高的線程
第三步:使用
echo 'obase=16;[線程id]' | bc或者printf "%x
" [線程id]
將需要的線程ID轉換為16進制格式
第四步:使用
jstack pid |grep tid -A 30 [線程id的16進制]
列印線程的堆棧信息
案例分析
場景描述
生產環境下JAVA進程高CPU佔用故障排查
解決過程
1、根據top命令,發現PID為2633的Java進程佔用CPU高達300%,出現故障。
2、找到該進程後,如何定位具體線程或代碼呢,首先顯示線程列表,並按照CPU佔用高的線程排序:
1[root@localhost ~]# ps -mp 2633 -o THREAD,tid,time | sort -rn
顯示結果如下:
化主動為被動的方式,一方面減輕了運維工程師的工作,另一方面也減小了運維漏看或者忽略告警的情況發生。
Ⅳ Linux下怎麼查看16進制文件
1、xxd - make a hexmp or do the reverse.
能夠顯示文件對應的十六機制格式,同時還能將修還後的十六進制格式反寫迴文件,一般與vim結合使用。(在 vi 或 vim 的命令狀態下)
:%!xxd 將當前文本轉換為16進制格式。
:%!xxd -r 將當前文件轉換迴文本格式。
如果沒有此命令,請先安裝vim-common
rpm -qf /usr/bin/xxd
vim-common-7.4.160-1.el7_3.1.x86_64
2、od - mp files in octal and other formats
可以通過指定參數為查看十六進制
-A 指定左邊側欄顯示的地址基數,默認為八進制
-t 指定輸出單元的進制格式和位元組數
-x = -t x2 輸出單元為雙位元組(注意:每單元內排列順序從左到右為 [高位元組|低位元組])
例:od -A x -t x1 file| more
3、hexmp - ascii, decimal, hexadecimal, octal mp
查看十六機制的首選工具。
-c 每單元以位元組為單位,顯示出對應的ASCII碼
-C 每單元以位元組為單位,同時顯示十六機制和ASCII碼
4、linux也有GUI的十六進制編輯器,例如ghex和bless