導航:首頁 > 編程系統 > lddlinux

lddlinux

發布時間:2023-02-07 10:59:53

linux的ldd命令是什麼意思

用來查看某個可執行文件所依賴的所有動態庫的名字及其所在路徑。

㈡ linux ldd 為什麼 看不到 mysqlclient

ldd /home/oracle/lib/ss.so.11.1 列印ss.so.11.1的依賴信息 cd ~aa/lib 如果你沒寫錯的話,就是切換到當前目錄下的「~aa"目錄下的lib子目錄下 如果是 cd ~/aa/lib 則是切到當前用戶的home目錄下的aa子目錄的lib子目錄 詳情可參考

㈢ 關於LINUX 編程方面的書籍

假設你是計算機科班出身,計算機系的基本課程如數據結構、操作系統、體系結構、編譯原理、計算機網路你全修過

我想大概可以分為4個階段,水平從低到高
從安裝使用=>linux常用命令=>linux系統編程=>內核開發閱讀內核源碼

其中學習linux常用命令時就要學會自己編譯內核,優化系統,調整參數

安裝和常用命令書太多了,找本稍微詳細點的就ok,其間需要學會正則表達式

系統編程推薦《高級unix環境編程》,黑話叫APUE
還有《unix網路編程》
這時候大概還需要看資料理解elf文件格式,連接器和載入器,cmu的一本教材中文名為《深入理解計算機系統》比較好

內核開發閱讀內核源碼階段,從寫驅動入手逐漸深入linux內核開發
參考書如下《linux device drivers》,黑話叫ldd
《linux kernel development》,黑話叫lkd
《understading the linux kernel》,黑話叫utlk
《linux源碼情景分析》
這四本書為搞內核的必讀書籍

最後,第三階段和第四階段最重動手,空言無益,光看書也不罩,不動手那些東西理解不了

學習linux/unix編程方法的建議

建議學習路徑:

首先先學學編輯器,vim, emacs什麼的都行。
然後學make file文件,只要知道一點就行,這樣就可以准備編程序了。

然後看看《C程序設計語言》K&R,這樣呢,基本上就可以進行一般的編程了,順便找本數據結構的書來看。

如果想學習UNIX/LINUX的編程,《APUE》絕對經典的教材,加深一下功底,學習《UNP》的第二卷。這樣基本上系統方面的就可以掌握了。

然後再看Douglus E. Comer的《用TCP/IP進行網際互連》第一卷,學習一下網路的知識,再看《UNP》的第一卷,不僅學習網路編程,而且對系統編程的一些常用的技巧就很熟悉了,如果繼續網路編程,建議看《TCP/IP進行網際互連》的第三卷,裡面有很多關於應用協議telnet、ftp等協議的編程。
如果想寫設備驅動程序,首先您的系統編程的介面比如文件、IPC等必須要熟知了,再學習《LDD》2。

對於幾本經典教材的評價:

《The C Programing Language》K&R 經典的C語言程序設計教材,作者是C語言的發明者,教材內容深入淺出。雖然有點老,但是必備的一本手冊,現在有時候我還常翻翻。篇幅比較小,但是每看一遍,就有一遍的收獲。另外也可用譚浩強的《C語言程序設計》代替。

《Advanced Programing in Unix Envirement》 W.Richard Stevens:也是非常經典的書(廢話,Stevens的書哪有不經典的!),雖然初學者就可以看,但是事實上它是《Unix Network Programing》的一本輔助資料。國內的翻譯的《UNIX環境高級編程》的水平不怎麼樣,現在有影印版,直接讀英文比讀中文來得容易。

《Unix Network Programing》W.Richard Stevens:第一卷講BSD Socket網路編程介面和另外一種網路編程介面的,不過現在一般都用BSD Socket,所以這本書只要看大約一半多就可以了。第二卷沒有設計到網路的東西,主要講進程間通訊和Posix線程。所以看了《APUE》以後,就可以看它了,基本上系統的東西就由《APUE》和《UNP》vol2概括了。看過《UNP》以後,您就會知道系統編程的絕大部分編程技巧,即使卷一是講網路編程的。國內是清華翻譯得《Unix網路編程》,翻譯者得功底也比較高,翻譯地比較好。所以建議還是看中文版。

