Linux程式設計 筆記——第一章入門
1、Unix的哲學
簡單性:Keep It Small and Simple。越大、越複雜的系統註定包含越大、越複雜的錯誤,而除錯是所有人的苦差事。
集中性:不要把所有亂七八糟的功能堆在一起,功能臃腫的程式很那維護和使用。當用戶出現新的需求的時候,我們通常是把小工具組合起來已完成更復雜的任務。
可重用元件:將應用程式的核心封裝成庫,便於呼叫。
過濾器:Unix提供了一些機制,讓我們可以把一些Unix程式通過一種新穎的方式組合起來,以開發出相當複雜的程式。
開放的檔案格式:比較成功並流行的Unix程式都是用純ASCII碼的文字文件或者XML檔案作為配置檔案和資料檔案。
靈活性:你不能期待使用者都能非常正確地使用你的程式。永遠不要認為你知道使用者想做的一切事。
2、Linux程式設計
Linux的應用程式有兩種型別:可執行檔案和指令碼檔案。可執行檔案是計算機可以直接執行的檔案,就像Windows下面的.exe檔案一下;指令碼檔案通常是一組指令的集合,這些指令有直譯器執行,按照指令碼的順序指令執行,比如shell檔案。
Linux並不要求這兩種型別的檔案有特殊的檔名或者字尾名,但最好加上來區別,像shell檔案的字尾為.sh、Python的字尾為.py等等。
3、Linux下與程式設計有關的目錄
/bin:二進位制檔案目錄,存放啟動系統時用到的程式。
/usr/bin:使用者二進位制檔案目錄,用於存放使用者使用的標準程式。
/usr/local/bin:本地二進位制檔案目錄,用於存放軟體安裝的程式。
4、文字編輯器
書中推薦使用的編輯器是Emacs,而我本人使用的是vim,不做任何說話,避免開戰。
編譯器使用的gcc。
5、第一個Linux C語言程式
#include <stdio.h> #include <stdlib.h> int main() { printf("hello world\n"); exit(0); }
編譯、連結和執行程式
$ gcc -o hello hello.c //-o name 告訴編譯器可執行檔案的名稱,不加預設生成a.out(assembler output)
$ ./hello
hello world
6、開發系統引導
對C語言來說,標頭檔案幾乎總是位於/usr/include目錄及其子目錄中。那些依賴於特定Linux版本的標頭檔案通常可以在目錄/usr/include/sys和/usr/include/linux中找到。
在除錯c語言的時候,可以使用-I(大寫)標誌來包含儲存在子目錄或非標準位置中的標頭檔案。例如:
$ gcc -I /usr/openwin/include fred.c
編譯器會在此目錄下查詢原始檔中包含的標頭檔案。