ldd
成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、做網(wǎng)站、天鎮(zhèn)網(wǎng)絡(luò)推廣、微信小程序開發(fā)、天鎮(zhèn)網(wǎng)絡(luò)營(yíng)銷、天鎮(zhèn)企業(yè)策劃、天鎮(zhèn)品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供天鎮(zhèn)建站搭建服務(wù),24小時(shí)服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
可執(zhí)行文件名
查看可執(zhí)行文件鏈接了哪些
系統(tǒng)動(dòng)態(tài)鏈接庫(kù)
nm
可執(zhí)行文件名
查看可執(zhí)行文件里面有哪些符號(hào)
strip
可執(zhí)行文件名
去除符號(hào)表可以給可執(zhí)行文件瘦身
如果我們想從可執(zhí)行程序里面提取出來(lái)一點(diǎn)什么文本信息的話,還可以用strings命令
strings
可執(zhí)行文件名
Linux操作系統(tǒng)上面的動(dòng)態(tài)共享庫(kù)大致分為三類:
1、操作系統(tǒng)級(jí)別的共享庫(kù)和基礎(chǔ)的系統(tǒng)工具庫(kù)
比方說(shuō)libc.so,
libz.so,
libpthread.so等等,這些系統(tǒng)庫(kù)會(huì)被放在/lib和/usr/lib目錄下面,如果是64位操作系統(tǒng),還會(huì)有/lib64和/usr
/lib64目錄。如果操作系統(tǒng)帶有圖形界面,那么還會(huì)有/usr/X11R6/lib目錄,如果是64位操作系統(tǒng),還有/usr/X11R6
/lib64目錄。此外還可能有其他特定Linux版本的系統(tǒng)庫(kù)目錄。
這些系統(tǒng)庫(kù)文件的完整和版本的正確,確保了Linux上面各種程序能夠正常的運(yùn)行。
2、應(yīng)用程序級(jí)別的系統(tǒng)共享庫(kù)
并非操作系統(tǒng)自帶,但是可能被很多應(yīng)用程序所共享的庫(kù),一般會(huì)被放在/usr/local/lib和/usr/local/lib64這兩個(gè)目錄下面。很多你自行編譯安裝的程序都會(huì)在編譯的時(shí)候自動(dòng)把/usr/local/lib加入gcc的-L參數(shù),而在運(yùn)行的時(shí)候自動(dòng)到/usr/local
/lib下面去尋找共享庫(kù)。
以上兩類的動(dòng)態(tài)共享庫(kù),應(yīng)用程序會(huì)自動(dòng)尋找到他們,并不需要你額外的設(shè)置和擔(dān)心。這是為什么呢?因?yàn)橐陨线@些目錄默認(rèn)就被加入到動(dòng)態(tài)鏈接程序的搜索路徑里面了。Linux的系統(tǒng)共享庫(kù)搜索路徑定義在/etc/ld.so.conf這個(gè)配置文件里面。這個(gè)文件的內(nèi)容格式大致如下:
/usr/X11R6/lib64
/usr/X11R6/lib
/usr/local/lib
/lib64
/lib
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/ImageMagick/lib
假設(shè)我們自己編譯安裝的ImageMagick圖形庫(kù)在/usr/local/ImageMagick目錄下面,并且希望其他應(yīng)用程序都可以使用
ImageMagick的動(dòng)態(tài)共享庫(kù),那么我們只需要把/usr/local/ImageMagick/lib目錄加入/etc/ld.so.conf文件里面,然后執(zhí)行:ldconfig
命令即可。
ldcofig將搜索以上所有的目錄,為共享庫(kù)建立一個(gè)緩存文件/etc/ld.so.cache。為了確認(rèn)ldconfig已經(jīng)搜索到ImageMagick的庫(kù),我們可以用上面介紹的strings命令從ld.so.cache里面抽取文本信息來(lái)檢查一下:
strings
/etc/ld.so.cache
|
grep
ImageMagick
輸出結(jié)果為:
/usr/local/ImageMagick/lib/libWand.so.10
/usr/local/ImageMagick/lib/libWand.so
/usr/local/ImageMagick/lib/libMagick.so.10
/usr/local/ImageMagick/lib/libMagick.so
/usr/local/ImageMagick/lib/libMagick++.so.10
/usr/local/ImageMagick/lib/libMagick++.so
已經(jīng)成功了!
3、應(yīng)用程序獨(dú)享的動(dòng)態(tài)共享庫(kù)
有很多共享庫(kù)只被特定的應(yīng)用程序使用,那么就沒有必要加入系統(tǒng)庫(kù)路徑,以免應(yīng)用程序的共享庫(kù)之間發(fā)生版本沖突。因此Linux還可以通過(guò)設(shè)置環(huán)境變量LD_LIBRARY_PATH來(lái)臨時(shí)指定應(yīng)用程序的共享庫(kù)搜索路徑,就像我們上面舉的那個(gè)例子一樣,我們可以在應(yīng)用程序的啟動(dòng)腳本里面預(yù)先設(shè)置
LD_LIBRARY_PATH,指定本應(yīng)用程序附加的共享庫(kù)搜索路徑,從而讓應(yīng)用程序找到它。
linux下的service命令,即不存于某個(gè)lib文件,也不存在于lib相關(guān)的目錄,比如/lib。
1、首先,service命令的目錄可以通過(guò)whereis命令獲取。如下圖所示,顯示service命令在/usr/sbin/目錄。
2、其次,service命令是一個(gè)腳本文件,并不是一個(gè)可執(zhí)行文件,所以它不在任何lib庫(kù)文件中。這點(diǎn)可以通過(guò)file命令查看其文件類型可知。如下圖所示,顯示service文本格式是Posix shell script文件。
1、列出/usr/lib目錄下含有字符串“l(fā)ibevent”的文件和目錄
2、ls 即 list directory contents列出目錄內(nèi)容;其中的 -a選項(xiàng)代表列出所有,包括隱藏文件; -l選項(xiàng)是列出文件的詳細(xì)信息,每行只列出一個(gè)文件。如下面所示:
root@localhost ~]# ls -al
total 96
dr-xr-x---. 2 root root 4096 Jul 18 17:36 .
dr-xr-xr-x. 26 root root 4096 Aug 24 23:49 ..
-rw-------. 1 root root 1553 Mar 24 2014 anaconda-ks.cfg
-rw-------. 1 root root 8481 Aug 24 23:49 .bash_history
-rw-r--r--. 1 root root 18 May 20 2009 .bash_logout
-rw-r--r--. 1 root root 176 May 20 2009 .bash_profile
-rw-r--r--. 1 root root 176 Sep 23 2004 .bashrc
-rw-r--r--. 1 root root 100 Sep 23 2004 .cshrc
-rw-r--r--. 1 root root 32223 Mar 24 2014 install.log
-rw-r--r--. 1 root root 6995 Mar 24 2014 install.log.syslog
-rw-------. 1 root root 79 Aug 24 23:54 .lesshst
-rw-r--r--. 1 root root 129 Dec 4 2004 .tcshrc
-rw-------. 1 root root 2673 Jul 18 17:36 .viminfo
3、另外ls -l 通常縮寫為ll
4、grep 是檢索的意思,是一種強(qiáng)大的文本搜索工具,它能使用正則表達(dá)式搜索文本,并把匹配的行打印出來(lái)。
5、擴(kuò)展下ls命令的其他選項(xiàng):
-a 列出目錄下的所有文件,包括以 . 開頭的隱含文件。
-b 把文件名中不可輸出的字符用反斜杠加字符編號(hào)(就象在C語(yǔ)言里一樣)的形式列出。
-c 輸出文件的 i 節(jié)點(diǎn)的修改時(shí)間,并以此排序。
-d 將目錄象文件一樣顯示,而不是顯示其下的文件。
-e 輸出時(shí)間的全部信息,而不是輸出簡(jiǎn)略信息。
-f -U 對(duì)輸出的文件不排序。
-g 無(wú)用。
-i 輸出文件的 i 節(jié)點(diǎn)的索引信息。
-k 以 k 字節(jié)的形式表示文件的大小。
-l 列出文件的詳細(xì)信息。
-m 橫向輸出文件名,并以“,”作分格符。
-n 用數(shù)字的 UID,GID 代替名稱。
-o 顯示文件的除組信息外的詳細(xì)信息。
-p -F 在每個(gè)文件名后附上一個(gè)字符以說(shuō)明該文件的類型,“*”表示可執(zhí)行的普通
文件;“/”表示目錄;“@”表示符號(hào)鏈接;“|”表示FIFOs;“=”表示套
接字(sockets)。
-q 用?代替不可輸出的字符。
-r 對(duì)目錄反向排序。
-s 在每個(gè)文件名后輸出該文件的大小。
-t 以時(shí)間排序。
-u 以文件上次被訪問(wèn)的時(shí)間排序。
-x 按列輸出,橫向排序。
-A 顯示除 “.”和“..”外的所有文件。
-B 不輸出以 “~”結(jié)尾的備份文件。
-C 按列輸出,縱向排序。
-G 輸出文件的組的信息。
-L 列出鏈接文件名而不是鏈接到的文件。
-N 不限制文件長(zhǎng)度。
-Q 把輸出的文件名用雙引號(hào)括起來(lái)。
-R 列出所有子目錄下的文件。
-S 以文件大小排序。
-X 以文件的擴(kuò)展名(最后一個(gè) . 后的字符)排序。
-1 一行只輸出一個(gè)文件。
--color=no 不顯示彩色文件名
--help 在標(biāo)準(zhǔn)輸出上顯示幫助信息。
--version 在標(biāo)準(zhǔn)輸出上輸出版本信息并退出。