Linux 檔案系統的介紹

2021-10-06 18:46:00 字數 4672 閱讀 9106

binbinary的縮寫,存放著可執行檔案或可執行檔案的鏈結(類似快捷方式)

cp,chmod,cat等常用命令都在這裡。注意不要被圖示上的 txt 字樣誤導了,linux 不按字尾識別檔案型別,/bin目錄中的檔案都是可執行的二進位制檔案,而不是文字檔案。

/bin類似的是/sbin目錄,system binary 的縮寫,這裡存放的命令可以對系統配置進行操作。普通使用者可能可以使用這裡的命令檢視某些系統狀態,但是如果想更改配置,就需要sudo授權或者切換成超級使用者。

可以看到一些熟悉的命令,比如ifconfig,iptables。普通使用者可以使用ifconfig檢視網絡卡狀態,但是想配置網絡卡資訊,就需要授權了。

這裡存放系統啟動需要的檔案,你可以看到grub資料夾,它是常見的開機引導程式。我們不應該亂動這裡的檔案。

devdevice的縮寫,這裡存放著所有的裝置檔案。在 linux 中,所有東西都是以檔案的形式存在的,包括硬體裝置。

比如說,sda,sdb就是我電腦上的兩塊硬碟,後面的數字是硬碟分割槽:

滑鼠、鍵盤等等裝置也都可以在這裡找到。

這個目錄經常使用,存放很多程式的配置資訊,比如包管理工具 apt:

/etc/apt中就存放著對應的配置,比如說映象列表(我配置的阿里雲映象):

如果你要修改一些系統程式的配置,十有**要到etc目錄下尋找。

lib是 library 的縮寫,包含 bin 和 sbin 中可執行檔案的依賴,類似於 windows 系統中存放dll檔案的庫。

也可能出現lib32lib64這樣的目錄,和lib差不多,只是作業系統位數不同而已。

這裡會有乙個以你使用者名稱命名的資料夾,裡面是自動掛載的裝置,比如 u 盤,行動硬碟,網路裝置等。

比如說我在電腦上插入乙個 u 盤,系統會把 u 盤自動給我掛載到/media/fdl這個資料夾裡(我的使用者名稱是 fdl),如果我要訪問 u 盤的內容,就可以在那裡找到。

這也是和裝置掛載相關的乙個資料夾,一般是空資料夾。media資料夾是系統自動掛載裝置的地方,這裡是你手動掛載裝置的地方。

比如說,剛才我們在dev中看到了一大堆裝置,你想開啟某些裝置看看裡面的內容,就可以通過命令把裝置掛載到mnt目錄進行操作。

不過一般來說,現在的作業系統已經很聰明了,像掛載裝置的操作幾乎都不用你手動做,系統應該幫你自動掛載到media目錄了。

比如我在這裡存放了 chrome 瀏覽器(google),網易雲**(netease),clion ide 等等軟體。

procprocess的縮寫,這裡存放的是全部正在執行程式的狀態資訊

你會發現/proc裡面有一大堆數字命名的資料夾,這個數字其實是 process id(pid),資料夾裡又有很多檔案。

前面說過,linux 中一切都以檔案形式儲存,類似/dev,這裡的檔案也不是真正的檔案,而是程式和核心交流的一些資訊。比如說我們可以檢視當前作業系統的版本,或者檢視 cpu 的狀態:

如果你需要除錯應用程式,proc目錄中的資訊也許會幫上忙。

這是超級使用者的家目錄,普通使用者需要授權才能訪問。

區別一下 root 使用者和根目錄的區別哈,root 使用者就是 linux 系統的超級使用者(super user),而根目錄是指 / 目錄,整個檔案系統的「根部」。

用來儲存某些程式的執行時資訊和系統需要的一些資訊。比如說下面這個路徑有乙個名為 brightness 的檔案:

sudo vim /sys/devices/pci0000:00/

0000:00:02.0/drm/card0/card0-edp-1/

intel_backlight/brightness

裡面儲存著乙個數字,是你的顯示卡亮度,你修改這個數字,螢幕亮度就會隨之變化。

需要注意的是,這兩個位置的資料都儲存在記憶體中,所以一旦重啟,/run/sys目錄的資訊就會丟失,所以不要試圖在這裡存放任何檔案。

srvservice的縮寫,主要用來存放服務資料。

對於桌面版 linux 系統,這個資料夾一般是空的,但是對於 linux 伺服器,web 服務或者 ftp 檔案服務的資源可以存放在這裡。

tmptemporary的縮寫,儲存一些程式的臨時檔案

