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

Linux基礎

1 Linux命令

若是使用GUI,Linux和Windows沒有什麼區別。Linux學習應用的一個特色是經過命令行進行使用。javascript

登陸Linux後,咱們就能夠在#或$符後面去輸入命令,有的時候命令後面還會跟着選項(options)或參數(arguments)。即Linux中命令格式爲:html

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

選項是調整命令執行行爲的開關,選項不一樣決定了命令的顯示結果不一樣。java

參數是指命令的做用對象。linux

如ls命令,lsls .顯示是當前目錄的內容,這裏「.」就是參數,表示當前目錄,是缺省的能夠省略。咱們能夠用ls -a .顯示當前目錄中的全部內容,包括隱藏文件和目錄。其中「-a」 就是選項,改變了顯示的內容,以下圖所示:正則表達式

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

2 man命令

不論學習編程仍是Linux命令,掌握幫助文檔的使用都是很重要的,是觸類旁通的重要途徑。 man是manul的縮寫,咱們能夠經過man man來查看man的幫助,以下圖:編程

幫助文檔包含:vim

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,讓代碼編譯,上述靜態庫和共享庫的使用自動化。

相關文章
相關標籤/搜索