導航:首頁 > 程序命令 > ldconfig命令

ldconfig命令

發布時間:2022-10-30 02:48:46

1. Win10執行sudoldconfig命令

許多windows非常熟悉ipconfig命令行工具,它被用來獲取網路介面配置信息並對此進行修改。
linux系統擁有一個類似的工具,也就是ifconfig(interfacesconfig)。
通常需要以root身份登錄或使用sudo以便在Linux機器上使用ifconfig工具。
依賴於ifconfig命令中使用一些選項屬性,ifconfig工具不僅可以被用來簡單地獲取網路介面配置信息,還可以修改這些配置。

2. Linux職業認證考試有關

Linux職業認證考試102的必考點1. /proc/interrupts 文件顯示當前系統中正在使用的中斷。

2. Linux支持標准串/並口和游戲棒口。 /dev目錄下對應每個設備/埠有一個文件。setserial命令用於顯示修改串口配置。

3. dmesg命令可顯示Linux在啟動時發現了哪些硬體。

4. fdisk用於硬碟分區。 newe2fs用於建立文件系統。 mount用於將分區掛在總文件樹上。

5. ifconfig是最常用的網路配置工具。 ping通過發送ICMP消息觀察一台網上機器是否可被連通。 RedHat的sndconfig用於配置音效卡。 minicom用於配置modem.

6. PPP協議是最通用的串列通訊協議。 /etc/ppp/options中有PPP的配置信息。

PAP(Password Authentication Protocol)和CHAP(Challenge Handshake Authentication Protocol)是PPP下最流行的兩個認證協議。

系統安裝和軟體包安裝

7. hda 表示第一個IDE盤, hda1是它的第一個分區。 sda表示第一個SCSI盤, sda1是它的第一個分區。

8. swap分區的大小應至少和內存大小一樣。 root分區應盡量小。data/user等分區越細, 備份就越容易。

9. 分區完成後, 可以用mke2fs建立文件系統。

10. /etc/lilo.conf 中有Lilo的配置信息。 編輯完此文件後必須運行/sbin/lilo安裝LILO bootloader.

11. tarball是最方便的打包工具。 "x"選項用於解包, "c" 選項用於打包, "v"選項提供更多過程信息。 "f"選項用於指明包文件名。

12. make使用Makefile文件提供的編譯參數命令編譯系統。 "configure"腳本用於軟體的環境配置。

13. 動態共享庫方便不同的軟體共享庫函數, 而且在庫升級時, 使用它的軟體無需重新編譯。 ldd命令用於顯示軟體的共享庫使用情況。 ldconfig命令用於更新維護系統的共享庫數據緩存(cache of shared library data)。

"ldconfig -p"顯示當前的共享庫緩存。

14. 軟體包管理工具有RedHat的RPM和Debian的dpkg.

15. rpm選項包括:

-i 安裝包-e 卸載包-V 驗證包的安裝情況 (-Va驗證所有包的安裝情況)

-q 查尋哪個包有哪個文件 (-qf 查尋哪個文件屬於哪個包 )

-b 建立包-p 顯示包的信息。

16. dpkg (略)

內核

17. lsmod命令顯示系統中已裝載的模塊。 insmod命令用於裝載模塊。rmmod命令用於卸載模塊。 modinfo用於顯示模塊的有關信息。

18. modprobe工具可根據模塊的依賴情況裝載模塊。 depmod 顯示模塊的依賴情況。

19. conf.moles 和 moles.conf 沒有任何區別。 不同的Linux發布商使用不同的文件。

20. 內核通常使用linux-x.y.z命名, x.y.z 代表版本號。

21. "make config" 提供一字元界面用於配置內核。

22. "make xconfig"提供一X圖形界面用於配置內核。

23. "make dep" 用於建立內核文件的依賴關系。 編好新內核後, 要修改/etc/lilo.conf, 以使用新內核。

文本編輯,處理和列印

24. vi的方向鍵:

h ——左

l ——右

j ——下

k ——上

25. vi的命令:

c -修改文本

d -刪除文本

i -插入文本

o -在當前行下插入一新行

O -在當前行上插入一新行

p -將緩沖區內容插入

r -字元替換

R -替換模式

