若是使用GUI,Linux和Windows沒有什麼區別。Linux學習應用的一個特色是經過命令行進行使用。javascript
登陸Linux後,咱們就能夠在#或$符後面去輸入命令,有的時候命令後面還會跟着選項
(options)或參數
(arguments)。即Linux中命令格式爲:html
command [options] [arguments] //中括號表明是可選的,即有些命令不須要選項也不須要參數
選項
是調整命令執行行爲的開關,選項
不一樣決定了命令的顯示結果不一樣。java
參數
是指命令的做用對象。linux
如ls命令,ls
或ls .
顯示是當前目錄的內容,這裏「.」就是參數,表示當前目錄,是缺省的能夠省略。咱們能夠用ls -a .
顯示當前目錄中的全部內容,包括隱藏文件和目錄。其中「-a」 就是選項,改變了顯示的內容,以下圖所示:正則表達式
以上簡要說明了選項及參數的區別,但具體Linux中哪條命令有哪些選項及參數,須要咱們靠經驗積累或者查看Linux的幫助了。shell
不論學習編程仍是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:
man 雖然很重要,但有些命令看了幫助還不會用,初學者須要例子,cheat就是這個身邊的小抄。 cheat 命令不是Linux自帶的,你們參考這篇文章(英文版)安裝,實驗樓課程實驗系統中已經安裝了。
cheat是做弊,小抄的意思。
cheat命令是在GNU通用公共許可證下,爲Linux命令行用戶發行的交互式備忘單應用程序。它提供顯示Linux命令使用案例,包括該命令全部的選項和簡短但尚可理解的功能。
使用cheat命令做弊是能夠的。:)
和查找相關的核心命令還有find
,locate
,grep
,whereis
,which
,其中:
上面的命令包括man -k有一個共同特色就是基於「搜索」,學好了能夠觸類旁通,你們重點學習,掌握了他們,其餘命令就能夠自學了。你用 「man find」, 「cheat find」試試。