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