u - undo

x -刪除字元

y -拷貝入緩沖區

26. The lpc utility is the main one used to manage the print service,while lpq is the primary tool for looking at and interacting with the print queue.

27. The lpr command is used to submit jobs to the print service, and there are a wide number of options that can be used with it, including:

-b to suppress a banner

-K to specify a number of copies to print

-# the same as -K

-m to send error messages via mail

-T to signify a title page

-w to define the width

28. The /etc/printcap file is a database defining what each known printer is capable of. It is read once by lpd at starup.

29. The lpd.perms file hods the permissions for the lpd service and can affect the operation as such utilities as lpc and lpq.

30. The lpd.conf file is used to configure the actual lpd service. There are 180 options that can be configured.

31. The lprm command is used to remove print jobs, and lprm -a will attempt to remove all spooled jobs.

32. /etc/profile在用戶登陸時被執行,然後不同的SHELL會執行用戶home下的對應配置文件.如bash依次查找.bash_profile, .bash_login和.profile.

33. .bashrc在SHELL運行開始時被執行. .inputrc用於鍵盤配置.

34. SHELL腳本必須有可執行許可權,或是直接被SHELL讀入執行. 0代表正常退出.

35. SHELL腳本中應用"#!"說明解釋器位置(如#!/usr/bin/perl)

36. $1代表第一個命令行參數. shift命令將$2變為$1,依此類推.

37. test或者[]可用於進行邏輯測試. if-fi構成判斷塊.

X窗口

38. "X -showconfig"顯示X的配置情況. startx用於啟動X窗口.

39. xterm參數:

-bd設置邊界顏色

-bg設置後景色

-fg設置前景色

-fn設置字體

網路

40. /etc/services 提供埠號與服務名的對應. 如 80 - http, 23 - telnet...

41. DHCP用於自動分配IP. IP地址有32位, 8位一組. 通過前8位將IP地址分為不同類組:

1-126 A 類
128-191 B 類
192-223 C 類

在Internet上的IP地址必須獨立(UNIQUE).

42. 一些IP地址可用於內部網路:

10.x.x.x A 類
172.16.x.x B 類
192.168.x.x C 類

43. netmask用於識別一個主機是否屬於當前網路. 預設netmask為:

A 類 255.0.0.0
B 類 255.255.0.0
C 類 255.255.255.0

網路服務

44. inetd 是超級daemon, 調用其他服務. 它使用/etc/inetd.conf配置文件決定應管理哪些服務.

45. hosts.allow 和 hosts.deny 用於訪問控制. NFS 使用/etc/exports提供的配置決定export那些文件系統. SMB用於與WINDOWS主機通訊. NMB用於識別WINDOWS主機提供的資源.

46. sendmail.cf 是 sendmail的主要配置文件. /etc/aliases 提供mail地址別名. /var/spool/mqueue 中存有mail的消息隊列. mailq用於檢查mail的消息隊列. newaliases 用於建立新的別名文件.

47. Apache提供WEB服務. access.conf, httpd.conf和srm.conf是它的配置文件.

安全

48. /etc/profile 中的umask值應小心配置, 盡量減小新文件的許可權.

49. 對於SUID和SGID程序要特別小心, 盡量用許可權最小的user和group.

50. shadow password用於提高 /etc/passwd的安全性. 應使用quotas對用戶的磁碟空間進行限制. 應有對密碼的安全性檢查, 保證密碼至少有6-8個字元, 並定期更換密碼.

註:102為考試代號,並非是指有102個考點

3. 如何進入/etc/ld.so.conf.d/目錄

在了解/etc/ld.so.conf.d/目錄下文件的作用之前,先介紹下程序運行是載入動態庫的幾種方法:
第一種,通過ldconfig命令
ldconfig命令的用途,
主要是在默認搜尋目錄(/lib和/usr/lib)以及動態庫配置文件/etc/ld.so.conf內所列的目錄下,
搜索出可共享的動態鏈接庫(格式如lib*.so*), 進而創建出動態裝入程序(ld.so)所需的連接和緩存文件.
緩存文件默認為/etc/ld.so.cache, 此文件保存已排好序的動態鏈接庫名字列表.

這裡面涉及到的關鍵內容有命令:ldconfig,配置文件目錄:/etc/ld.so.conf.d,配置文件在/etc/ld.so.conf內容由
用戶編輯,緩沖文件/etc/ld.so.cache。下面舉個例子,比如你在部署軟體時,有些動態庫安裝在exe目錄下,可以通過如下方法實現,
1)配置exe.conf文件,裡面加一行~/exe,然後將該文件放到/etc/ld.so.conf.d目錄下;
2)在/etc/ld.so.conf文件中增加一行include ld.so.conf.d/exe.conf
3)執行 ldconfig命令
之後程序運行時,會自動增加在exe目錄中搜索動態庫。
第二種,通過LD_LIBRARY_PATH環境變數
可以通過在.bashrc或者.cshrc中配置該環境變數,LD_LIBRARY_PATH的意思是告訴loader在哪些目錄中可以找到共享庫. 可以設置多個搜索目錄, 這些目錄之間用冒號分隔開.
同樣是上面的例子,可以通過以上的方法來實現
在.bashrc或.cshrc中增加一行,export LD_LIBRARY_PATH = ~/exe:$LD_LIBRARY_PATH即可。

