Linux:5、Linux命令--文件管理

181217補充:查看隱藏文件——ls -d .*

文件管理系列命令

1、查看文件信息:ls

ls是英文單詞list的簡寫,其功能為列出目錄的內容,是用戶最常用的命令之一,它類似于DOS下的dir命令。

  • Linux文件或者目錄名稱最長可以有265個字符,
  • “.”代表當前目錄,“..”代表上一級目錄,
  • 以“.”開頭的文件為隱藏文件,需要用 -a 參數才能顯示。

ls常用參數:

參數 含義
-a 顯示指定目錄下所有子目錄與文件,包括隱藏文件
-l 以列表方式顯示文件的詳細信息
-h 配合 -l 以人性化的方式顯示文件大小
-R 遞歸查看某個目錄中內容
ls使用示例

圖中列出的信息含義如下圖所示:


各字段的含義

(1)、通配符的使用

與DOS下的文件操作類似,在Unix/Linux系統中,也同樣允許使用特殊字符來同時引用多個文件名,這些特殊字符被稱為通配符。

通配符 含義
* 文件代表文件名中所有字符。
? 代表文件名中任意一個字符。
[ ] [”和“]”將字符組括起來,表示可以匹配字符組中的任意一個?!?”用于表示字符范圍。[abc] 匹配a、b、c中的任意一個。[a-f] 匹配從a到f范圍內的的任意一個字符
\ 如果要使通配符作為普通字符使用,可以在其前面加上轉義字符。“?”和“*”處于方括號內時不用使用轉義字符就失去通配符的作用

通配符使用示例

命令 含義
ls te* 查找以te開頭的文件`
ls *html 查找結尾為html的文件`
ls ?.c 只找第一個字符任意,后綴為.c的文件
ls a.? 只找只有3個字符,前2字符為a.,最后一個字符任意的文件`
ls [a-f]* 找到從a到f范圍內的的任意一個字符開頭的文件
ls a-f 查找文件名為a-f的文件,當“-”處于方括號之外失去通配符的作用
ls *a 查找文件名為*a的文件

(2)、其他用法

  • 查看文件和權限:ls -la或ll -a
  • 顯示隱藏文件:ls -d .*

2、輸出重定向命令:>

Linux允許將命令執行結果重定向到一個文件,將本應顯示在終端上的內容保存到指定文件中。

如:ls > test.txt (test.txt 如果不存在,則創建;存在則覆蓋其內容

輸出重定向的使用示例

注意:

  • >輸出重定向會覆蓋原來的內容,
  • >>輸出重定向則會追加到文件的尾部。

3、分屏顯示:more

查看內容時,如果信息過長無法在一屏上顯示,會出現快速滾屏,使得用戶無法看清文件的內容,此時可以使用more命令。

使用more命令后,每次只顯示一頁,按下空格鍵可以顯示下一頁,按下q鍵退出顯示,按下h鍵可以獲取幫助。

分屏顯示--more的使用

4、管道:|

管道:一個命令的輸出可以通過管道做為另一個命令的輸入。

管道我們可以理解現實生活中的管子,管子的一頭塞東西進去,另一頭取出來,這里“ | ”的左右分為兩端,左端塞東西(寫),右端取東西(讀)。

管道 | 的使用

5、清屏:clear

clear作用為清除終端上的顯示(類似于DOS的cls清屏功能),也可使用快捷鍵:Ctrl + L

clear清屏的使用

注意:
在上面的動圖中,我們執行了 clear 命令之后,滾動屏幕之后依舊能看到之前執行的命令及其結果。
也就是說,clear 命令并不是把之前的命令和執行結果直接刪除,而是讓之前的命令滾動到不可見的范圍了,向下滾動之后依舊可見

6、切換工作目錄: cd

在使用Unix/Linux的時候,經常需要更換工作目錄。cd命令可以幫助用戶切換工作目錄。

  • Linux所有的目錄和文件名嚴格區分大小寫
  • cd后面可跟絕對路徑,也可以跟相對路徑。
  • cd 后面如果省略目錄,則默認切換到當前用戶的主目錄。
命令 含義
cd 切換到當前用戶的主目錄(/home/用戶目錄),用戶登陸的時候,默認的目錄就是用戶的主目錄。
cd ~ 切換到當前用戶的主目錄(/home/用戶目錄)
cd . 切換到當前目錄
cd .. 切換到上級目錄
cd - 可進入上次所在的目錄
cd 命令使用示例

注意:
如果路徑是從根路徑開始的,則路徑的前面需要加上 “ / ”,如 “ /mnt ”,通常進入某個目錄里的文件夾,前面不用加 “ / ”。


進入絕對路徑或相對路徑

7、顯示當前路徑:pwd

使用pwd命令可以顯示當前的工作目錄,該命令很簡單,直接輸入pwd即可,后面不帶參數。

查看當前所處路徑

8、創建目錄:mkdir

通過mkdir命令可以創建一個新的目錄。參數-p可遞歸創建目錄。

注意

  • 新建目錄的名稱不能與當前目錄中已有的目錄或文件同名,
  • 并且目錄創建者必須對當前目錄具有寫權限。
創建目錄--mkdir

9、刪除目錄:rmdir

可使用rmdir命令刪除一個目錄。

刪除時 必須離開目錄,并且目錄必須為空,否則提示刪除失敗。

如何刪除非空目錄?參考下面的 rm

10、刪除文件:rm

可通過rm刪除文件或目錄。使用rm命令要小心,因為文件刪除后不能恢復。為了防止文件誤刪,可以在rm后使用-i參數以逐個確認要刪除的文件。

常用參數及含義如下表所示:

參數 含義
-i 以進行交互式方式執行
-f 強制刪除,忽略不存在的文件,無需提示
-r 遞歸地刪除目錄下的內容,刪除文件夾時必須加此參數
image.png

11、建立鏈接文件:ln

Linux鏈接文件類似于Windows下的快捷方式。

(1)、鏈接文件分類及其特點:

鏈接類型 特點
軟鏈接 軟鏈接不占用磁盤空間,源文件刪除則軟鏈接失效。(類似于windows下的快捷方式)
硬鏈接 硬鏈接只能鏈接普通文件,不能鏈接目錄。(類似于將源文件拷貝了一份)

(2)、創建鏈接文件

命令 含義
ln 源文件 鏈接文件 創建硬鏈接
ln -s 源文件 鏈接文件 創建軟連接

如果沒有-s
選項代表建立一個硬鏈接文件,兩個文件占用相同大小的硬盤空間,即使刪除了源文件,鏈接文件還是存在,所以-s選項是更常見的形式。

注意:
如果軟鏈接文件和源文件不在同一個目錄,源文件要使用絕對路徑,不能使用相對路徑。

創建鏈接文件

在上圖中我們可以看到,通過ls查看文件時,軟連接文件第一位是 l, 基本不占用磁盤空間,同時會指明該軟連接所指向的源文件 ; 而硬鏈接文件第一位則用 - 表示,體積與源文件大小一致

12、查看或者合并文件內容:cat

cat的使用--查看或者合并查看文件內容

13、文本內搜索:grep

Linux系統中grep命令是一種強大的 文本內搜索工具,grep允許對文本文件進行模式查找。如果找到匹配模式, grep打印包含模式的所有行。

(1)、grep命令格式

grep 的命令格式為:

grep [-選項] ‘被搜索的內容串’ 文件名

注意:
在grep命令中輸入被搜索的字符串時,最好用單引號或雙引號括起來。
例如:grep‘a ’1.txt。

(2)、grep常用選項說明:

選項 含義
-v 顯示不包含匹配文本的所有行(相當于求反)
-n 顯示匹配行及行號
-i 忽略大小寫

(3)、grep搜索內容時使用正則表達式

grep搜索內容串可以是正則表達式。

正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。

grep常用正則表達式:

參數 含義
^a 行首,搜尋以 a 開頭的行:grep -n '^a' 1.txt
b$ 行尾,搜尋以 b結束的行:grep -n 'b$' 1.txt
[Ss]igna[Ll] 匹配 [ ] 里中一系列字符中的一個;搜尋匹配單詞signal、signaL、Signal、SignaL的行:grep -n '[Ss]igna[Ll]' 1.txt
. (點) 匹配單個非換行符的字符;匹配 e 和 e 之間有任意單個字符的情況,如匹配 eee,eae,eve等,但是不匹配 ee(無字符),eaae(多個字符) : grep -n 'e.e' 1.txt
grep搜索范例

14、查找文件: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 的文件或目錄

15、拷貝文件:cp

cp命令的功能是 將給出的文件或目錄復制到另一個文件或目錄中,相當于DOS下的copy命令。

常用選項說明:

選項 含義
-a 該選項通常在復制目錄時使用,它保留鏈接、文件屬性,并遞歸地復制目錄,簡單而言,保持文件原有屬性。
-f 已經存在的目標文件而不提示
-i 交互式復制,在覆蓋目標文件之前將給出提示要求用戶確認
-r 若給出的源文件是目錄文件,則cp將遞歸復制該目錄下的所有子目錄和文件,目標文件必須為一個目錄名。
-v 顯示拷貝進度

如:cp vim_configure/ code/ -ivr 把文件夾 vim_configure 拷貝到 code 目錄里。

cp示例代碼--拷貝目錄
cp示例代碼--拷貝文件

16、移動文件:mv

用戶可以使用mv命令來 移動文件或目錄,也可以給文件或目錄重命名。

常用選項說明:

選項 含義
-f 禁止交互式操作,如有覆蓋也不會給出提示
-i 確認交互方式操作,如果mv操作將導致對已存在的目標文件的覆蓋,系統會詢問是否重寫,要求用戶回答以避免誤覆蓋文件
-v 顯示移動進度
mv使用示例1

17、歸檔/打包管理:tar

計算機中的數據經常需要備份,tar是Unix/Linux中最常用的備份工具,
此命令可以把一系列文件歸檔到一個大文件中,也可以把檔案文件解開以恢復數據。

(1)、tar的命令格式

tar [參數] 打包文件名 文件

注意:

  • tar命令很特殊,其參數前面可以使用“-”,也可以不使用。
  • 打包文件名必須以 .tar 結尾

(2)、tar命令的常用參數

常用參數:

參數 含義
-c 生成檔案文件,創建打包文件
-v 列出歸檔解檔的詳細過程,顯示進度
-f 指定檔案文件名稱,f后面一定是.tar文件,所以必須放選項最后
-t 列出檔案中包含的文件
-x 解開檔案文件

注意:除了f需要放在參數的最后,其它參數的順序任意。

tar打包與解包示例

18、文件壓縮解壓:gzip

tar與gzip命令結合使用實現文件打包、壓縮。

tar只負責打包文件,但不壓縮。
用gzip壓縮tar打包后的文件,其擴展名一般為 xxxx.tar.gz。

(1)、gzip使用格式如下:

gzip [選項] 被壓縮文件

(2)、gzip常用選項及其含義

常用選項:

選項 含義
-d 解壓
-r 壓縮所有子目錄
gzip壓縮和解壓縮

(3)、tar調用 -z 參數實現壓縮與解壓縮

tar這個命令并沒有壓縮的功能,它只是一個打包的命令,但是在tar命令中增加一個選項(-z)可以調用gzip實現壓縮或解壓縮的功能。

-z :指定壓縮包的格式為:xxxx.tar.gz

1)、壓縮用法:

tar cvzf 壓縮包包名 文件1 文件2 ...

tar 調用 -z 參數實現壓縮
2)、查看壓縮包內容

tar tvf 壓縮包名

使用 tar tvf 查看壓縮包內容
3)、解壓用法

tar zxvf 壓縮包包名

tar xvf 壓縮包名

tar 調用 -z 參數實現解壓縮
tar未增加 -z 直接實現解壓縮

4)、tar 調用 -C 參數實現解壓到指定目錄

解壓到指定目錄:-C (大寫字母“C”)

tar xvf 壓縮包名 -C 指定目錄

解壓到指定目錄

19、文件壓縮解壓:bzip2

tar與bzip2命令結合使用實現文件打包、壓縮(用法和gzip一樣)。

tar只負責打包文件,但不壓縮,
用bzip2壓縮tar打包后的文件,其擴展名一般用 xxxx.tar.bz2。

在tar命令中增加一個選項(-j)可以調用bzip2實現了一個壓縮或解壓縮的功能。

  • 壓縮用法:
    tar jcvf 壓縮包包名 文件...
    如:tar jcvf bk.tar.bz2 *.c
  • 解壓用法:
    tar jxvf 壓縮包包名
    如:tar jxvf bk.tar.bz2

20、文件壓縮解壓:zip、unzip

通過zip壓縮文件的目標文件 不需要指定擴展名,默認擴展名為zip。

  • 壓縮文件:
    zip [-r] 目標文件(沒有擴展名) 源文件
  • 解壓文件:
    unzip -d 解壓到的目錄 壓縮文件
zip 與 unzip的使用

21、查看命令位置:which

查看指定命令對應的可執行程序在本地的位置


which查看命令所在位置
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容