《TCP/IP祥解》一共三卷,卷一講協議,卷二講實現,卷三講編程應用。我沒有怎麼看過。,但是據說也很經典的,因為我沒有時間看卷二,所以不便評價。

《用TCP/IP進行網際互連》Douglus.E.Comer 一共三卷,卷一講原理,卷二講實現,卷三講高級協議。感覺上這一套要比Stevens的那一套要好,就連Stevens也不得不承認它的第一卷非常經典。事實上,第一卷即使你沒有一點網路的知識,看完以後也會對網路的來龍去脈了如指掌。第一卷中還有很多習題也設計得經典和實用,因為作者本身就是一位教師,並且卷一是國外研究生的教材。習題並沒有答案,留給讀者思考,因為問題得答案可以讓你成為一個中級的Hacker,這些問題的答案可以象Douglus索取,不過只有他只給教師卷二我沒有怎麼看,卷三可以作為參考手冊,其中地例子也很經典。如果您看過Qterm的源代碼,就會知道Qterm的telnet 實現部分大多數就是從這本書的源代碼過來的。對於網路原理的書,我推薦它,而不是Stevens的《TCP/IP祥解》。

《Operating System - Design and Implement》這個是講操作系統的書,用Minix做的例子。作者母語不是英文,所以英文看起來比較晦澀。國內翻譯的是《操作系統設計與實現》,我沒看過中文版,因為翻譯者是尤晉元,他翻譯的《APUE》已經讓我失望頭頂了。讀了這本書,對操作系統的底層怎麼工作的就會
有一個清晰的認識。

《Linux Device Driver》2e ,為數不多的關於Linux設備驅動程序的好書。不過內容有些雜亂,如果您沒有一些寫驅動的經驗,初次看會有些摸不著南北。國內翻譯的是《Linux設備驅動程序》第二版,第一版,第二版的譯者我都有很深的接觸,不過總體上來說,雖然第二版翻譯的有些不盡人意,但是相比第一版來說已經超出了一大截。要讀這一本書,至少應該先找一些《計算機原理》《計算機體系結構》的書來馬馬虎虎讀讀,至少應該對硬體和計算機的工作過程有一些了解。

㈣ Linux使用ldd命令查看程序調用了哪些動態庫

名稱抄 ldd - 列印共享庫的依襲賴關系
大綱 ldd [選項]...文件...
描述 ldd 輸出在命令行上指定的每個程序或共享庫需要的共享庫。
選項
--version
列印ldd的版本
-v --verbose
列印所有信息,例如包括符號的版本信息
-d --data-relocs
執行符號重部署,並報告缺少的目標對象(只對ELF格式適用)
-r --function-relocs
對目標對象和函數執行重新部署,並報告缺少的目標對象和函數(只對ELF格式適用)
--help 用法信息
或者看看《linux就該這么學》,具體關於這一章地址3w(dot)linuxprobe/chapter-02(dot)html.

㈤ linux下使用pmap和ldd查看進程調用了什麼lib

