1. 程式人生 > 其它 >Linux常用命令整理:檔案目錄管理

Linux常用命令整理:檔案目錄管理

據說,你要對Linux檔案做的事情,98%都記錄在這篇文章裡了。 ls、cd、pwd、mkdir、rm、co、mv、chmod統統都有。

據說,你要對Linux檔案做的事情,98%都記錄在這篇文章裡了。

1.ls命令

最常見的命令,相信剛進入linux命令列介面的時候,都要用這個命令看看當前目錄下都有哪些檔案吧。

  • 名稱:List

  • 含義:列出當前目錄(或者指定目錄)下的檔案或目錄列表,通過不同的引數展示許可權等目錄相關資訊,以及排序規則。

  • 格式:ls [引數]、ls [目錄名] [引數]

  • 引數:

    引數 含義
    -l 除了檔名之外,還將檔案的許可權、所有者、檔案大小等資訊詳細列出來。可以縮寫成我們常用的ll命令
    -a 列出目錄所有檔案,包含以.開始的隱藏檔案
    -A 列出除.及..的其它檔案
    -r 反序排列
    -t 以檔案修改時間排序
    -S 以檔案大小排序
    -h 以易讀大小顯示,與-l一起使用
    x* 列出當前目錄中所有以“x”開頭的目錄

2.cd命令

也是最常見的命令,無需多言。

  • 名稱:Change Directory

  • 含義:切換到指定路徑

  • 格式:cd [目錄名]

  • 例子:

    • 切換到home路徑:cd或者cd ~

    • 切換到指定路徑:cd /bin/(/bin是完整路徑名)

    • 切換到當前路徑下的目錄:cd learncd/(learncd是當前路徑下的目錄名)

    • 切換到上一級目錄:cd ../

3.pwd

一般用於在目錄中迷失方向的時候,需要找找自己在哪

  • 名稱:Print Working Directory
  • 含義:列印當前工作目錄的完整路徑名
  • 格式:pwd

4.mkdir

  • 名稱:Make Directory

  • 含義:建立目錄

  • 格式:mkdir [引數] [目錄]

  • 引數:

    引數 含義
    -p 建立的路徑中間有不存在的路徑,則自動建立其中的父目錄
    -v 建立目錄成功後展示結果文案(感覺比較雞肋)

5.rm

刪除命令很危險,使用rm -rf的時候一定要慎重。畢竟跑路是一件比較麻煩的事情。

  • 名稱:Remove

  • 含義:刪除檔案

  • 格式:rm [引數] [檔案路徑]

  • 引數:

    引數 含義
    -i 刪除前會提示確認是否刪除,一般適用於一次性刪除多個檔案
    -r 遞迴的刪除目錄和目錄下的檔案
    -f 強制刪除,不做任何提示

6.cp

cp是copy,不是炒的那個cp。

  • 名稱:Copy

  • 含義:將原始檔/目錄複製到目標檔案/目錄

  • 格式:cp [引數] [原始檔] [目標目錄]、cp [引數] [原始檔] [目標目錄下檔名](可以將複製後的檔案指定為新的名字)

  • 引數:

    引數 含義
    -i 複製指定的目標檔案有同名檔案,會有提示
    -r 複製目錄及目錄內所有專案
    -l 只是建立連結,不是複製檔案。如果修改原始檔,則開啟的目標連結會看到改動。
  • 例子:

7.mv

  • 名稱:Move

  • 含義:移動檔案/目錄到指定目錄下,並支援重新命名

  • 格式:mv [引數] [原始檔] [目標目錄]

  • 引數:

    引數 含義
    -i 移動到指定的目標檔案有同名檔案,會有提示
    -b 移動到指定的目標檔案有同名檔案,會將已有的同名檔案備份。備份的檔案,在原有檔名後面有~符號。
    -n 移動到指定的目標檔案有同名檔案,則不進行移動

8.chmod

許可權控制命令,還是稍微有些複雜,這裡需要多多科普一下。

  • 名稱:change mode

  • 含義:修改使用者對檔案/目錄的訪問許可權

  • 格式:chmod [引數] [使用者型別] [許可權] [檔案]

    • 其中,使用者型別包括:u-檔案所有者;g-檔案所有者所在的使用者組;o-其他使用者;a-全部使用者
  • 引數:

    引數 含義
    -c 許可權改變時,會有提示
    -R 變更指定目錄及子目錄下的全部檔案

在這裡需要對Linux的檔案許可權做一下介紹。

Linux中的一個使用者,可以屬於多個使用者組。一個使用者組裡可以有多個使用者。所以對於一個檔案來說,Linux將擁有其許可權的使用者,分為了三個級別。分別是:檔案所有者(Owner)、使用者組(Group)、其它使用者(Other Users)。對於每一級別的使用者,可以設定屬於該級別使用者的許可權,通過9個許可權位來設定。

舉個例子,我們用ll命令來檢視檔案資訊,如圖:

其中每一列的含義都標註在圖片上了。

最前面的這一串-rwxrwxrwx,就代表fileA當前的許可權。每一個字元都代表什麼意思呢?

其中第一位的-代表檔案,d代表目錄,l代表連結。2到4位是檔案所有者(Owner)的許可權,5到7位是使用者組(Group)的許可權,8到10位是其它使用者(Other Users)的許可權。r代表read讀許可權,w代表write寫許可權,x代表execute執行許可權,-代表沒有該許可權位的許可權。具體直接看圖:

所以我們就知道了,如果想修改一個檔案的許可權,只需要修改指定使用者級別的對應的許可權位就可以了。

可以使用+增加許可權,使用-刪除許可權,使用=指定許可權。

比如對於剛才的那個檔案fileA:

  • 我想讓其他使用者只擁有讀許可權,可以用命令:chmod o=r fileA
  • 我想刪掉使用者組的寫許可權,可以用命令:chmod g-w fileA
  • 我又想讓其他使用者擁有寫許可權執行許可權,可以用命令:chmod o+wx fileA

那傳說中經常用到的 chmod 777 是啥意思呢?

你可以把許可權的rwx的每一個許可權位對應成二進位制的位。有許可權則為1,無許可權則為0。這樣每一類使用者的三個許可權位就可以轉換成一個二進位制數,同時也可以轉換成八進位制數。

例如:

許可權 二進位制 八進位制
rwx 111 7
r-x 101 5
--x 001 1

因此,我們就可以通過八進位制的數字,來指定檔案的許可權了。

比如對於剛才的那個初始許可權為-rwxrwxrwx的檔案fileA:

  • 我想讓其他使用者只擁有讀許可權,也就是最終許可權為-rwxrwxr--,可以用命令:chmod 774 fileA
  • 我想刪掉使用者組的寫許可權,也就是最終許可權為-rwxr-xr--,可以用命令:chmod 754 fileA
  • 我又想讓其他使用者擁有寫許可權執行許可權,也就是最終許可權為-rwxr-xrw-,可以用命令:chmod 756 fileA

好啦,以上就是絕大部分你在使用Linux時,涉及到的命令了。如果有其他的用法和補充,歡迎在評論區裡交流。後續還會有其他型別的命令整理,可以持續關注哈。