經(jīng)常在Windows環(huán)境下工作的同學(xué)在初次使用Linux操作系統(tǒng)的時候可能有種不知所措的感覺。 Linux操作系統(tǒng)理念是一切皆文件。因此當我們登入Linux操作系統(tǒng)內(nèi)部的時候看到的是各種目錄和文件。特別是進入非桌面版時,看到的只是一個命令行提示符。
圖1 Linux交互界面
這就給大家造成了很大的學(xué)習(xí)障礙。其實如果登錄桌面版(比如Ubuntu)會發(fā)現(xiàn)其實跟Windows還是很像的。學(xué)習(xí)門檻也低很多。
圖2 圖形界面目錄結(jié)構(gòu)
桌面版只是對底層做了一些封裝,本質(zhì)上來說,Linux操作系統(tǒng)中一切皆文件。不僅僅存儲數(shù)據(jù)的磁盤是文件,其它設(shè)備也是文件。操作系統(tǒng)內(nèi)部的信息也是以文件的形式呈現(xiàn)的,比如CPU信息、內(nèi)存信息和進程信息等等。
因此,如果想學(xué)習(xí)Linux操作系統(tǒng),非常有比較了解一下整個文件系統(tǒng)。其實有一個專門的文檔來介紹Linux的目錄結(jié)構(gòu),這個文檔名為文件系統(tǒng)層次標準(Filesystem Hierarchy Standard,簡稱FHS)。但是這個文檔非常長, 而且在Linux的目錄結(jié)構(gòu)中有些目錄并不在該文檔中,因此本文簡要介紹一下Linux的核心目錄。
/ – 根目錄
首先我們介紹一下Linux下的根目錄。Linux的目錄結(jié)構(gòu)就像一棵倒著的大樹,最底層是樹干,然后是分支,層層細分。而根目錄是Linux最底層的目錄,就像一棵大樹的樹干一樣。
任何內(nèi)容都位于根目錄之下,根目錄通過一個路徑符號/表示。如果非要找個類比的話,可以將根目錄理解為Windows下面的C:\目錄。但是嚴格來說并不一樣,Linux下的"/"是所有內(nèi)容(包括文件目錄、設(shè)備和文件等)的根,而Windows下的C:\并不是,因為如果有多個磁盤或者多個分區(qū),那Windows下可能還有D:\或者E:\。
我們可以通過執(zhí)行命令cd /將當前工作路徑切換到根目錄。并通過命令tree -L 1顯示根目錄的所有下一級目錄。具體如圖3所示。本例中只顯示了一級子目錄,當然也可以通過-L 2顯示二級子目錄,但結(jié)果可能會占滿整個屏幕。
圖3 根目錄示例
/bin – 用戶基礎(chǔ)二進制文件目錄
目錄/bin是根目錄的一級子目錄。在該目錄中包含著最為基礎(chǔ)的用戶二進制文件,也就是應(yīng)用程序。這個目錄非常像Windows下的Programs目錄。
并非所有的應(yīng)用程序都存儲在這個目錄下面,有些不是特別基礎(chǔ)的程序會存儲在/usr/bin目錄下面。比如Chrome瀏覽器等,或者用戶自己安裝的一些程序通常會在/usr/bin下面。而系統(tǒng)應(yīng)用程序則通常會在該目錄下面,比如ls、mkdir和cp等等。
如果你使用的桌面版的操作系統(tǒng),可以通過GUI看到該目錄下的內(nèi)容。下面這張圖是一個具體的例子。
圖4 二進制目錄
/boot – 靜態(tài)啟動文件
在目錄/boot下面包含的文件是用于啟動操作系統(tǒng)的文件。比如GRUB boot loader文件和操作系統(tǒng)內(nèi)核等。但是boot loader的配置文件并沒有在這里,而是在/etc目錄中。
/cdrom – 光盤安裝點
目錄/cdrom并不是FHS標準的一部分,但是我們在絕大多數(shù)發(fā)行版中都可以看到。該目錄是光盤的臨時掛載點。
/dev – 設(shè)備文件
在Linux下面,設(shè)備也是一個文件,比如磁盤、優(yōu)盤或者光盤等。包括無線網(wǎng)卡、攝像頭和串口等都是一個文件。而通常這些文件都是在/dev目錄下面,大家可以切換到該目錄下看看具體的內(nèi)容。
圖5 設(shè)備目錄
其中圖是/dev目錄的一個局部截圖。在該目錄下面最常見的可能就是/dev/sda這種文件,該文件表示一個SCSI磁盤。
處理實體設(shè)備外,在該目錄下面還有很多偽設(shè)備。比如/dev/random表示一個產(chǎn)生隨機數(shù)的設(shè)備,/dev/loop0則是一個將本地文件映射為磁盤的虛擬設(shè)備。這些偽設(shè)備有的時候非常用于,我們經(jīng)常使用這些設(shè)備做一些測試。
圖6 GUI目錄
/etc – 配置文件
操作系統(tǒng)和應(yīng)用程序的配置文件通常都統(tǒng)一存儲在一個目錄下面,這個目錄就是/etc。很多配置文件都已文本文件的形式存儲在這里。我們可以通過文本編輯器修改配置項。比如網(wǎng)絡(luò)的IP地址、Nginx的配置和系統(tǒng)日志的配置等等都可以在這里找到。
/home –主目錄
這個目錄稱為主目錄。在Linux操作系統(tǒng)下面通常每個用戶都有一個自己的目錄,該目錄就在/home下面。例如本例中有一個名為zhangsn的用戶,該用戶的主目錄在/home下如圖7所示。
用戶的主目錄下面包含這數(shù)據(jù)文件和用戶相關(guān)的配置文件。通常一個用戶只能修改其目錄下的文件,只有獲得授權(quán)的情況下才能訪問其它文件。
圖7 zhangsn的主目錄
/lib – 基礎(chǔ)共享庫
在/lib目錄中存儲的是/bin和/sbin中二進制文件(應(yīng)用程序)需要的庫文件。在/usr/bin下的應(yīng)用程序依賴的庫通常在/usr/lib目錄下面。
/lost+found – 可恢復(fù)的文件
每一個文件系統(tǒng)都有一個lost+found目錄。如果文件系統(tǒng)崩潰,在系統(tǒng)下次啟動的時候會進行數(shù)據(jù)檢查。在檢查的過程中如果發(fā)現(xiàn)有數(shù)據(jù)沖突的文件就會將其放入該目錄中。這樣,你就可以試著手動恢復(fù)該文件。
/media – Removable Media
在目錄/media下面包含的子目錄是一些可插拔設(shè)備的掛載點。當一些可插拔設(shè)備插入電腦時,在該目錄下會自動創(chuàng)建子目錄,并進行掛載。
/mnt – 臨時掛載點目錄
該目錄通常是空的。主要用于臨時掛載一些外部文件系統(tǒng)。比如有多個數(shù)據(jù)磁盤的情況下,會將格式化的磁盤掛載到該目錄下面。mnt字符是mount的縮寫,也就是掛載的意思。
/opt – 自選軟件包(Optional Packages)
自行安裝的非常規(guī)軟件通常會安裝在該目錄。
/proc – Kernel & Process Files
該目錄也是一個虛擬目錄,也就是并不是存儲文件數(shù)據(jù)的目錄。這個目錄中存儲的文件通常是用來獲取操作系統(tǒng)內(nèi)核內(nèi)部信息或者進程內(nèi)部信息的。
圖8 proc目錄
比如每個進程在該目錄下都有一個子目錄,而字母的名字就是進程ID。通過cat命令對該目錄下的文件進行讀取,可以獲取進程的詳細信息。例如我們進入目錄/proc/258下面,這個是進程ID為258的進程的信息,通過ls命令可以看到如下內(nèi)容。
圖8 進程詳細信息
/root – root主目錄
目錄/root是root用戶的主目錄。root用戶的主目錄并不是在/home下面,而是在根目錄下面。這一點需要注意。
/run – 應(yīng)用程序狀態(tài)文件
這個目錄是比較新的目錄,用于應(yīng)用程序存儲經(jīng)常變化的文件,比如文件鎖、進程ID或者套接字等等。
/sbin – 系統(tǒng)管理二進制文件
該目錄與/bin目錄類似,用于存儲二進制文件。與/bin目錄不同的地方是這個目錄存儲的是用于系統(tǒng)管理的二進制文件,比如磁盤格式化(mkfs)、磁盤分區(qū)(fdisk)和網(wǎng)絡(luò)配置(ifconfig)等命令。
圖9 系統(tǒng)命令
/selinux – SELinux虛擬文件系統(tǒng)
如果你的Linux發(fā)行版使用SELinux作為安全管理,那么該目錄包含著SELinux使用的相關(guān)文件。
/srv – 服務(wù)數(shù)據(jù)
該目錄存儲具體服務(wù)提供的數(shù)據(jù)。通常該目錄是空的。這個目錄中的數(shù)據(jù)通常是提供給外部的,比如Web網(wǎng)站存儲的用戶信息。這里需要注意與/var和/tmp的區(qū)別,前者是提供給外部用戶的,而兩者則是應(yīng)用自己使用的,而且/tmp中的數(shù)據(jù)重啟后會丟失。
/tmp – 臨時文件
應(yīng)用程序產(chǎn)生的臨時數(shù)據(jù)通常存儲在該目錄中。該目錄有一個特點,就是系統(tǒng)重啟后目錄中的數(shù)據(jù)將被清理。
/usr – User Binaries & Read-Only Data
與系統(tǒng)使用的應(yīng)用程序和文件不同,在/usr目錄下存儲的是用戶使用的應(yīng)用程序的文件。比如/bin下面存儲的系統(tǒng)二進制文件,而/usr/bin下面則是用戶使用的二進制文件。/lib下面存儲的系統(tǒng)庫文件,而/usr/lib下面存儲的是用于應(yīng)用程序使用的庫文件。
/var – 變量數(shù)據(jù)文件
/var目錄是/usr目錄對應(yīng)的可寫目錄,在/usr目錄中的內(nèi)容只讀的,而/var則是可寫的。日志文件和正常操作中的一些寫入操作通常會寫入/var目錄。例如,日志文件通常存儲在/var/log中。
好了,關(guān)于Linux目錄的內(nèi)容就介紹到這里,相信通過本次介紹,大家對Linux的目錄和文件會有更加深刻和細致的了解。在以后的工作中也能更加合理的使用這些目錄了。
-
Linux
+關(guān)注
關(guān)注
87文章
11345瀏覽量
210384 -
WINDOWS
+關(guān)注
關(guān)注
4文章
3569瀏覽量
89293 -
GUI
+關(guān)注
關(guān)注
3文章
662瀏覽量
39887
發(fā)布評論請先 登錄
相關(guān)推薦
評論