Reference
- 詳細說明鏈接 https://blog.csdn.net/weixin_40921797/article/details/81664453
- 鳥哥的Linux私房菜·基礎學習篇(第三版) 第六章 Linux的文件權限與目錄配置
Linux的文件系統與掛載的概念
文件系統與目錄樹的關系(掛載)
- 所謂的"掛載"就是利用一個目錄當成進入點,將磁盤分區的數據放置在該目錄下:也就是說,進入該目錄就可以讀取該分區的意思。這個操作我們稱為"掛載",那個進入點的目錄我們稱之為"掛載點"
Linux目錄配置標准 FHS(Filesystem Hierarchy Standard)
FHS官方文件地地址:https://www.pathname.com/fhs/
|
可分享的(shareable) |
不可分享的(unshareable) |
不變的(static) |
/usr(軟件放置處) |
/etc(配置文件) |
|
/opt(第三方軟件) |
/boot(開機與內核文件) |
可變的(static) |
/var/mail(用戶郵箱信箱) |
/var/run(程序相關) |
|
/var/spool/news(新聞組) |
/var/lock(程序相關) |
Linux的幾個關鍵目錄 root(/) /usr /var
- / 根目錄 與系統的開關機有關
- /usr (UNIX software resource) 與與軟件的執行與安裝有關
- /var(variable) 與系統運作過程有關
Linux根目錄下文件結構

