Linux:目錄組織結構、絕對路徑與相對路徑、目錄相關命令

2020-08-11 12:20:49

Linux目錄組織結構

在Linux下面 下麪,所有的檔案與目錄都是由根目錄開始的,根目錄是所有檔案與目錄的源頭,然後再一個一個的分支下來,像樹枝狀,如下圖
目录树directory tree
Linux的FHS(Filesystem Hierarchy Standard)給出了每個特定的目錄下應該存放什麼樣的檔案,FHS目的是希望讓使用者可以瞭解到已安裝軟體通常放置於哪個目錄下

/bin:存放常用命令(即二進制可執行程式),主要有:cat、ls、mkdir、tar、mount、mv、cp、bash等常用命令
/etc:存放系統組態檔
/home:所有普通使用者的家目錄,「~」代表目前這個使用者的家目錄
/root:系統管理使用者的家目錄
/usr:存放系統應用程式及文件,(usr全稱UNIX Software Resource)
/proc:虛擬檔案系統目錄,以進程爲單位儲存記憶體的對映,(proc全稱process information pseudo-file system進程資訊虛擬檔案系統)
/dev:存放裝置檔案
/mnt:臨時掛載點
/lib:存放庫檔案
/boot:系統內核及啓動有關的檔案
/tmp:存放各種臨時檔案,是所有使用者均可存取的地點
/var:存放系統執行中常改變的檔案,如系統日誌

絕對路徑與相對路徑

根據檔名寫法的不同,將所謂的路徑定義爲絕對路徑與相對路徑
絕對路徑:由根目錄(/)開始寫起的檔名或目錄名稱,例如:/usr/local/src
相對路徑:相對於當前位置的路徑,即從當前位置開始到指定位置的路徑,‘.’代表當前位置,‘..’代表當前位置的上一層目錄,例如:./main.c表示當前位置下的main.c檔案

區分絕對路徑和相對路徑只需要看首字元,如果首字元是‘/’,則是絕對路徑,其他的都是相對路徑
注意:在寫程式(shell指令碼)來管理系統的條件下,務必使用絕對路徑,因爲絕對路徑的寫法雖然比較麻煩,但是可以肯定的是這個寫法是唯一的且正確的,若使用相對路徑,則可能由於執行的工作環境不同導致一些問題的發生

目錄相關命令

.:代表當前目錄,例如./main.c當前目錄下的main.c檔案

..:代表上一層目錄,例如../test.c上一層目錄下的test.c檔案

~:代表目前使用者身份的家目錄,例如cd ~dmtsai等價於cd /home/dmtsai

cd:change directory 切換目錄,例如cd /usr/share

pwd:print working directory 顯示當前工作位置的絕對路徑

mkdir:make directory 建立一個新目錄

rmdir:remove directory 刪除一個空目錄,目錄需要一層一層的刪除才行,而且被刪除的目錄裏面必定不能存在其他的目錄或檔案,即必須是空目錄,如果要刪除非空目錄,要使用命令rmdir -r dirname,-r參數讓它遞回地去刪除

ls:檢視檔案或目錄的資訊,
用法:ls 路徑,顯示指定路徑下的檔案,如果不給路徑,預設顯示的是當前目錄的檔案
ls命令的選項與參數:
-a 顯示所有的檔案,連同隱藏的檔案(開頭爲 . 的檔案)
-i 顯示檔案對應的inode節點號
-l 顯示檔案的詳細資訊,包含檔案的屬性與許可權等數據(常用ls -l也可簡化爲ll)

參考書籍
《鳥哥的Linux私房菜》第四版 第五章Linux的檔案許可權與目錄設定