Linux程式設計--程式設計前你需要知道的基礎知識
1 PATH變數
當登陸進Linux系統時你與一個Shell程式進行互動,它在一組特定的路徑下進行指令的搜尋,一般稱為PATH環境變數,echo $PATH
可以顯示搜尋路徑。當以普通使用者登陸時,系統的預設PATH路徑為
/bin:二進位制檔案目錄,一般存放系統啟動時用到的程式
/usr/bin:使用者二進位制檔案目錄,用於存放使用者使用的標準程式
/usr/local/bin:本地二進位制檔案目錄,用於存放軟體安裝的程式
系統管理員(例如root使用者)登入後,使用的PATH變數可能還包含存放系統管理程式的目錄,如/sbin /usr/sbin
NOTE:
(1)Linux和Unix系統一樣,使用冒號(:)分割PATH變數裡的條目,而MS-DOS和Windows使用分號(;)
(2)Linux使用正斜線(/)分割檔名裡的目錄名,Windows使用反斜線(\)進行分割。
2 軟體程式設計導引
1 應用程式
應用程式通常放在系統保留的特定目錄中,包括用於程式開發的工具,一般放在/usr/bin /usr/local/bin /opt
中。系統管理員喜歡放在/user/local /opt
目錄下,用於區分廠商提供的還是後續新增的。對於我們個人開發者,可以放在/home
目錄下的某個位置,方便使用。
2 標頭檔案
系統級標頭檔案一般存放於/usr/include
目錄及其子目錄中。在呼叫C語言編譯器時,需要指定自定義的標頭檔案路徑時,使用-I
選項,如gcc -I/home/carl/helloworld hello.c -o hello
3 庫檔案
標準系統庫檔案一般儲存在/lib /usr/lib
.a 代表傳統的靜態函式庫
.so 代表共享函式庫
同調用外部標頭檔案的方式,在呼叫C語言編譯器時,需要指定自定義的庫檔案路徑時,使用-L
選項,如gcc -L/home/carl/helloworld hello.c -o hello
使用靜態庫,程式本身包含庫中的函式程式碼,僅限庫中被呼叫的函式。而使用動態庫時,它的連結方式是這樣的:程式本身不包含庫函式程式碼,而是引用執行時可以訪問的共享庫。當編譯好的程式載入到記憶體中執行時,函式引用被解析並去呼叫共享庫,如果有必要,共享庫才會被載入到記憶體中。
共享庫好處:
(1)減少生成的可執行檔案的大小。
(2)可以在系統中只儲存一份共享庫的副本供許多應用程式同時使用。
(3)共享庫的更新可以獨立於依賴它的應用程式。
可以通過ldd工具檢視應用程式依賴的共享庫,如ldd hello