一、shell簡介
1、使用背景
- 随着各式Linux系統的圖形化程度的不斷提高,使用者在桌面環境下,通過電機、拖拽等操作就可以直接完成大部分的工作。
- 然而,許多Ubuntu Linux 功能使用Shell指令來實作,要比使用圖形界面互動,完成的更快、更直接。
2、簡介:
- 英文單詞shell可直譯為”貝殼“。”貝格“是動物作為外在保護的一種工具。
- 可以這樣認為,Linux中的Shell就是Linux核心的一個外層保護工具,并負責完成使用者和核心的互動。
- 指令是使用者向系統核心發出控制請求,與之互動的文本流。
- shell是一個指令行解釋器,将使用者指令解析為作業系統能夠所了解的指令,實作使用者與作業系統的互動。
- 當需要重複執行若幹指令,可以将這些指令集合起來,加入一定的控制語句,編輯成為shell腳本檔案,交給shell 批量執行。
3、執行過程
- 使用者在指令提示符下鍵入指令文本,開始與shell進行互動。
- 接着,shell将使用者的指令或者按鍵轉化成核心所能夠了解的指令。
- 控制作業系統做出反應,知道控制相關硬體裝置。
- 然後,shell将輸出結果通過shell送出給使用者。
4、主流的shell的有幾種:
—— Bourne Shell (簡稱sh) :他是Unix的第一個shell程式,早已成為了工業标準。
—— C Shell (簡稱sh)
—— Korn Shell (簡稱sh)
—— Bourne Again Shell (簡稱sh) :能夠提供環境變量以配置使用者shell環境。---------- Ubuntu 預設安裝的Shell.
5、基本的指令
- 立即關機 : sudo shutdown -t now
- 立即重新開機 : sudo shutdown -r now 或者 sudo reboot now
- 機器将在45分鐘内自動關機 : sudo shutdown -h +45
- 機器将在45分鐘内自動重新開機 : sudo shutdown -r +45
whoami :目前使用者名
hostname:目前主機名
pwd:目前路徑
二、shell 指令格式
1、基本介紹
- shell提示符辨別了指令行的開始。使用者在提示符後面輸入一條指令并按Enter鍵,完成向系統送出指令。
— 通常shell指令提示符采用了以下的格式:
[email protected]:direction$
使用者名 主機名 目錄名
username:使用者名,顯示目前登入使用者的賬号名。
hostname:主機名,顯示登入的主機名,例如若遠端登陸後,則顯示登入的主機名。
direction :目錄名,顯示目前所處的路徑,當在根目錄下顯示為“/”,當在使用者目錄下顯示為“~”。
2、指令格式
- 通常一條指令包含三個要素:指令名稱、選項、參數。指令名稱式必須的,選項和參數都可能是可選項。
$ Command [-Options] Argument1 Argument2.....
— $ :She'l'l提示符,如果目前使用者為超級使用者,提示符為“#”,其他使用者的提示符均為“$”。
— Command :指令名稱,Shell指令或程式,嚴格區分大小寫。
— Options :指令選項,用于改變指令執行的類型,由“-”引導,可以同時帶多個選項。
— Argument :指令參數,指出指令作用的對象或目标,有的指令允許帶多個參數。
其中:
- 一條指令中的三個要素用空格隔開,不同指令之間用 分号(;)将個指令隔開。
- 如果一條指令不能在一行寫完,在行尾使用反斜杠(\)标明該條指令未結束。
三、shell 指令行操作
注:CTRL + C :撤銷 上次指令。
1、補齊指令與檔案名
—— 在初學時 記不全指令或者檔案名時。Bash Shell 的指令與檔案補齊功能會幫助使用者。在輸入指令或者檔案名的幾個字元後,按TAB鍵或者ESC鍵自動補齊剩餘沒有輸入的字元串。
—— 如果存在多個指令 或檔案有相同字首,shell将列出所有相同字首的指令或檔案。shell給出的提示資訊,幫助使用者回憶和完成輸入。之後等待使用者輸入足夠的字元。
—— 需要說明的時,連續按兩下TAB鍵或者ESC鍵,用于指令補齊;按下一次TAB鍵,用于檔案名補齊。
2、查詢指令曆史
- 按“↑” 以及“↓”鍵 出現指令曆史
- 輸入 history [number]
- echo $#HISTSIZE :顯示存儲的曆史記錄條數 。
- HISTSIZE=100 :将存儲的曆史記錄容量更改為 100 條。 ------- 修改時暫時的,隻在目前的指令視窗有效。
- 永久修改 ---------- ls -a : 修改 vi .bashrc檔案中的值。