在全部的問題之中,最早要解決就是:如何纔可以讓Linux作咱們想讓它作的事情?咱們能夠用各類方式作到這一點:例如,一個Linux程序員,能夠用編程語言經過操做系統的編程接口與Linux進行交互若是,若是足夠牛的話,甚至能夠考慮撇開編程接口,直接與Linux內核進行交互。可是,做爲一個普通的Linux系統管理員,咱們仍是傾向於經過現成的操做命令接口(User CommandInterface)與Linux打交道。與Linux的「核(kernel)」對應,操做命令接口很形象地被稱爲「殼 (shell)」。程序員
簡單來講, Shell就是一種能讓你與Linux之間進行「對話」的軟件。Shell等待你輸入,向Linux解釋你的輸入,而且處理各類各樣的系統的輸出結果,把這些結果展現給你。這種交互能夠是即時交互(從鍵盤輸入,而且能夠當即獲得響應),也能夠是非即時交互(shell 腳本[1])。shell
咱們所使用的CentOS系統上的默認Shell叫作Bash(The GNU’s Bourne Again Shell)。Bash也是絕大部分Linux平臺上的默認Shell。 編程
注意編程語言
¨ 事實上,Linux爲用戶提供了兩種大相徑庭的「殼」:—種是命令行式shell(Command Line Interface shell ,即CLI shell),用戶利用這些字符命令或者shell腳原本組織和控制做業的執行,或者對計算機系統進行管理。另—種是圖形界面shell(Graphical User Interface shell 即 GUI shell),用戶經過點擊,拖動圖像圖標來完成一樣的事情。工具
¨ 在Linux中,傳統意義上的shell指的就是命令行式的shell,在下面課程中,若是沒有特別註明,所提到的shell就是命令行式的shellspa
當文本模式下登入系統或在圖形界面下打開終端,首先將看到的是一個提示符(prompt)。提示符自己就包含了至關多的信息:CentOS的標準提示符包括了登陸用戶名、登入的主機名、用戶當前所在的目錄(workingdirectory)和提示符號,例如:操作系統
命令序列 1命令行
[stu@localhost~]$設計
其中,'Stu'爲登陸用戶名,'localhost'爲登陸主機名,’~’ 表示當前用戶正處在stu用戶的家目錄中,’$’則表示當前登陸用戶爲普通用戶 blog
注意
¨ 根據 Bourne Shell 的傳統,普通用戶的提示符以'$'結尾,而根用戶以’#’結尾
¨ ’~’ 符號不是一個固定的目錄名稱,而是一個」Shell 變量」,表明使用者的」家目錄」,舉例來講,若是我以dev01用戶身份登陸系統,dev01的家目錄是’/home/dev01’,那麼’~’就表明’/home/dev01’,若是我以root身份登陸系統,而root的家目錄是’/root’,那麼’~’就表明’/root’。至於到底」家目錄」和」Shell 變量」究竟是什麼,咱們在後繼的教程中會詳細討論。
這時就能夠輸入命令了,爲熟悉shell,咱們選擇的三個有表明性的命令來小試牛刀,這三個命令分別爲 whoami、echo和nano。
注意
¨ Linux中所謂的命令(Command),本質上就是一個與命令同名的可執行(Runnable)的二進制文件或者Shell腳本。
¨ 這些可執行文件通常都放在/bin、/sbin、/usr/bin或者/usr/sbin等目錄中,當要執行命令的時候,Shell 就會在這些目錄或者其餘用戶指定的目錄中(咱們在後面會詳細討論如何指定這寫目錄)搜索相應可執行文件,找到之後就運行,若是找不到文件,那麼Shell就會在終端中輸出相應的錯誤信息。
¨ 切記,Linux 區分大小寫。換一句話說,whoami 和WHOAMI 或 whoAmi是不同的。
重要
¨ 選項(option):包括一個或多個字母的代碼,通常來講前面有一個’-’ 符號或者’--’符號(’-’或者’--’符號是必要的,Linux用它來區別選項和參數),選項能夠看做是一種開關,通常用於控制命令的行爲。事實上,Linux中的命令在正常狀況下最少有兩個選項,--help和—version。
¨ 參數(parameter):一個字符串,參數通常用來向命令傳遞一些時運行所需的信息(例如文件或主機名稱等),Linux大多數命令都被設計爲能夠接納參數。
¨ 命令自己、選項和參數中間用空格來分隔,不論空多少格,shell 都視爲一格;
命令
用法:whoami [選項]...
顯示與當前的有效用戶ID 相關聯的用戶名。
¨ --help 顯示此命令幫助信息並退出
¨ --version 顯示命令版本信息並退出
注意
¨ 全部的ASCII碼均可以用「\」加數字(通常是8進制數字)來表示。而C語言中定義了一些字母前加"\"來表示常見的那些不能顯示的ASCII字符,如\0,\t,\n等,就稱爲轉義字符,由於後面的字符,都不是它原本的ASCII字符意思了。
¨ echo命令中的轉義字符與C語言中的轉義字符基本同樣,能夠參考echo命令的幫助文檔
命令
用法:/bin/echo [選項]... [字符串]... 或:/bin/echo 長選項
將 STRING 回顯到標準輸出。
¨ -n 不尾隨換行符
¨ -e 啓用解釋反斜槓的轉義功能
¨ -E 禁用解釋反斜槓的轉義功能(默認)
¨ --help 顯示此幫助信息並退出
¨ --version 顯示版本信息並退出
若-e可用,則如下序列便可識別:
¨ \\ 反斜槓
¨ \a 響鈴聲
¨ \b 退格
¨ \c 再也不產生新的輸出
¨ \e 轉義符
¨ \f 換頁
¨ \n 新行
¨ \r 回車
¨ \t 水平製表符
¨ \v 豎直製表符
¨ \0NNN 字節數以八進制數 NNN (1至3位)表示
¨ \xHH 字節數以十六進制數 HH (1至2位)表示
注意:BASH中可能內含本身的echo 程序版本,它會覆蓋這裏所說起的相應版本,可能在命令具體行爲上有些許區別。
最後咱們來看nano命令,nano是一個文本編輯工具,咱們在第一部分的知識點4中提到過。nano命令與上面兩個命令不太同樣,這個命令有本身的界面,咱們在命令行下輸入nano, 回車,就來到了nano界面中,這時咱們就能夠在光標處輸入文本了,咱們能夠用箭頭鍵來移動光標,也能夠按Alt+M打開鼠標支持來移動光標:按Ctrl+G 能夠查看nano的幫助文檔,在幫助文檔中能夠查看nano各類命令快捷鍵的詳細用法。接着,按Ctrl+X能夠退出當前查看或編輯的文檔。
[1] Shell腳本是放在文件中的一串shell和操做系統命令,它們能夠被重複使用。本質上,shell script是命令行命令簡單的組合到一個文件裏面。