第三種,通過編譯選項-Wl, -rpath指定動態搜索的路徑
-Wl選項告訴編譯器將後面的參數傳遞給鏈接器。
通過上面的介紹,對/etc/ld.so.conf.d/的作用就比較清晰了。

4. linux下運行ldconfig命令後,提示「XX不是符號鏈接「是什麼意思

Shell:Shell是系統的用戶界面,提供了用戶與內核進行交互操作的一種介面。它接收用戶輸入的命令並把它送入內核去執行。實際上Shell是一個命令解釋器,它解釋由用戶輸入的命令並且把它們送到內核。不僅如此,Shell有自己的編程語言用於對命令的編輯,它允許用戶編寫由shell命令組成的程序。Shell編程語言具有普通編程語言的很多特點,比如它也有循環結構和分支控制結構等,用這種編程語言編寫的Shell程序與其他應用程序具有同樣的效果。命令行(命令提示符):命令行一般指命令提示符。命令提示符是在操作系統中,提示進行命令輸入的一種工作提示符。在不同的操作系統環境下,命令提示符各不相同。終端:終端Terminal通常是指那些與集中式主機系統相連的「啞」用戶設備。終端從用戶接收鍵盤輸入,並且將這些輸入發送給主機系統。主機系統處理這個用戶的鍵盤輸入和命令,然後輸出返回並顯示在這個終端的屏幕上。

5. 怎樣使busybox編譯出ldconfig命令

BusyBox 命令中支持的選項
BusyBox 中的命令並不支持所有可用選項,不過這些命令都包含了常用的選項。如果我們需要知道一個命令可以支持哪些選項,可以使用 --help 選項來調用這個命令,如清單 12 所示。

清單 12. 使用 --help 選項調用命令
$ ./busybox wc --help
BusyBox v1.1.1 (2006.04.09-15:27+0000) multi-call binary
Usage: wc [OPTION]... [FILE]...
Print line, word, and byte counts for each FILE, and a total line if
more than one FILE is specified. With no FILE, read standard input.
Options:
-c print the byte counts
-l print the newline counts
-L print the length of the longest line
-w print the word counts
$
這些特定的數據只有在啟用了 CONFIG_FEATURE_VERBOSE_USAGE 選項時才可以使用。如果沒有這個選項,我們就無法獲得這些詳細數據,但是這樣可以節省大約 13 KB 的空間。

向 BusyBox 中添加新命令
向 BusyBox 添加一個新命令非常簡單,這是因為它具有良好定義的體系結構。第一個步驟是為新命令的源代碼選擇一個位置。我們要根據命令的類型(網路,shell 等)來選擇位置,並與其他命令保持一致。這一點非常重要,因為這個新命令最終會在 menuconfig 的配置菜單中出現(在下面的例子中,是 Miscellaneous Utilities 菜單)。
對於這個例子來說,我將這個新命令稱為 newcmd,並將它放到了 ./miscutils 目錄中。這個新命令的源代碼如清單 13 所示。
清單 13. 集成到 BusyBox 中的新命令的源代碼
#include "busybox.h"
int newcmd_main( int argc, char *argv[] )
{
int i;
printf("newcmd called:\n");
for (i = 0 ; i < argc ; i++) {
printf("arg[%d] = %s\n", i, argv[i]);
}
return 0;
}
接下來,我們要將這個新命令的源代碼添加到所選子目錄中的 Makefile.in 中。在本例中,我更新了 ./miscutils/Makefile.in 文件。請按照字母順序來添加新命令,以便維持與現有命令的一致性:

