Linux基礎與Linux下C語言編程基礎


Linux基礎

1 Linux命令

如果使用GUI,Linux和Windows沒有什么區別。Linux學習應用的一個特點是通過命令行進行使用。

登錄Linux后,我們就可以在#或$符后面去輸入命令,有的時候命令后面還會跟着選項(options)或參數(arguments)。即Linux中命令格式為:

command [options] [arguments] //中括號代表是可選的,即有些命令不需要選項也不需要參數 

選項是調整命令執行行為的開關,選項不同決定了命令的顯示結果不同。

參數是指命令的作用對象。

如ls命令,lsls .顯示是當前目錄的內容,這里“.”就是參數,表示當前目錄,是缺省的可以省略。我們可以用ls -a .顯示當前目錄中的所有內容,包括隱藏文件和目錄。其中“-a” 就是選項,改變了顯示的內容,如下圖所示:

以上簡要說明了選項及參數的區別,但具體Linux中哪條命令有哪些選項及參數,需要我們靠經驗積累或者查看Linux的幫助了。

2 man命令

不論學習編程還是Linux命令,掌握幫助文檔的使用都是很重要的,是舉一反三的重要途徑。 man是manul的縮寫,我們可以通過man man來查看man的幫助,如下圖:

幫助文檔包含:

1 Executable programs or shell commands(用戶命令幫助) 2 System calls (系統調用幫助) 3 Library calls (庫函數調用幫助) 4 Special files (usually found in /dev) 5 File formats and conventions eg /etc/passwd(配置文件幫助) 6 Games 7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7) 8 System administration commands (usually only for root) 9 Kernel routines [Non standard] 

解釋一下:

1是普通的Linux命令  
2是系統調用,操作系統的提供的服務接口 
3是庫函數,  C語言中的函數
5是指文件的格式,比如passwd, 就會說明這個文件中各個字段的含義  
6是給游戲留的,由各個游戲自己定義  
7是附件還有一些變量,比如向environ這種全局變量在這里就有說明  
8是系統管理用的命令,這些命令只能由root使用,如ifconfig

其中1,2,3是我們學習的重點,區別大家練習一下就知道了,比如printf是C語言的庫函數,也是一個Linux命令,大家嘗試一下man printf,man 1 printf,man 3 printf,體會一下區別。

知道printf 命令也好,printf函數也好,查找幫助文檔都很容易。man有一個-k 選項用起來非常好,這個選項讓你學習命令,編程時有了一個搜索引擎,可以舉一反三。 我們通過一個例子來說明,比如數據結構中學過排序(sort),我不知道C語言中有沒有完成這個功能的函數,可以通過“man -k sort”來搜索,因為是找C庫函數,我們關注帶3的,qsort好像是個好選項,如下圖:

結合后面學習的grep 命令和管道,可以多關鍵字查找:

man -k key1 | grep key2 | grep key3 | ... 

如下圖,可以更好的找到qsort:

3 cheat 命令

man 雖然很重要,但有些命令看了幫助還不會用,初學者需要例子,cheat就是這個身邊的小抄。 cheat 命令不是Linux自帶的,大家參考這篇文章英文版)安裝,實驗樓課程實驗系統中已經安裝了。

cheat是作弊,小抄的意思。

cheat命令是在GNU通用公共許可證下,為Linux命令行用戶發行的交互式備忘單應用程序。它提供顯示Linux命令使用案例,包括該命令所有的選項和簡短但尚可理解的功能。

使用cheat命令作弊是可以的。:)

4 其他核心命令

和查找相關的核心命令還有find,locate,grep,whereis,which,其中:

  • find查找一個文件在系統中的什么位置,locate是神速版本的find(Windows下有個Everything工具和locate類似).
  • grep 可以對文件全文檢索,支持正則表達式,正則表達式也是一個重要的元知識。
  • whereis,which告訴你使用的命令工具裝在什么地方。

上面的命令包括man -k有一個共同特點就是基於“搜索”,學好了可以舉一反三,大家重點學習,掌握了他們,其他命令就可以自學了。你用 “man find”, “cheat find”試試。

 

 

 

Linux下C語言編程基礎

1.練習vimtutuor至少一遍;

 

2.使用vim 輸入以下代碼,聯系使用“K”查找幫助文檔: 練習

3.練習gcc編譯運行代碼;

4.練習gdb調試代碼;

5.把上述代碼中除了main函數外的代碼制作成一個靜態庫math.a和一個共享庫math.so;

6.編寫makefile,讓代碼編譯,上述靜態庫和共享庫的使用自動化。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM