Linux常用指令精講
檢視及切換目錄 (pwd、cd、ls、du)
檢視目前的工作目錄-pwd
顯示使用者目前所在的工作目錄位置
pwd
示例

切換工作目錄-cd
将使用者的工作目錄更改到其他位置
格式 | 說明 |
---|---|
cd 目标位置 | 切換到目标位置 |
cd ~ cd | 若不指定目标位置,切換到目前使用者的宿主目錄 |
cd - | 切換到上一次執行cd指令之前所在的目錄 |
絕對路徑:以根目錄為起點的路徑,方向是準确的
相對路徑: 以目前所在的目錄為起點
表現形式 | |
---|---|
直接使用目錄名或檔案名 | 表示目前工作目錄中的子目錄、檔案的位置 |
以一個點号 ”.” 開頭 | 表示以目前的工作目錄作為起點 |
以兩個點号 ”..” 開頭 | 表示以目前目錄的上一級目錄(父目錄)作為起點 |
以 "~使用者名" 形式開頭 | 表示以指定使用者的宿主目錄作為起點 |
以 "~” 形式開頭 | 表示以目前使用者的宿主目錄作為起點 |
清單顯示目錄内容-ls
顯示目錄内容,包括子目錄和檔案相關屬性資訊
ls [選項] [檔案或目錄...]
常用選項
選項 | |
---|---|
-l | 以長格式(Long) 顯示檔案和目錄的清單,包括權限、大小、最後更新時間等詳細資訊。ll指令與ls -l功能相同 |
-a | 顯示所有(All) 子目錄和檔案的資訊,包括名稱以點号“.”開頭的隐藏目錄和隐藏檔案 |
-A | 與-a選項的作用基本類似,但有兩個特殊隐藏目錄不會顯示,即表示目前目錄的“.”和表示父目錄的“…" |
-d | 顯示目錄(Directory) 本身的屬性,而不是顯示目錄中的内容。 |
-h | 以更人性化(Human) 的方式顯示目錄或檔案的大小,預設的大小機關為位元組(B),使用-h選項後将顯示為KB、MB等機關。此選項需要結合-l選項一起使用 |
-R | 以遞歸(Recursive)的方式顯示指定目錄及其子目錄中的所有内容。 |
-color | 在字元模式中以顔色區分不同的檔案。預設已開啟。通常情況下,深藍色表示目錄,白色表示一般檔案,綠色表示可執行的檔案,黃色表示裝置檔案,紅色表示壓縮檔案,天藍色表示軟連結檔案。 |
-i | 顯示檔案和目錄的inode号 |
-t | 以時間排序,最新的檔案會排在上面 |
-r | 表示反向排序、倒序輸出 |
用ls -l指令檢視某一個目錄會得到一個7個字段的清單
第1字段:檔案屬性字
第一個字元代表檔案的類型:
“-"表示該檔案是一個普通檔案
“d”表示該檔案是一個目錄
"l"表示該檔案是一個軟連結檔案。類似于windows下的快捷方式
第1字元的後面9個字母表示該檔案或目錄的權限位:
r表示讀(檢視、下載下傳)、w表示寫(添加、更改、删除、上傳)、x表示執行(運作檔案、切換目錄)
其中前三個表示檔案擁有者(屬主)的權限,中間三個表示檔案所屬組擁有的權限,最後三個表示其他使用者擁有的權限。
第2字段:檔案硬連結數
如果一個檔案不是目錄,此時這一字段表示這個檔案所具有的硬連結數
如果是一個目錄,則第2字段表示該目錄所含子目錄的個數。
如果建立一個空目錄,這個目錄的第二字段就是2,表示該目錄下有兩個子目錄。
第3字段:檔案\目錄擁有者
第4字段:檔案\目錄擁有者所在的組
第5字段:檔案所占用的空間(預設以位元組為機關)
如果是一個目錄,則表示該目錄的大小,而不是目錄以及它下面的檔案的總大小。
Linux系統中一切皆檔案,是以目錄也是一種檔案。
第6字段:檔案\目錄最近通路或修改時間
第7字段:檔案名
如果是一個符号連結(軟連結檔案),那麼會有一個“->” 箭頭符号,後面根一個它指向的檔案名
結合通配符
“?” | 代表任意一個字元,有且一個字元 |
“*” | 代表任意數個字元,可以是0個或者1個或者多個 |
“[]” | 表示可以比對字元組中的任意一個字元[abc]、[a-f] |
設定别名-alias
通過别名機制簡化常用的、比較長的指令
alias 指令别名=‘指令’ (“=”兩邊不能有空格)
取消别名
unalias 指令别名
統計目錄及檔案空間占用情況-du
統計指定目錄(或檔案)所占用磁盤空間的大小
du [選項] [檔案或目錄...]
統計磁盤空間占用時包括所有的檔案,而不僅僅隻統計目錄 | |
以更人性化的方式(預設以KB計數,但不顯示機關)顯示出統計結果 | |
-s | 隻統計所占用空間總的大小,而不是統計每個子目錄、檔案的大小 |
--max-depth=n | 統計所有小于等于第n層的目錄的總大小 |
将a,h這兩個選項結合在一起使用,可以統計出檔案的大小并且以更直覺的數值大小來展現出來
注意選項-a和-s不可同時使用
建立目錄和檔案(mkdir、touch、ln)
建立新目錄-mkdir
建立新的空目錄
mkdir [選項] 目錄位置及名稱
-p: 一次性建立嵌套的多層目錄
建立空檔案-touch指令
更新檔案的時間标記 (此作用較少使用)
經常用于建立多個新的空檔案
touch 檔案...
建立檔案使用touch後面跟上檔案名即可
建立連結檔案-ln
為檔案或目錄建立連結檔案,類似于Windows系統的快捷方式
連結檔案類型
·軟連結(又稱為符号連結) [複制原檔案的路徑,而不是源檔案的資料]
·硬連結 [共享源檔案的資料]
ln [-s] 源檔案或目錄...連結檔案或目标位置 [-s]建立軟連結 (軟連結一定要建立在絕對路徑下)
檔案類型 | 軟連結檔案 | 硬連結檔案 |
---|---|---|
删除源檔案後 | 失效 | 仍然可用(檔案占用空間與源檔案相同) |
适用範圍 | 适用于檔案或目錄 | 僅适用于檔案 |
儲存位置 | 與源檔案可在不同的檔案系統中 | 必須與源檔案在同一個檔案系統(即同一個分區)中 |
與源檔案的關系 | 相當于快捷方式 | 相當于給檔案起個别名 |
inode号碼 | inode号碼不同 | inode号碼相同 |
當一個檔案擁有多個硬連結時,對檔案内容修改,會影響到所有檔案名;但是删除一個檔案名,不影響别的檔案名的通路。删除一個檔案名,隻會使得"硬連結數"減1。
需要注意的是不能對目錄做硬連結。在日常工作中幾乎不會建立檔案的硬連結。
複制、删除、移動目錄和檔案(cp、rm、mv)
複制檔案或目錄-cp
将需要複制的檔案或目錄(源)重建一份,并儲存為新的檔案或目錄
cp [選項]...源檔案或目錄...目标檔案或目錄...
-f | 覆寫目标同名檔案或目錄時不進行提醒,而直接強制複制。 |
覆寫目标同名檔案或目錄時提醒使用者确認。 | |
-p | 複制時保持源檔案的權限、屬主及時間标記等屬性不變。 |
複制目錄時必須使用此選項,表示遞歸複制所有檔案及子目錄。 | |
不光可以複制目錄,還可以保留源檔案。 |
注:複制多個檔案或目錄時,目标位置必須是目錄,且目标目錄必須已存在
從opt這個目錄複制一個1.txt這個檔案到home目錄
在複制的過程中直接可以對複制的檔案進行重新命名
在複制1.txt這個檔案到var目錄的時候,直接對這個檔案進行了重新命名為789.txt
-r: 複制目錄時必須使用此選項,表示遞歸複制所有檔案及子目錄。
-f、-i,在mnt目錄裡,複制446.txt檔案到opt目錄,有兩種方法,一是以根目錄為起點,來進行複制,二是用反斜杠這個鍵位來操作
備份檔案:複制指令(cp),後面跟上檔案名,再輸入檔案名尾綴加上.bak,也可以利用{ }進行多個檔案進行備份的操作。
删除檔案或目錄-rm
删除指定的檔案或目錄
rm [選項] 要删除的檔案或目錄...
删除檔案或目錄時不進行提醒,而直接強制删除。 | |
删除檔案或目錄時提醒使用者确認。 (y表示删除,n表示不删除) | |
删除目錄時必須使用此選項,表示遞歸删除整個目錄樹(應謹慎使用)。 |
注:不要直接删除系統中已有的目錄或配置檔案,以避免出現意外故障。
建議删除時最好使用-i這個選項,給自己一個緩沖考慮把時間,以免删除錯誤,造成不必要麻煩。
删除目錄下檔案時建議最好先切換到目錄下再執行rm-rf指令
rm -rf ./* 删除目前目錄下的所有檔案(慎用!慎用!慎用!)
移動檔案或目錄-mv
将指定的檔案或目錄轉移位置
如果目标位置與源位置相同,則相當于執行重命名操作
mv [選項] .... 源檔案或目錄 ... 目标檔案或目錄
轉移過程中還可以對檔案進行重命名操作
mv指令隻能對單個檔案重命名,可使用rename指令批量修改檔案名
rename 舊字元 新字元 目标檔案
查找目錄和檔案(which、find)
查找指令檔案存放目錄-which
搜尋範圍由環境變量PATH決定(echo $PATH)
which 指令|程式名 //預設當找到第一個目标後不再繼續查找
或
which -a 指令|程式名 //在所有搜尋路徑中查找
查找java指令,且查詢了它的版本号,并使用環境變量來進行搜尋
将java這個檔案從usr/bin/複制到usr/local/bin/裡面,再查找java的時候它們存放目錄已經發生了改變,使用-a這個選項,将java所在的所有目錄顯示出來。
使用which查找内部指令時,将找不到對應的程式
查找檔案或目錄-find
采用遞歸方式,根據目标的名稱、類型、大小等不同屬性進行精細查找
find [查找範圍](查找檔案或子目錄的目錄位置) [查找條件表達式](查找條件類型)
常用查找條件類型
查 找類型 | 關鍵字 | |
---|---|---|
按名稱查找 | -name | 根據目标檔案的名稱進行查找,允許使用“*”及"?"通配符 |
按檔案大小查找 | -size | 根據目标檔案的大小進行查找 一般使用"+”、”-“号設定超過或小于指定的大小作為查找條件 常用的容量機關包括kB (注意k是小寫)、MB、GB |
按檔案屬主查找 | -user | 根據檔案是否屬于目标使用者進行查找 |
按檔案類型查找 | -type | 根據檔案的類型進行查找 檔案類型包括普通檔案(f) 、目錄(d)、塊裝置檔案(b)、字元裝置檔案 (c) 等 塊裝置檔案(b) :成塊讀取資料的裝置(硬碟,記憶體,光驅) 字元裝置檔案(C) :按單個字元讀取資料的裝置(鍵盤,滑鼠) |
使用find指令實作多個查找條件
各表達式之間使用邏輯運算符
"-a”表示而且(and)
”-o”表示或者(or)
使用-size以及-name兩個選項進行查找,在boot目錄裡以vm為名,大小為1024k來查詢符合這個條件的檔案
以檔案的類型進行查找,以grup這個檔案名進行全部查找
find之exec用法
-exec參數後面跟的是Linux指令,它是以分号“;" 為結束标志,由于各個系統中分号會有不同的意義,是以在分号前面加上反斜杠轉義符“\”。
{}代表前面find查找出來的檔案名。
find指令比對到了目前目錄下的所有普通檔案,并在-exec選項中使用ls -|指令将它們列出
find ./ -type f-exec Is-I{} \;
指令執行的優先級
第一優先級:指定路徑的指令。絕對路徑 /usr/bin/ls 或者相對路徑 cd /usr/bin ./1s
第二優先級:别名指定的指令 alias myls= '/usr/bin/ls -alh'
第三優先級:内部指令