清單 14. 將命令添加到 Makefile.in 中
MISCUTILS-$(CONFIG_MT) += mt.o
MISCUTILS-$(CONFIG_NEWCMD) += newcmd.o
MISCUTILS-$(CONFIG_RUNLEVEL) += runlevel.o

接下來再次更新 ./miscutils 目錄中的配置文件,以便讓新命令在配置過程中是可見的。這個文件名為 Config.in,新命令是按照字母順序添加的:

清單 15. 將命令添加到 Config.in 中
config CONFIG_NEWCMD
bool "newcmd"
default n
help
newcmd is a new test command.

這個結構定義了一個新配置項(通過 config 關鍵字)以及一個配置選項(CONFIG_NEWCMD)。新命令可以啟用,也可以禁用,因此我們對配置的菜單屬性使用了 bool (Boolean)值。這個命令默認是禁用的(n 表示 No),我們可以最後放上一個簡短的 Help 描述。在源代碼樹的 ./scripts/config/Kconfig-language.txt 文件中,我們可以看到配置語法的完整文法。
接下來需要更新 ./include/applets.h 文件,使其包含這個新命令。將下面這行內容添加到這個文件中,記住要按照字母順序。維護這個次序非常重要,否則我們的命令就會找不到。

清單 16. 將命令添加到 applets.h 中
USE_NEWCMD(APPLET(newcmd, newcmd_main, _BB_DIR_USER_BIN, _BB_SUID_NEVER))

這定義了命令名(newcmd),它在 Busybox 源代碼中的函數名(newcmd_main),應該在哪裡會為這個新命令創建鏈接(在這種情況中,它在 /usr/bin 目錄中),最後這個命令是否有權設置用戶 id(在本例中是 no)。

倒數第二個步驟是向 ./include/usage.h 文件中添加詳細的幫助信息。正如您可以從這個文件的例子中看到的一樣,使用信息可能非常詳細。在本例中,我只添加了一點信息,這樣就可以編譯這個新命令了:

清單 17. 向 usage.h 添加幫助信息
#define newcmd_trivial_usage "None"
#define newcmd_full_usage "None"

最後一個步驟是啟用新命令(通過 make menuconfig,然後在 Miscellaneous Utilities 菜單中啟用這個選項)然後使用 make 來編譯 BusyBox。

使用新的 BusyBox,我們可以對這個新命令進行測試,如清單 18 所示。
清單 18. 測試新命令
$ ./busybox newcmd arg1
newcmd called:
arg[0] = newcmd
arg[1] = arg1
$ ./busybox newcmd --help
BusyBox v1.1.1 (2006.04.12-13:47+0000) multi-call binary
Usage: newcmd None
None

就是這樣!BusyBox 開發人員開發了一個優秀但非常容易擴展的工具。
結束語
BusyBox 是為構建內存有限的嵌入式系統和基於軟盤系統的一個優秀工具。BusyBox 通過將很多必需的工具放入一個可執行程序,並讓它們可以共享代碼中相同的部分,從而對它們的大小進行了很大程度的縮減,BusyBox 對於嵌入式系統來說是一個非常有用的工具,因此值得我們花一些時間進行探索。

上文網上轉載!
1.USE_NEWCMD(APPLET(newcmd, newcmd_main, _BB_DIR_USER_BIN, _BB_SUID_NEVER))
此語句,在編譯的時候會報出 USE_NEWCMD 未定義!
故使用源碼中的類似語句 APPLET(newcmd, newcmd_main, _BB_DIR_USER_BIN, _BB_SUID_NEVER) 替代之,編譯通過
2.但是 在此時測試命令的時候並沒有得到上文給出的結果,而是提示:
"#./busybox newcmd
newcmd: applet not found "


