Linux常用命令整理:文件目錄管理


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

文件目錄管理

1.ls命令

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

  • 名稱:List

  • 含義:列出當前目錄(或者指定目錄)下的文件或目錄列表,通過不同的參數展示權限等目錄相關信息,以及排序規則。

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

  • 參數:

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

2.cd命令

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

  • 名稱:Change Directory

  • 含義:切換到指定路徑

  • 格式:cd [目錄名]

  • 例子:

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

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

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

      image-20210829150536546

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

3.pwd

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

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

4.mkdir

  • 名稱:Make Directory

  • 含義:創建目錄

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

  • 參數:

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

5.rm

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

  • 名稱:Remove

  • 含義:刪除文件

  • 格式:rm [參數] [文件路徑]

  • 參數:

    參數 含義
    -i 刪除前會提示確認是否刪除,一般適用於一次性刪除多個文件image-20210829201809971
    -r 遞歸的刪除目錄和目錄下的文件
    -f 強制刪除,不做任何提示

6.cp

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

  • 名稱:Copy

  • 含義:將源文件/目錄復制到目標文件/目錄

  • 格式:cp [參數] [源文件] [目標目錄]、cp [參數] [源文件] [目標目錄下文件名](可以將復制后的文件指定為新的名字)

  • 參數:

    參數 含義
    -i 復制指定的目標文件有同名文件,會有提示image-20210829205448879
    -r 復制目錄及目錄內所有項目
    -l 只是創建鏈接,不是復制文件。如果修改源文件,則打開的目標鏈接會看到改動。
  • 例子:

image-20210829202611358

7.mv

  • 名稱:Move

  • 含義:移動文件/目錄到指定目錄下,並支持重命名

  • 格式:mv [參數] [源文件] [目標目錄]

  • 參數:

    參數 含義
    -i 移動到指定的目標文件有同名文件,會有提示
    -b 移動到指定的目標文件有同名文件,會將已有的同名文件備份。備份的文件,在原有文件名后面有~符號。image-20210830001249147
    -n 移動到指定的目標文件有同名文件,則不進行移動

8.chmod

權限控制命令,還是稍微有些復雜,這里需要多多科普一下。

  • 名稱:change mode

  • 含義:修改用戶對文件/目錄的訪問權限

  • 格式:chmod [參數] [用戶類型] [權限] [文件]

    • 其中,用戶類型包括:u-文件所有者;g-文件所有者所在的用戶組;o-其他用戶;a-全部用戶
  • 參數:

    參數 含義
    -c 權限改變時,會有提示image-20210904211501195
    -R 變更指定目錄及子目錄下的全部文件

在這里需要對Linux的文件權限做一下介紹。

Linux中的一個用戶,可以屬於多個用戶組。一個用戶組里可以有多個用戶。所以對於一個文件來說,Linux將擁有其權限的用戶,分為了三個級別。分別是:文件所有者(Owner)、用戶組(Group)、其它用戶(Other Users)。對於每一級別的用戶,可以設置屬於該級別用戶的權限,通過9個權限位來設置。

舉個例子,我們用ll命令來查看文件信息,如圖:

image-20210904205317737

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

最前面的這一串-rwxrwxrwx,就代表fileA當前的權限。每一個字符都代表什么意思呢?

其中第一位的-代表文件,d代表目錄,l代表鏈接。2到4位是文件所有者(Owner)的權限,5到7位是用戶組(Group)的權限,8到10位是其它用戶(Other Users)的權限。r代表read讀權限,w代表write寫權限,x代表execute運行權限,-代表沒有該權限位的權限。具體直接看圖:

image-20210904153648412

所以我們就知道了,如果想修改一個文件的權限,只需要修改指定用戶級別的對應的權限位就可以了。

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

比如對於剛才的那個文件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時,涉及到的命令了。如果有其他的用法和補充,歡迎在評論區里交流。后續還會有其他類型的命令整理,可以持續關注哈。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM