![](/d/20211018/5a7cc933e1435e47d5a1a132d3b5ee45.gif)
之前寫(xiě)了一篇關(guān)于linux下常用的幾個(gè)命令,參考Linux入門--提高工作效率的命令。接下來(lái)接著介紹一些在linux下做開(kāi)發(fā)經(jīng)常使用到得命令,其中有打包壓縮命令tar,文件查找命令find,文件內(nèi)容查找命令grep,elf可執(zhí)行文件分析工具readelf等。
1、打包壓縮命令tar
在linux下經(jīng)常會(huì)遇到給源碼打包解壓等,如果你還是用linux的X window來(lái)做那你就out了。下面是該工具的常用命令參數(shù)及運(yùn)用舉例:
主要命令:
-c 創(chuàng)建包
-x 解包
-t 列出包中的內(nèi)容
-r 增加文件到指定包中
-u 更新包中的文件
可選命令:
-j 創(chuàng)建或解開(kāi)包時(shí) 使用bzip2 進(jìn)行壓縮或解壓;
-z 創(chuàng)建或解開(kāi)包時(shí) 使用gzip 進(jìn)行壓縮或解壓;
-Z 創(chuàng)建或解開(kāi)包時(shí) 使用compress 進(jìn)行壓縮或解壓;
-f 后面跟指定的包文件名;
-v 顯示打包/解包過(guò)程
-C 指定解包后的路徑
例如:
tar -czf tmp.tar.gz /tmp 將 “/tmp” 目錄壓縮打包存放為tmp.tar.gz;
tar -xzf tmp.tar.gz -C /home 將 tmp.tar.gz 包解到“/home” 目錄下;
tar -t tmp.tar.gz 查看 tmp.tar.gz 包中的文件信息;
2、文件查找命令find
突然不知道xxx.c在那個(gè)路徑下了,你不會(huì)還在用linux里面的X window來(lái)搜索這個(gè)文件吧?find才是簡(jiǎn)單強(qiáng)暴的查找利器啊。
其命令格式為:
find 要查找的路徑表達(dá)式
例如:
find . -name 1.txt 在當(dāng)前目錄及其子目錄下查找文件 “1.txt”;
find /tmp -name 1.txt 在 “/tmp” 目錄及其子目錄下查找文件“1.txt”。
另外,find也支持模糊查找:
find . -name *test*.c
更高級(jí)的用法可參考man手冊(cè)等。
3、文件內(nèi)容查找命令grep
我在查一個(gè)bug,看日志啊看日志,突然發(fā)現(xiàn)了一個(gè)關(guān)鍵的log信息,那么這個(gè)信息是在那個(gè)源文件中打印出來(lái)的呢?這時(shí)候就用到grep了。
文件內(nèi)容查找命令grep
grep 命令用于查找指定的模式匹配,格式為:
grep [命令選項(xiàng)] 要查找的匹配模式 [要查找的文件]
例如:
grep cams test.txt 在 “test.txt” 文件中查找cams 字符串;
grep -r cams /root/cams 在 “/root/cams” 目錄及其子目錄下的所有文件中,查找cams 字符串;
grep 命令除了能夠查找文件外,還能夠?qū)⑷我廨敵隽髦囟ㄏ虻絞rep 進(jìn)行查找:
ps -ef | grep ora 查找進(jìn)程名中包含 “ora” 的所有進(jìn)程信息。
其實(shí)以上都是grep最簡(jiǎn)單最常用的用法,更高級(jí)的用法可參考grep的man手冊(cè)等。
4、ELF文件分析工具readelf
此命令算是一個(gè)比較高級(jí)的命令,沒(méi)有上述命令常用,但是也是一個(gè)很實(shí)用的軟件,這里拋磚引玉,介紹一些簡(jiǎn)單的用法。
查詢文件所有信息
readelf object-file-name -a
查詢elf header
readelf object-file-name -h
查詢符號(hào)表
readelf object-file-name -s
查詢所有section詳細(xì)信息
readelf object-file-name -t或者 readelf object-file-name -S
dump某個(gè)section的信息
readelf object-file-name -p section-name|section-index
readelf object-file-name -x section-name|section-index
readelf object-file-name -R section-name|section-index
![](/d/20211018/83fc0239bc187062ab25bf570b574062.gif)