# ./newcmd 11
11: applet not found

6. 查看linux當前載入庫文件的命令

ldd
<可執行文件名>
查看可執行文件鏈接了哪些
系統動態鏈接庫
nm
<可執行文件名>
查看可執行文件裡面有哪些符號
strip
<可執行文件名>
去除符號表可以給可執行文件瘦身
如果我們想從可執行程序裡面提取出來一點什麼文本信息的話,還可以用strings命令
strings
<可執行文件名>
Linux操作系統上面的動態共享庫大致分為三類:
1、操作系統級別的共享庫和基礎的系統工具庫
比方說libc.so,
libz.so,
libpthread.so等等,這些系統庫會被放在/lib和/usr/lib目錄下面,如果是64位操作系統,還會有/lib64和/usr
/lib64目錄。如果操作系統帶有圖形界面,那麼還會有/usr/X11R6/lib目錄,如果是64位操作系統,還有/usr/X11R6
/lib64目錄。此外還可能有其他特定Linux版本的系統庫目錄。
這些系統庫文件的完整和版本的正確,確保了Linux上面各種程序能夠正常的運行。
2、應用程序級別的系統共享庫
並非操作系統自帶,但是可能被很多應用程序所共享的庫,一般會被放在/usr/local/lib和/usr/local/lib64這兩個目錄下面。很多你自行編譯安裝的程序都會在編譯的時候自動把/usr/local/lib加入gcc的-L參數,而在運行的時候自動到/usr/local
/lib下面去尋找共享庫。
以上兩類的動態共享庫,應用程序會自動尋找到他們,並不需要你額外的設置和擔心。這是為什麼呢?因為以上這些目錄默認就被加入到動態鏈接程序的搜索路徑裡面了。Linux的系統共享庫搜索路徑定義在/etc/ld.so.conf這個配置文件裡面。這個文件的內容格式大致如下:
/usr/X11R6/lib64
/usr/X11R6/lib
/usr/local/lib
/lib64
/lib
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/ImageMagick/lib
假設我們自己編譯安裝的ImageMagick圖形庫在/usr/local/ImageMagick目錄下面,並且希望其他應用程序都可以使用
ImageMagick的動態共享庫,那麼我們只需要把/usr/local/ImageMagick/lib目錄加入/etc/ld.so.conf文件裡面,然後執行:ldconfig
命令即可。
ldcofig將搜索以上所有的目錄,為共享庫建立一個緩存文件/etc/ld.so.cache。為了確認ldconfig已經搜索到ImageMagick的庫,我們可以用上面介紹的strings命令從ld.so.cache裡面抽取文本信息來檢查一下:
strings
/etc/ld.so.cache
|
grep
ImageMagick
輸出結果為:
/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
已經成功了!
3、應用程序獨享的動態共享庫
有很多共享庫只被特定的應用程序使用,那麼就沒有必要加入系統庫路徑,以免應用程序的共享庫之間發生版本沖突。因此Linux還可以通過設置環境變數LD_LIBRARY_PATH來臨時指定應用程序的共享庫搜索路徑,就像我們上面舉的那個例子一樣,我們可以在應用程序的啟動腳本裡面預先設置
LD_LIBRARY_PATH,指定本應用程序附加的共享庫搜索路徑,從而讓應用程序找到它。

7. 初步接觸linux,請問gdb調試start後載入動態庫符號時間很長,怎麼解決,可以不載入指定庫符號嗎

方法一、在/etc/ld.so.conf文件中添加路徑,vi /etc/ld.so.conf
添加下邊內容

123

include ld.so.conf.d/*.conf /usr/cluster/.share/lib

方法二、在終端輸入:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/cluster/.share/lib
方法三、修改/etc/profile文件

123

export MPI_HOME=/usr/cluster export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MPI_HOME/.share/lib

在終端執行source /etc/profile 使配置文件生效
程序運行時載入動態庫失敗的解決方法
錯誤提示如下:
error while loading shared libraries: libjson.so.0: cannot open shared object file: No such file or directory
原因一般有兩個,一個是操作系統中沒有包含該共享庫(lib*.so.* 文件)或者共享庫版本不對。解決辦法就是重新下載安裝。
另外一個原因就是已經安裝了該共享庫,但是執行需要調用該共享庫的程序的時候,程序按照默認共享庫路徑找不到該共享庫文件。解決方法如下:
如果共享庫文件安裝到了 /lib 或 /usr/lib 目錄下,那麼執行一下 ldconfig 命令。
ldconfig命令的用途, 主要是在默認搜尋目錄(b和/usrb)以及動態庫配置文件/etc/ld.so.conf內所列的目錄下, 搜索出可共享的動態鏈接庫(格式如lib*.so*), 進而創建出動態裝入程序(ld.so)所需的連接和緩存文件. 緩存文件默認為/etc/ld.so.cache, 此文件保存已排好序的動態鏈接庫名字列表.
如果共享庫文件安裝到了 /usr/local/lib (一般開源的共享庫都會安裝到該目錄下)或者其它非 /lib 或 /usr/lib 目錄下,那麼在執行 ldconfig 命令前,還要把新的共享庫目錄加入到共享庫配置文件 /etc/ld.so.conf 中,如下:

1234

# cat /etc/ld.so.confinclude ld.so.conf.d/*.conf# echo "/usr/local/lib" >> /etc/ld.so.conf# ldconfig

或者在 /etc/ld.so.conf.d/ 目錄下新建任何以 .conf 為後綴的文件,在該文件中加入庫文件所在的目錄。然後執行 ldconfig 更新 /etc/ld.so.cache 文件。
如果共享庫文件安裝到了其他非 /lib 或 /usr/lib 目錄下,但是又不想在 /etc/ld.so.conf 文件中加共享庫路徑(或者是沒有許可權加路徑)。那可以 export 一個全局變數 LD_LIBRARY_PATH,然後運行程序的時候就會去找個目錄中找共享庫。
LD_LIBRARY_PATH的意思是告訴loader在哪些目錄中可以找到共享庫. 可以設置多個搜索目錄, 這些目錄之間用冒號分隔開. 比如安裝了一個mysql到/usr/local/mysql目錄下, 其中有一大堆庫文件在/usr/local/mysql/lib下面, 則可以在.bashrc或.bash_profile或shell里加入以下語句即可:
export LD_LIBRARY_PATH=/usr/local/mysql/lib:$LD_LIBRARY_PATH
一般來講這只是一種臨時的解決方案, 在沒有許可權或臨時需要的時候使用.
如果程序需要的庫文件比系統目前存在的庫文件版本低,可以做一個鏈接。比如:

12345

error while loading shared libraries: libncurses.so.4: cannot open sharedobject file: No such file or directoryls /usr/lib/libncu*/usr/lib/libncurses.a /usr/lib/libncurses.so.5/usr/lib/libncurses.so /usr/lib/libncurses.so.5.3

可見雖然沒有libncurses.so.4,但有libncurses.so.5,是可以向下兼容的
建一個鏈接就好了

1

ln -s /usr/lib/libncurses.so.5.3 /usr/lib/libncurses.so.4

閱讀全文

與ldconfig命令相關的資料

熱點內容
rf3148編程器 瀏覽:505
浙江標准網路伺服器機櫃雲主機 瀏覽:587
設置網路的伺服器地址 瀏覽:600
java圖形界面設計 瀏覽:751
純前端項目怎麼部署到伺服器 瀏覽:538
瓜子臉程序員 瀏覽:505
如何保證伺服器優質 瀏覽:94
小微信aPP怎麼一下找不到了 瀏覽:299
演算法纂要學術價值 瀏覽:975
程序員你好是什麼意思 瀏覽:801
倩女幽魂老伺服器如何玩 瀏覽:561
電子鍾單片機課程設計實驗報告 瀏覽:999
看加密頻道 瀏覽:381
程序員算不算流水線工人 瀏覽:632
三星電視我的app怎麼卸載 瀏覽:44
簡述vi編譯器的基本操作 瀏覽:507
讓程序員選小號 瀏覽:91
加強數字貨幣國際信息編譯能力 瀏覽:584
購買的app會員怎麼退安卓手機 瀏覽:891
程序員的種類及名稱 瀏覽:295