目錄 |
應放置的文件內容 |
/bin |
特殊的可執行文件目錄 存放在單用戶維護模式下依舊能夠被操作的命令,一般可以被root與普通用戶共用。(bin = binaries 二進制文件) |
|
bin是binary的縮寫,是UNIX類操作系統中根目錄的標准子目錄,包含可執行的程序(即准備運行的程序),以便達到啟動(即啟動)和修復系統的最小功能。進入該目錄可以看到許存放有很多常用的命令如 mv cat chmod ls等等等等。 |
|
/bin是系統默認的路徑,它是系統發出命令時搜索相應程序的目錄列表。這意味着,只要在命令行中輸入文件名,然后按下Enter鍵,就可以運行/bin中的對應的可執行文件(即,可運行程序)從而達到我們執行命令完成對應功能的操作。 |
/boot |
/boot目錄存儲在內核開始執行用戶模式程序之前使用的數據。這可能包括冗余備份(備份)主引導記錄、扇區/系統映射文件、內核和其他重要的引導文件和手工不直接編輯的數據。使用grub引導裝載程序會生成/gurb這個文件。 Linux kernel常用的文件名為vmlinuz |
/cdrom |
|
/dev |
dev是device(設備)的縮寫。是Linux內核的設備管理器。作為devfsd和熱插拔的繼承者,udev主要管理/dev目錄中的設備節點。一切設備皆為文件 訪問某個文件相當於訪問某個設備 |
|
/dev/null; /dev/zero; /dev/tty/; /dev/lp*; /dev/hd* ; /dev/sd* |
/etc |
etc目錄用來存放系統管理所需要的配置文件和子目錄。系統主要的配置文件都在這個目錄里。只有root有修改權限。不建議在此存放可執行文件(etc原本是etcetera的縮寫 意思是附加物 與bin(binaries相對應)) |
|
一個“配置文件”要被定義為用來控制程序操作的本地文件;它必須是靜態的,不能是可執行二進制文件。因此,定期備份這個目錄是個好主意。如果您重新安裝或丟失當前的安裝,它肯定會為您節省大量的重新配置時間。 |
/home |
用戶主文件夾 符號~表示當前用戶的主文件夾 |
/nitrd.img |
|
initrd.img.old |
|
/lib |
系統的函數庫之一。存放在/bin或者/sbin下命令會用到的函數庫。是內核模塊和系統最基本的動態鏈接共享庫,其作用類似於Windows里的.dll文件。幾乎所有的應用程序都須要用到這些共享庫,是二進制文件。它們對於基本系統功能是必不可少的。 |
/lib64 |
|
/lost+found |
使用標准的ext2/ext3文件系統格式才會產生的一個目錄。文件系統發生錯誤時,一些丟失的片段會放置到這個目錄下,一般在分區的最頂層 |
/media |
媒體外設臨時掛載在此處 一些可刪除設備的掛載點 |
/mnt |
在/media出現之前作為臨時外設的掛載點 |
/opt |
第三方軟件放置目錄。 |
|
這個目錄是為所有不屬於默認安裝的軟件和附加包保留的。因為要遵守FSSTND,所有第三方應用程序都應該安裝在這個目錄中。在這里安裝的任何包都必須找到它的靜態文件(如:額外的字體、剪貼板、數據庫文件)必須將其靜態文件定位在單獨的opt的目錄樹中。 |
/proc |
這個目錄是一個虛擬的目錄,它是系統內存的映射,我們可以通過直接訪問這個目錄來獲取系統信息(系統內核 進程 外部設備狀態 網絡狀態等等)。(放置的數據都在內存當中,本身不占用硬盤空間)通常,它是由系統自動安裝的,而且大多數文件是只讀的。 |
/root |
系統管理員的主文件夾。作為系統的擁有者,它的特權就是單獨擁有一個目錄。 |
/run |
|
/sbin |
s是super/system 的意思,/sbin是Linux和其他UNIX類操作系統中root目錄的標准子目錄,包含可執行程序(即准備運行)程序,也就是說這里存放的是系統管理員使用的管理程序。比較多的情況下是用來設置系統環境的 |
/snap |
|
/srv |
"Service",是一些網絡服務啟動后,這些服務需要取用的數據目錄。比如WWW FTP等。 |
|
srv包含由該系統服務的站點特定數據。指定這一點的主要目的是使得用戶可以找到針對特定服務的數據文件的位置,從而可以合理地放置需要單個樹用於只讀數據、可寫數據和腳本(例如CGI腳本)的服務。只對特定用戶感興趣的數據應該進入用戶的主目錄 |
swapfile |
|
/sys |
類似於/proc 也是虛擬的文件系統 記錄與內核相關的信息,包括目前已經加載的內核模塊與內核檢測到的硬件設備信息等等。同樣不占用硬盤 |
/tmp |
正在執行的程序暫時存放文件的地方 訪問權限對所有人開放 定時清理是個好習慣 |
vmlinuz |
|
vmlinuz.old |
|
/usr目錄 |
應放置的文件內容 |
/usr/bin |
絕大部分用戶可使用的命放在此處 與/bin的區別在於這里與開機過程無關。 |
|
(apt命令的默認安裝路徑在此)(apt自己也裝在這里) |
/usr/games |
|
/usr/include |
C/C++等程序語言的頭文件(header)與包含文件(include)放置處,當我們以tarball方式(*.tar.gz的方式安裝軟件)安裝某些數據時,會使用到這個文件下很多的包含文件 |
/usr/lib |
包含各個應用軟件的函數庫,目標文件,以及不被一般用戶慣用的執行文件或者腳本 |
/usr/libexec |
|
/usr/local |
系統管理員在本機自行安裝自己下載的軟件(非distribution默認提供者)建議安裝到此目錄;該目錄下同樣具有bin etc include lib這類子目錄 |
/usr/sbin |
非系統正常運行所需要的系統命令。最常見的是某些網絡服務軟件的服務命令 |
/usr/share |
|
/usr/src |
一般的原碼都存在這里 src=source |
/var目錄 |
應放置的文件內容 |
/var/cache |
程序運行本身產生的一些暫存文件 |
/var/lib |
程序本身執行的過程中 需要使用到的數據文件放置的目錄。在此目錄下各自的軟件應該要有各自的目錄。 |
|
eg /var/lib/mysql/ /var/lib/rpm |
var/lock |
某些設備或者說文件資源一次只能被一個應用程序所使用,如果有兩個程序同時使用該設備,就會出錯,因此需要lock上 |
var/log |
登錄文件放置的目錄。里面比較重要的文件有./messages; ./wtmp這類 |
var/mail |
放置個人電子郵件信箱的目錄 通常與/var/spool/mail互相為連接文件 |
var/run |
存放某些程序或者服務啟動后的PID |
var/spool |
存放隊列數據 即排隊等待其他程序使用的數據 |

$PATH 執行文件的路徑變量
以執行ls
命令為例,系統會根據環境變量PATH的設置,去每一個PATH中尋找這一特定的可執行文件,如果在PATH定義的目錄中含有多個文件名為ls的可執行文件,那么先查詢到的同名文件被執行。
# 打印環境變量
echo $PATH | sed -n 's/:/\n/gp'