pmap PID #查看靜態內存使用情況
top #按shift+m 按照內存使用情況進行排序
ps -ef | grep nginx #查看PID 比1234
cat /proc/1234/status #查看詳細信息
RSS列 表示 程序佔用少物理內存 虛擬內存用考慮並佔用實際物理內存 (2). top 命令 其VIRT(或VSS)列 表示程序佔用少虛擬內存 同 ps aux VSZ列 RES列 表示 程序佔用少物理內存同 ps aux RSS列 2.linux 查看前系統佔用少內存 般命令 free其 free系統少內存使用由於 linux 系統內存使用原則 內存寶貴 能使用少使用少 所 linux已經調用包緩存起放內存實際使用內存理解 free+buffers+cached3.解完些命令 再使用ps aux 命令查看候 發現奇怪現象 所 RSS 列數據加起 比物理內存數要 比 物理內存2G RSS列數據加起能5G 事 RSS列值騙我 linux內存機制: 運行程序 linux調用該程序依賴鏈接庫 lib.xx.so 首先看該鏈接庫否映射進內存沒映射則代碼段與數據段映射內存否則其加入進程址空間 N程序依賴lib.xx.so候 實際內存lib.xx.so N RSS顯示程序佔用實際物理內存 lib.xx.so算進 比 X程序 本身佔用內存5M lib.xx.so 佔用內存2Mlib.xx.soN程序共享依賴 則RSS顯示X程序運行佔用內存7M 實際 X程序佔用5M空間 餘2m討入RSS 用ps aux顯示內存佔用情況 N共享依賴lib.xx.soN程序都2m空間算自RSS RSSsum值比實際物理內存 linux內存使用機制復雜 句兩句能說清楚簡單說明 ps auxRSS值 並能真實反映物理內存使用情況 4. 查看更詳細內存使用情況 用幾種 或者幾種結合使用:幾種都需要root賬戶許可權(1). pmap -d $pid $pid 運行程序pid(2). cat /proc/$pid/smaps smaps數據比較詳細簡單歸納歸納命令: cat /proc/$pid/smaps | awk '/Size|Rss|Pss|Shared|Private|Referenced|Swap/{val_name=gensub(/([a-zA-Z_]*).*/,"\\1",1,$1); list[val_name]+=$2; }END{for(val in list)print val,list[val];}' (3). cat /proc/$pid/maps(4). cat /proc/$pid/statm輸解釋第列 size:任務虛擬址空間 第二列 Resident:使用物理內存 第三列 Shared:共享頁數第四列 Trs:程序所擁執行虛擬內存 第五列 Lrs:映像倒任務虛擬內存空間庫 第六列 Drs:程序數據段用戶態棧 第七列 dt:臟頁數量(5). vmstat命令據說提供些參考信息具體未研究 5.作phper嘗試使用php函數memory_get_usage() 該函數能php前運行程序實際真佔用內存數量 真想php真佔用內存 概能, 程序運行始執行memory_get_usage(). 程序運行結束執行memory_get_usage() 兩者值相減值 應該相比較准確內存佔用數量 沒測試 考慮 數量沒實際意義 加平比較忙懶試

㈥ 在Red Hat Linux 中程序函數庫可以分為哪幾種類型 它們的調用方法各是什麼請說出nm和ldd兩個命令的作

1)、在Red Hat Linux中函數庫可以分為3種類型:靜態函數庫、共享函數庫和動態加回載函數庫。答
靜態函數庫在應用程序編譯時就把函數的執行代碼加入到應用程序中。
共享函數庫中的函數當一個可執行程序啟動時被載入。
動態載入函數庫可以在程序運行的任何階段載入函數。
2)、使用nm和ldd命令可以獲得關於庫函數的信息。
nm命令可以列出一個函數庫文件中的符號表,它對靜態的庫函數和共享的庫函數都能起作用。
ldd命令可以列出一個程序正常運行所需要的共享庫。
3)、庫函數預設存放在/lib和/usr/lib中,以及動態庫配置文件內所列的目錄中。
如果庫函數沒有在這些目錄下,可以在中加入所須目錄,後運行ldconfig命令,使之生效。或設置環境變數LD_LIBRARY_PATH或LD_PRELOAD加入庫函數所存放的目錄。

還有不會的請參考《linux就該這么學》,針對各種linux疑難雜症,幫助linux學習者。

閱讀全文

與lddlinux相關的資料

熱點內容
win10列印機設置共享的列印機 瀏覽:499
linux中造成死鎖的原因 瀏覽:457
90版本貪食之源屬性 瀏覽:348
文件許可權600 瀏覽:109
蘋果手機使用miui免費電話 瀏覽:732
qtudp發送文件 瀏覽:295
三星手機牆紙文件夾 瀏覽:478
iphone7輸錯密碼震動 瀏覽:944
季度申報數據從哪裡看 瀏覽:645
安卓的郵箱文件保存在哪裡 瀏覽:441
蘋果奧維導出文件在哪裡 瀏覽:405
qq頭像比較社會的女 瀏覽:840
手機風景修圖教程 瀏覽:173
程序員用什麼計算機語言 瀏覽:337
有票APP客服在哪裡 瀏覽:692
國資委63號文件從哪裡查 瀏覽:37
哪個app能顯示lrc字幕 瀏覽:53
jsdate轉換數字 瀏覽:198
賣票的網站取什麼名字好 瀏覽:355
羅湖免費網站製作怎麼樣 瀏覽:274

友情鏈接