linux目錄和檔案操作命令
說明:此Linux文件是觀看黑馬程式設計師的視訊筆記,在B站可以觀看,此筆記僅用來學習使用,如有侵權請聯絡博主
目錄
01. 檢視目錄內容
1.1 終端實用技巧
1> 自動補全
- 在敲出
檔案
/目錄
/命令
的前幾個字母之後,按下tab
鍵- 如果輸入的沒有歧義,系統會自動補全
- 如果還存在其他
檔案
/目錄
/命令
,再按一下tab
鍵,系統會提示可能存在的命令
2> 曾經使用過的命令
- 按
上
下
游標鍵可以在曾經使用過的命令之間來回切換 - 如果想要退出選擇,並且不想執行當前選中的命令,可以按
ctrl + c
1.2 ls
命令說明
ls
是英文單詞 list 的簡寫,其功能為列出目錄的內容,是使用者最常用的命令之一,類似於 DOS 下的dir
命令
Linux 下檔案和目錄的特點
- Linux 檔案 或者 目錄 名稱最長可以有
256
個字元 - 以
.
開頭的檔案為隱藏檔案,需要用 -a 引數才能顯示 - . 代表當前目錄
- .. 代表上一級目錄
ls常用引數選項:
引數 | 含義 |
---|---|
-a | 顯示指定目錄下所有子目錄與檔案,包括隱藏檔案 |
-l | 以列表方式顯示檔案的詳細資訊 |
-h |
配合 -l 以人性化的方式顯示檔案大小 |
檢視當前檔案路徑:pwd
pwd | print wrok directory | 檢視當前所在資料夾路徑 |
實際操作命令如下:
1.3 萬用字元的使用
萬用字元 | 含義 |
---|---|
* | 代表任意個數個字元 |
? | 代表任意一個字元,至少 1 個 |
[] | 表示可以匹配字元組中的任一一個 |
[abc] | 匹配 a、b、c 中的任意一個 |
[a-f] | 匹配從 a 到 f 範圍內的的任意一個字元 |
02. 切換目錄
2.1 cd
cd
是英文單詞 change directory
注意:Linux 所有的 目錄 和 檔名 都是大小寫敏感的
命令 | 含義 |
---|---|
cd | 切換到當前使用者的主目錄(/home/使用者目錄) |
cd ~ | 切換到當前使用者的主目錄(/home/使用者目錄) |
cd . | 保持在當前目錄不變("."表示當前目錄) |
cd .. | 切換到上級目錄(".."表示當前目錄) |
cd - | 可以在最近兩次工作目錄之間來回切換 |
2.2 相對路徑和絕對路徑
- 相對路徑 在輸入路徑時,最前面不是 / 或者 ~,表示相對 當前目錄 所在的目錄位置
- 絕對路徑 在輸入路徑時,最前面是 / 或者 ~,表示從 根目錄/家目錄 開始的具體目錄位置
03. 建立和刪除操作
3.1 touch
- 建立檔案或修改檔案時間
- 如果檔案 不存在,可以建立一個空白檔案
- 如果檔案 已經存在,可以修改檔案的末次修改日期
3.2 mkdir
- 建立一個新的目錄
選項 | 含義 |
---|---|
-p | 可以遞迴建立目錄 |
新建目錄的名稱 不能與當前目錄中 已有的目錄或檔案 同名
3.3 rm
- 刪除檔案或目錄
使用
rm
命令要小心,因為檔案刪除後不能恢復
選項 | 含義 |
---|---|
-f | 強制刪除,忽略不存在的檔案,無需提示(如果檔案不存在也不會提示錯誤資訊) |
-r | 遞迴地刪除目錄下的內容,刪除資料夾 時必須加此引數 |
04. 拷貝和移動檔案
序號 | 命令 | 對應英文 | 作用 |
---|---|---|---|
01 | tree [目錄名] | tree | 以樹狀圖列出檔案目錄結構 |
02 | cp 原始檔 目標檔案 | copy | 複製檔案或者目錄 |
03 | mv 原始檔 目標檔案 | move | 移動檔案或者目錄/檔案或者目錄重新命名 |
4.1 tree
tree
命令可以以樹狀圖列出檔案目錄結構
選項 | 含義 |
---|---|
-d | 只顯示目錄 |
4.2 cp
cp
命令的功能是將給出的 檔案 或 目錄 複製到另一個 檔案 或 目錄 中,相當於 DOS 下的copy
命令- cp 原始檔 目標檔案
選項 | 含義 |
---|---|
-i | 覆蓋檔案前提示 |
-r | 若給出的原始檔是目錄檔案,則 cp 將遞迴複製該目錄下的所有子目錄和檔案,目標檔案必須為一個目錄名 |
4.3 mv
mv
命令可以用來 移動 檔案 或 目錄,也可以給 檔案或目錄重新命名- mv 原始檔 目標檔案
選項 | 含義 |
---|---|
-i | 覆蓋檔案前提示 |
05. 檢視檔案內容
序號 | 命令 | 對應英文 | 作用 |
---|---|---|---|
01 | cat 檔名 | concatenate | 檢視檔案內容、建立檔案、檔案合併、追加檔案內容等功能 |
02 | more 檔名 | more | 分屏顯示檔案內容 |
03 | grep 搜尋文字 檔名 | grep | 搜尋文字檔案內容 |
5.1 cat
cat
命令可以用來 檢視檔案內容、建立檔案、檔案合併、追加檔案內容 等功能cat
會一次顯示所有的內容,適合 檢視內容較少 的文字檔案
選項 | 含義 |
---|---|
-b | 對非空輸出行編號 |
-n | 對輸出的所有行編號 |
5.2 more
more
命令可以用於分屏顯示檔案內容,每次只顯示一頁內容- 適合於 檢視內容較多的文字檔案
使用 more
的操作鍵:
操作鍵 | 功能 |
---|---|
空格鍵 | 顯示手冊頁的下一屏 |
Enter 鍵 | 一次滾動手冊頁的一行 |
b | 回滾一屏 |
f | 前滾一屏 |
q | 退出 |
/word | 搜尋 word 字串 |
5.3 grep
- Linux 系統中
grep
命令是一種強大的文字搜尋工具 grep
允許對文字檔案進行 模式查詢,所謂模式查詢,又被稱為正則表示式- grep 搜尋內容 所在文件
選項 | 含義 |
---|---|
-n | 顯示匹配行及行號 |
-v | 顯示不包含匹配文字的所有行(相當於求反) |
-i | 忽略大小寫 |
- 常用的兩種模式查詢
引數 | 含義 |
---|---|
^a | 行首,搜尋以 a 開頭的行 |
ke$ | 行尾,搜尋以 ke 結束的行 |
06. 其他
6.1 echo 文字內容
echo
會在終端中顯示引數指定的文字,通常會和 重定向 聯合使用
6.2 重定向 >
和 >>
- Linux 允許將命令執行結果 重定向到一個 檔案
- 將本應顯示在終端上的內容 輸出/追加 到指定檔案中
其中
>
表示輸出,會覆蓋檔案原有的內容>>
表示追加,會將內容追加到已有檔案的末尾
6.3 管道 |
- Linux 允許將 一個命令的輸出 可以通過管道 做為 另一個命令的輸入
- 可以理解現實生活中的管子,管子的一頭塞東西進去,另一頭取出來,這裡
|
的左右分為兩端,左端塞東西(寫),右端取東西(讀)
常用的管道命令有:
more
:分屏顯示內容grep
:在命令執行結果的基礎上查詢指定的文字
7.連結檔案:ln
Linux連結檔案類似於Windows下的快捷方式。
連結檔案分為軟連結和硬連結。
軟連結:軟連結不佔用磁碟空間,原始檔刪除則軟連結失效。
硬連結:硬連結只能連結普通檔案,不能連結目錄。
使用格式:
ln 原始檔 連結檔案
ln -s 原始檔 連結檔案
如果沒有-s
選項代表建立一個硬連結檔案,兩個檔案佔用相同大小的硬碟空間,即使刪除了原始檔,連結檔案還是存在,所以-s選項是更常見的形式。
注意:如果軟連結檔案和原始檔不在同一個目錄,原始檔要使用絕對路徑,不能使用相對路徑。
8 查詢檔案:find
find命令功能非常強大,通常用來在特定的目錄下搜尋符合條件的檔案,也可以用來搜尋特定使用者屬主的檔案。
常用用法:
命令 | 含義 |
---|---|
find ./ -name test.sh | 查詢當前目錄下所有名為test.sh的檔案 |
find ./ -name '*.sh' | 查詢當前目錄下所有後綴為.sh的檔案 |
find ./ -name "[A-Z]*" | 查詢當前目錄下所有以大寫字母開頭的檔案 |
find /tmp -size 2M | 查詢在/tmp 目錄下等於2M的檔案 |
find /tmp -size +2M | 查詢在/tmp 目錄下大於2M的檔案 |
find /tmp -size -2M | 查詢在/tmp 目錄下小於2M的檔案 |
find ./ -size +4k -size -5M | 查詢當前目錄下大於4k,小於5M的檔案 |
find ./ -perm 0777 | 查詢當前目錄下許可權為 777 的檔案或目錄 |
9.檔案歸檔
計算機中的資料經常需要備份,tar是Unix/Linux中最常用的備份工具,此命令可以把一系列檔案歸檔到一個大檔案中(就是window下將一些比較多的檔案放到一個資料夾下),也可以把檔案檔案解開以恢復資料。
tar使用格式 tar [引數] 打包檔名 檔案
tar命令很特殊,其引數前面可以使用“-”,也可以不使用。
常用引數:
引數 | 含義 |
---|---|
-c | 生成檔案檔案,建立打包檔案 |
-v | 列出歸檔解檔的詳細過程,顯示進度 |
-f | 指定檔案檔名稱,f後面一定是.tar檔案,所以必須放選項最後 |
-t | 列出檔案中包含的檔案 |
-x | 解開檔案檔案 |
注意:除了f需要放在引數的最後,其它引數的順序任意。
10 檔案壓縮解壓
10.1 檔案壓縮解壓:gzip
tar與gzip命令結合使用實現檔案打包、壓縮。 tar只負責打包檔案,但不壓縮,用gzip壓縮tar打包後的檔案(檔案必須打包後才能使用gzip命令),其副檔名一般用xxxx.tar.gz。gzip一般配合tar操作實現打包壓縮,tar打包,gzip壓縮。
gzip使用格式如下:
gzip [選項] 被壓縮檔案
常用選項:
選項 | 含義 |
---|---|
-d | 解壓 |
-r | 壓縮所有子目錄 |
tar這個命令並沒有壓縮的功能,它只是一個打包的命令,但是在tar命令中增加一個選項(-z)可以呼叫gzip實現了一個壓縮的功能,實行一個先打包後壓縮的過程。
壓縮用法:tar cvzf 壓縮包包名 檔案1 檔案2 ...
-z :指定壓縮包的格式為:file.tar.gz
解壓用法: tar zxvf 壓縮包包名
-z:指定壓縮包的格式為:file.tar.gz
10.2 檔案壓縮解壓:bzip2
tar與bzip2命令結合使用實現檔案打包、壓縮(用法和gzip一樣)。
tar只負責打包檔案,但不壓縮,用bzip2壓縮tar打包後的檔案,其副檔名一般用xxxx.tar.gz2。
在tar命令中增加一個選項(-j)可以呼叫bzip2實現了一個壓縮的功能,實行一個先打包後壓縮的過程。
壓縮用法:tar -jcvf 壓縮包包名 檔案...(tar jcvf bk.tar.bz2 *.c)
解壓用法:tar -jxvf 壓縮包包名 (tar jxvf bk.tar.bz2)
10.3 檔案壓縮解壓:zip、unzip
通過zip壓縮檔案的目標檔案不需要指定副檔名,預設副檔名為zip。
壓縮檔案:zip [-r] 目標檔案(沒有副檔名) 原始檔
解壓檔案:unzip -d 解壓後目錄檔案 壓縮檔案