3.6 Linux命令基本格式
本節開始,我們不會再見到圖形介面了,因為對伺服器來講,圖形介面會佔用更多的系統資源,而且會安裝更多的服務、開放更多的埠,這對伺服器的穩定性和安全性都有負面影響。其實,伺服器是一個連顯示器都沒有的傢伙,要圖形介面幹什麼?
說到這裡,有很多人會很崩潰。筆者就經常聽到抱怨 Linux 是落後於時代的老古董,就像筆者的白頭髮一樣!但是,大家要理解,對伺服器來講,穩定性、可靠性、安全性才是最主要的。而簡單易用不是伺服器需要考慮的事情,所以學習 Linux,這些枯燥的命令是必須學習和記憶的內容。
命令提示符
登入系統後,第一眼看到的內容是:
[root@localhost ~]#
這就是 Linux 系統的命令提示符。那麼,這個提示符的含義是什麼呢?
- []:這是提示符的分隔符號,沒有特殊含義。
- root:顯示的是當前的登入使用者,筆者現在使用的是 root 使用者登入。
- @:分隔符號,沒有特殊含義。
- localhost:當前系統的簡寫主機名(完整主機名是 localhost.localdomain)。
- ~:代表使用者當前所在的目錄,此例中使用者當前所在的目錄是家目錄。
- #:命令提示符,Linux 用這個符號標識登入的使用者許可權等級。如果是超級使用者,提示符就是 #;如果是普通使用者,提示符就是 $。
家目錄(又稱主目錄)是什麼? Linux 系統是純字元介面,使用者登入後,要有一個初始登入的位置,這個初始登入位置就稱為使用者的家:
- 超級使用者的家目錄:/root。
- 普通使用者的家目錄:/home/使用者名稱。
使用者在自己的家目錄中擁有完整許可權,所以我們也建議操作實驗可以放在家目錄中進行。我們切換一下使用者所在目錄,看看有什麼效果。
[root@localhost ~]# cd /usr/local
[root@localhost local]#
仔細看,如果切換使用者所在目錄,那麼命令提示符中的會變成使用者當前所在目錄的最後一個目錄(不顯示完整的所在目錄 /usr/ local,只顯示最後一個目錄 local)。
命令的基本格式
接下來看看 Linux 命令的基本格式:
[root@localhost ~]# 命令[選項][引數]
命令格式中的 [] 代表可選項,也就是有些命令可以不寫選項或引數,也能執行。那麼,我們就用 Linux 中最常見的 ls 命令來解釋一下命令的格式(有關 ls 命令的具體用法,後續章節會詳細介紹)。如果按照命令的分類,那麼 ls 命令應該屬於目錄操作命令。
[root@localhost ~]# ls
anaconda-ks.cfg install.log install.log.syslog
1) 選項的作用
ls 命令之後不加選項和引數也能執行,不過只能執行最基本的功能,即顯示當前目錄下的檔名。那麼加入一個選項,會出現什麼結果?
[root@localhost ~]# Is -l
總用量44
-rw-------.1 root root 1207 1 月 14 18:18 anaconda-ks.cfg
-rw-r--r--.1 root root 24772 1 月 14 18:17 install.log
-rw-r--r--.1 root root 7690 1 月 14 18:17 install.log.syslog
如果加一個"-l"選項,則可以看到顯示的內容明顯增多了。"-l"是長格式(long list)的意思,也就是顯示檔案的詳細資訊。至於 "-l" 選項的具體含義,我們稍後再詳細講解。可以看到選項的作用是調整命令功能。如果沒有選項,那麼命令只能執行最基本的功能;而一旦有選項,則可以顯示更加豐富的資料。
Linux 的選項又分為短格式選項(-l)和長格式選項(--all)。短格式選項是英文的簡寫,用一個減號呼叫,例如:
[root@localhost ~]# ls -l
而長格式選項是英文完整單詞,一般用兩個減號呼叫,例如:
[root@localhost ~]# ls --all
一般情況下,短格式選項是長格式選項的縮寫,也就是一個短格式選項會有對應的長格式選項。當然也有例外,比如 ls 命令的短格式選項 -l 就沒有對應的長格式選項。所以具體的命令選項可以通過後面我們要學習的幫助命令來進行査詢。
2) 引數的作用
引數是命令的操作物件,一般檔案、目錄、使用者和程序等可以作為引數被命令操作。例如:
[root@localhost ~]# ls -l anaconda-ks.cfg
-rw-------.1 root root 1207 1 月 14 18:18 anaconda-ks.cfg
但是為什麼一開始 ls 命令可以省略引數?那是因為有預設引數。命令一般都需要加入引數,用於指定命令操作的物件是誰。如果可以省略引數,則一般都有預設引數。例如:
[root@localhost ~]# ls
anaconda-ks.cfg install.log install.log.syslog
這個 ls 命令後面沒有指定引數,預設引數是當前所在位置,所以會顯示當前目錄下的檔名。
總結:命令的選項用於調整命令功能,而命令的引數是這個命令的操作物件。