Shell:
- Linux系統中執行的一種特殊程式
- 在使用者和核心之間充當“翻譯官”
- 使用者登入Linux系統時,自動載入一個Shell程式
- Bash是Linux系統中預設使用的Shell程式
- 檔案位於/bin/bash
Linux命令的分類:
內部命令和外部命令的區別
內部命令 | 外部命令 |
整合於Shell直譯器程式內部的一些特殊指令,也稱為內建(Buit-in)指令 | Linux系統中能夠完成特定功能的指令碼檔案或二進位制程式 |
屬於Shell的一部分 | 屬於Shell直譯器程式之外的命令 |
沒有單獨對應的系統檔案 | 每個外部命令對應了一個系統檔案 |
自動載入記憶體,可以直接使用 | 必須知道其對應的檔案位置,由Shell載入後才能執行/bin,/usr/bin,/usr/local/bin等 |
Linux命令列的格式
命令字 [選項] [引數]
① 命令字
- 是整條命令中最關鍵的一部分
- 唯一確定一條命令
②選項
- 短格式選項:使用“-”符號引導
- 長格式選項:使用“--”符號引導
③引數
- 命令字的處理物件
- 可以是檔名、目錄(路徑)名或使用者名稱等內容
- 個數可以是零到多個
編輯Linux命令列的輔助操作
- Tab鍵:自動補齊
- 反斜槓“\”:強制換行
- Ctrl+u組合鍵:清空至行首
- Ctrl+k組合鍵:清空至行尾
- Ctrl+L組合鍵:清屏
- Ctrl+c組合鍵:取消本次命令編輯
- Ctrl+a組合鍵:切換到行首
- Ctrl+e組合鍵:切換到行尾
獲得命令幫助的方法
①內部命令help
- 檢視Shell內部命令的幫助資訊
②命令的“help”選項
- 適用於大多數Linux外部命令
③使用man命令閱讀手冊頁
- 使用“↑”、“↓”(ENTER)方向鍵滾動一行文字
- 使用Page Up和Page Down(空格)鍵翻頁
- 按Q或q鍵退出閱讀環境
- 按“/”鍵查詢內容,n鍵向下查詢,N鍵向下查詢
檢視當前的工作目錄-pwd
- 顯示使用者當前所在的工作目錄位置
pwd |
- 示例
[root@localhost~]#pwd /root—當前工作目錄 |
相對路徑的表現形式
表現形式 | 說明 | 示例 |
直接使用目錄名或檔名 | 表示當前工作目錄中的子目錄、檔案的位置 | grub.conf |
以一個點號“.”開頭 | 表示當前工作目錄作為七點 | ./grub.conf |
以兩個點號“..”開頭 | 表示以當前目錄的上一級目錄(父目錄)作為起點 | ./vmlinuz |
以“~使用者名稱”形式開開頭 | 表示以指定使用者的宿主目錄作為起點 | ~teacher |
以“~”形式開頭 | 表示以當前使用者的宿主目錄作為起點 | ~ |
列表顯示目錄內容-ls
- 顯示目錄中內容,包括,目錄和檔案相關屬性資訊
ls [選項] [檔案或目錄...] |
- 常用選項
選項 | 說明 |
-l | 以長格式(Long)顯示檔案和目錄的列表,包括許可權、大小、最後更新時間等詳細資訊。ll命令與ls -l功能相同 |
-a | 顯示所有(All)子目錄和檔案的資訊,包括名稱以點號“.”開頭的隱藏目錄和隱藏檔案 |
-A | 與-a選項的作用基本類似,但有兩個特殊隱藏目錄不會顯示,即表示當前目錄的“.”和表示父目錄的“..” |
-d | 顯示目錄(Directory)本身屬性,而不是顯示目錄中的內容 |
-h | 以更人性化(Human)的方式顯示目錄或者檔案的大小,預設的大小單位為位元組(kB),使用-h選項後將顯示為kB、MB等單位。此選項要結合-l 選項一起使用 |
-R |
以遞迴(Recursive)的方式顯示指定目錄及其子目錄中所有內容 |
--color |
在字元模式中以顏色區分不同的檔案。預設已開啟 通常情況下,深藍色表示目錄,白色表示一般檔案,綠色表示可執行的檔案,黃色表示裝置檔案,紅色表示壓縮檔案 |
-i | 顯示檔案和目錄的inode號 |
注:
用ls -l命令檢視某一個目錄會得到一個7個欄位的列表
-rwxrwxrwx-- 1 root root 762 07-29 18:19 exit
第1欄位:檔案屬性字
第一個字元代表檔案的型別:
“-”表示該檔案是一個普通的檔案
“d”表示該檔案是一個目錄
“1”表示該檔案是一個軟連結檔案。類似於windows下快捷方式
- 結合萬用字元
“?”:代表任意字元,有且一個字元
“*”:代表任意數個字元,可以是0個或者1個或者多個
“[]”:表示可以匹配字元組中的任意一個字元 [abc]、[a-f]
設定別名
- 通過別名機制簡化常用的、比較長的命令
alias 命名別名='命令'----“=”兩邊不能有空格 |
- 示例
設定myls為ls-alh的別名
alias myls='ls-alh'---別名是myls |
- 取消別名
unalias 命名別名 |
統計目錄及檔案空間佔用情況-du
- 統計指定目錄(或檔案)所佔用磁碟空間的大小
du [選項] [檔案或目錄....] |
- 常用選項
選項 | 說明 |
-a | 統計磁碟佔用時包括所有的檔案,而且僅僅只統計目錄 |
-h | 以更人性化的方式(預設以KB計數,但不顯示單位)顯示出統計結果 |
-s | 只統計所佔空間的大小,而不是統計每個子目錄、檔案的大小 |
--max-depth=n | 統計所有小於等於第n層目錄的大小 |
選項-a和-s不可同時使用 |
- 統計出/var/log目錄的大小
du -h --max-depth=1/var/log |
建立新目錄-mkdir
- 建立新的空目錄
mkdir [選項] 目錄位置及名稱.. |
-p:一次性建立巢狀的多層目錄
- 示例
在當前目錄下建立名為public_html的目錄
mkdir public_html |
建立目錄/aa,在/aa目錄下建立子目錄bb,在/aa/bb目錄下建立子目錄cc
mkdir -p /aa/bb/cc |
建立空檔案-touch命令
- 更新檔案的時間標記
- 經常用於建立多個新的空檔案
touch 檔案... |
- 示例
建立兩個空檔案,檔名分別為aa.txt和bb.txt
touchu aa bb touch {a,b}.txt |
建立連結檔案-ln
- 為了檔案或目錄建立連結檔案,類似於Windows系統的快捷方式
- 連結檔案型別
①軟連結
②硬連結
ln -s 原始檔或目錄....連結檔案或目錄位置 -s:建立軟連結 |
- 示例
ln -s /bin/bzip2/bin/wx/ |
複製檔案或目錄-cp
- 將需要複製的檔案或目錄(源)重建一份,並儲存為新的檔案或目錄
cp [選項]...原始檔或目錄...目標檔案或目錄.... |
- 常用選項
-f、-i、-p、-r
刪除指定的檔案或目錄
- 刪除指定的檔案或目錄
rm [選項] 要刪除的檔案或目錄... |
- 常用選項
-f、-i、-r
- 示例
rm -rf public_html/grub/ rm -i public-html/apg·conf |
查詢命令檔案存放目錄-which
- 搜尋範圍由環境變數PATH決定(echo$PATH)
which 命令|程式名 //預設當找到第一個目標後不在繼續查詢 |
或
which -a 命令|程式名 //所有搜尋路徑中查詢 |
- 示例
which ls which history |
使用which查詢內部命令時,將找不到對應的程式
查詢檔案或目錄-find
- 採用遞迴方式,根據目標的名稱、型別、大小等不同屬性進行精細查詢
find [查詢範圍] [查詢條件表示式] |
查詢範圍:查詢檔案或子目錄的目錄位置
查詢條件表示式:查詢條件型別
- 常用查詢條件型別
查詢型別 | 關鍵字 | 說明 |
按名稱查詢 | -name | 根據目標檔案的名稱進行查詢,允許使用“*”及“?”萬用字元 |
按檔案大小查詢 | -size |
根據目標檔案的大小進行查詢,一般使用“+”、“-”號設定超過或者小於指定的大小 作為查詢條件,常用的容量單位包括kB(注意k是小寫)、MB、GB |
按檔案屬性查詢 | -user | 根據檔案是否屬於目標使用者進行查詢 |
按檔案型別查詢 | -type |
根據檔案的型別查詢,檔案型別包括普通檔案(f)、目錄(d)、塊裝置檔案(b)、字元裝置檔案(c)等 塊裝置檔案(b):成塊讀取資料的裝置(硬碟、記憶體、光碟機) 字元裝置檔案(c):按單個字元讀取資料的裝置(鍵盤、滑鼠) |
使用find命令實現多個查詢條件
-
各表格式之間使用邏輯運算子
①“-a”表示而且(and)
②“-o”表示或者(or)
- 示例
find /boot -size +1024k -a -name "vmlinuz" find /boot -size +1024k -o -name "vmlinuz" |
find之exec用法
- -exec引數後面跟的是Linux命令,它是以分號“,”為結束標誌,由於各個系統中分號會有不同的意義,因此在分號前面加上反斜槓轉義符“\”。{}代表前面find查詢出來的檔名
- find命令匹配到了當前目錄下所有普通檔案,並在-exec選項中使用ls -l 命令將它門列出
find ./-type f -exec ls -l {}\;
命令的優先順序
- 第一優先順序:指定路徑的命令。絕對路徑/usr/bin/ls或者相對路徑cd/usr/bin ./ls
- 第二優先順序:別名指定的命令 alias mylsr=‘/usr/bin/ls -alh’
- 第三優先順序:內部命令
- 第四優先順序:hash命令--linux系統下會有一個hash表,當你剛開機時這個hash表為空,每當你執行一條命令時,hash表會記錄下這條命令的路徑,就相當於快取表一樣。第一次執行命令shell直譯器預設的會從PATH路徑下尋找該命令的路徑,當你第二次使用該命令時,shell直譯器首先會檢視hash表,沒有該命令才會去PATH路徑下尋找。hash表能提高命令的呼叫速率。
- 第五優先順序:通過PATH定義的查詢順序查詢
如果以上順序都找不到,就會報“未找到命令....”的錯誤