臨時檔案可能起到很重要的作用。比如經常聽說某同學的 word 文件崩潰了,好不容易寫的東西全沒了,linux 的很多文字編輯器都會在/tmp放乙份當前文字的 copy 作為臨時檔案,如果你的編輯器意外崩潰,還有機會在/tmp找一找臨時檔案搶救一下。

比如上圖的vscode crashes應該就是 vscode 編輯器存放臨時檔案的地方。

當然,tmp資料夾在系統重啟之後會自動被清空,如果沒有被清空,說明系統刪除某些檔案失敗,也許需要你手動刪除一下。

usr是 universal system resource 的縮寫,這裡存放的是一些非系統必須的資源,比如使用者安裝的應用程式。

/usr/usr/local目錄中又含有binsbin目錄,也是存放可執行檔案(命令),但和根目錄的binsbin不同的是,這裡大都是使用者使用的工具,而非系統必須使用的。

比如說/usr/bin中含有我通過包管理工具安裝的應用程式 chrome 瀏覽器和 goldendict 字典的可執行檔案:

varvariable的縮寫,這個名字是歷史遺留的,現在該目錄最主要的作用是儲存日誌(log)資訊,比如說程式崩潰,防火牆檢測到異常等等資訊都會記錄在這裡。

日誌檔案不會自動刪除,也就是說隨著系統使用時間的增長,你的var目錄占用的磁碟空間會越來越大,也許需要適時清理一下。

其中.cache資料夾儲存應用快取資料,.config資料夾儲存了一部分應用程式的配置,比如說我的 chrome 瀏覽器配置就是那裡面。但是還有一部分應用程式並不把配置儲存在.config資料夾,而是自己建立乙個隱藏資料夾,存放自己的配置檔案等等資訊,比如你可以看到 intellij 的配置檔案就不在.config中。

最後說.local資料夾,有點像/usr/local,裡面也有bin資料夾,也是存放可執行檔案的。比如說我的 python pip 以及 pip 安裝的一些工具,都存放在~/.local/bin目錄中。但是,存在這裡的檔案,只有該使用者才能使用。

這就是為什麼,有時候普通使用者可以使用的命令,用 sudo 或者超級使用者卻被告知找不到該命令。因為有的命令是特定使用者家目錄裡的,僅被新增到了該使用者的path環境變數裡,只有他可以直接用。你超級使用者想用當然可以,但是得寫全絕對路徑才行。

如果修改系統配置,就去/etc找,如果修改使用者的應用程式配置,就在使用者家目錄的隱藏檔案裡找。

你在命令列裡可以直接輸入使用的命令,其可執行檔案一般就在以下幾個位置:

/bin    

/sbin

/usr/bin

/usr/sbin

/usr/local/bin

/usr/local/sbin

/home/user/.local/bin

/home/user/.local/sbin

如果你寫了乙個指令碼/程式,想在任何時候都能直接呼叫,可以把這個指令碼/程式新增到上述目錄中的某乙個。

如果某個程式崩潰了,可以到/val/log中嘗試尋找出錯資訊,到/tmp中尋找殘留的臨時檔案。

裝置檔案在/dev目錄,但是一般來說系統會自動幫你掛載諸如 u 盤之類的裝置,可以到/media資料夾訪問裝置內容。

linux檔案系統介紹

linux支援多種檔案系統型別,包括ext2,ext3,vfat,jffs,ramfs,nfs等,為了對各類檔案系統進行統一管理,linux引入了虛擬檔案系統vfs virtual file system 為各類檔案系統提供乙個統一的應用程式設計介面。檔案系統型別主要有如下 根據儲存裝置的硬體特性,...

Linux檔案系統介紹

linux檔案系統 以單根的方式 組織檔案 rootfs根檔案系統 media 掛載點目錄,dev下是裝置檔案而不是目錄 只是裝置上資料的訪問入口 要訪問必須建立關聯關係,這個過程叫掛載。移動裝置的掛載 mnt 掛載點目錄,額外的臨時檔案系統 misc 雜項 opt 可選目錄,第三方程式的安裝目錄 ...

Linux檔案系統介紹

根節點,主層次機構 bin 所有使用者在單使用者模式下必備的可執行的二進位制檔案 dev 系統的裝置檔案 ect 系統的被指檔案 honme 普通使用者家目錄 lib 是 庫檔案目錄 包含了所有對系統有用的庫檔案。簡單來說,它是應用程式 命令或程序正確執行所需要的檔案 media 熱插拔裝置的臨時掛...