成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

比起Windows,怎樣解讀Linux的文件系統(tǒng)與目錄結構?

系統(tǒng) Linux
本文先對 Windows 和 Linux 上面文件系統(tǒng)原理、組織概念進行區(qū)分,并給出例子、列舉兩者的優(yōu)缺點以具體說明,最后較為詳細地介紹了 Linux 系統(tǒng)的目錄結構。

比起 Windows,怎樣解讀 Linux 的文件系統(tǒng)與目錄結構?

Linux 和 Windows 的文件系統(tǒng)有些不同,在學習使用 Linux 之前,若能夠了解這些不同,會有助于后續(xù)學習。

本文先對 Windows 和 Linux 上面文件系統(tǒng)原理、組織概念進行區(qū)分,并給出例子、列舉兩者的優(yōu)缺點以具體說明,***較為詳細地介紹了 Linux 系統(tǒng)的目錄結構。

Windows 和 Linux 文件系統(tǒng)

下面將介紹啟動 Windows 和 Linux 后,在文件系統(tǒng)的角度上,它們分別是怎樣看待自己世界的。

訪問原理

在 Windows 系統(tǒng)中, 一切東西都是存放在硬盤上的。啟動系統(tǒng)后,先確定硬盤,再確定硬盤上的分區(qū)以及每個分區(qū)所對應文件系統(tǒng),***是存放在某個分區(qū)特定的文件系統(tǒng)中的文件。 也就是說,Windows 是通過 “某個硬盤-硬盤上的某個分區(qū)-分區(qū)上的特定文件系統(tǒng)-特定文件系統(tǒng)中的文件” 這樣的順序來訪問到一個文件的。

但是與 Windows 不同, Linux 系統(tǒng)中的一切都是存放在唯一的 虛擬文件系統(tǒng)中的,這個 虛擬文件系統(tǒng)是樹狀的結構以一個根目錄開始。啟動系統(tǒng)后,先有這個 虛擬文件系統(tǒng),再識別出各個硬盤, 再把某個硬盤的某個分區(qū)掛載到這個 虛擬文件系統(tǒng)的某個子樹上(即分區(qū)用某個子目錄來表示),再確定分區(qū)對應的子目錄文件系統(tǒng),***的文件就存放在這個特定的文件系統(tǒng)中。 也就是說, Linux 系統(tǒng)是通過 “虛擬文件系統(tǒng)-硬盤-硬盤上的分區(qū)-分區(qū)上的特定文件系統(tǒng)-特定文件系統(tǒng)中的文件” 這樣的順序來訪問一個文件的。

可能對習慣了使用 Windows 的用戶來說, Linux 的方式有些不適應,它的 虛擬文件系統(tǒng),實質就是一顆目錄樹,最開始的目錄叫做根目錄,根目錄中又有每一級子目錄,或者文件,子目錄又有子子目錄和文件,其中每個子目錄都特定的功能這個功能(這些是約定俗成了的,在后面 常用的重要目錄 (See section 1.2.1) 中會詳細說明)。

也許有人會問,沒有這個虛擬文件系統(tǒng)就無法使用硬盤,可是最開始沒有硬盤,那么這個 虛擬文件系統(tǒng)以及相應的組織結構是怎么存放起來的呢?這個問題,就像先有雞還是先有蛋這個問題一樣看似簡單實則……但是,在 Linux 中,很輕易地跳出了這個思維循環(huán),問題的答案并沒在 虛擬文件系統(tǒng) 和 硬盤 這兩者之間徘徊,而是第三者—— 內存 ,Linux 系統(tǒng)啟動起來之后,整個 虛擬文件系統(tǒng)的組織結構,都是隨著每次內核系統(tǒng)的啟動自動在內存中建立好了的,根本就不需要硬盤。

另外還要注意,就是在我們用戶的角度上,無論在 Windows 還是 Linux 上面,都是使用路徑來訪問一個文件的。表示文件的路徑由 “文件所在的目錄+各級目錄的分隔符+文件” 三個部分組成,這個策略在兩者之間是一樣的,所不同的是,Windows 下面目錄分隔符是 \ , Linux 下面是 / ,也許這也是兩者之間為了表示其各自立場不同的一個原因吧?^_^

系統(tǒng)組織

在 Windows 系統(tǒng)中,我們可以把文件大體分為兩種: 系統(tǒng)文件和用戶文件 。一般來說系統(tǒng)文件(例如 Windows 操作系統(tǒng)本身,一些系統(tǒng)程序,程序運行所需的庫文件,以及一些系統(tǒng)配置文件等)存放的默認位置在 C 盤,當然也可以在安裝時候指定在其他盤;其它用戶文件,包含用戶后來安裝的程序以及一些數(shù)據(jù)文件等,用戶可以把它們隨意存放在任意的分區(qū)。

在 Linux 系統(tǒng)中,主要有兩個概念: 虛擬文件系統(tǒng)中的文件和 Linux 操作系統(tǒng)內核 本身。邏輯上可以認為前者屬于上層,后者在下層,前者基于后者,后者依賴前者而存在。 Linux 把除了它本身(Linux 操作系統(tǒng)內核)以外的一切事物都看作是在 虛擬文件系統(tǒng)中的文件了。無論是鍵盤,鼠標,數(shù)據(jù),程序,CPU,內存,網(wǎng)卡……無論是硬件、軟件、數(shù)據(jù)還是內存中的東西,我們都可以在 虛擬文件系統(tǒng)中的相應子目錄對他們進行訪問和操作,操作統(tǒng)一。而實現(xiàn)這些管理的幕后就是 Linux 操作系統(tǒng)內核 本身:啟動 Linux 系統(tǒng)的時候,首先電腦把 Linux 操作系統(tǒng)內核 加載到內存中,內核本身提供了文件管理,設備管理,內存管理,CPU 進程調度管理,網(wǎng)絡管理等功能,等內核運行起來之后,就在內存中建立起相應的 虛擬文件系統(tǒng),***就是內核利用它提供的那些功能,通過管理文件的方式,來管理 虛擬文件系統(tǒng)中的硬件軟件等各種資源了。

Linux 把提供操作系統(tǒng)本身功能(管理計算機軟硬件資源)的那些部分劃給了 Linux 操作系統(tǒng)內核 ,使得 Linux 操作系統(tǒng)內核 成為一個獨立的部分,有它自己獨立的開源代碼;而其它的一切(軟件應用,硬件驅動,數(shù)據(jù))都根據(jù)其特性有自己的開源代碼、或者自由地組織并且存放在那個 虛擬文件系統(tǒng)中由 Linux 操作系統(tǒng)內核 來管理。這樣,將系統(tǒng)本身和系統(tǒng)所管理的資源分開,并開放源代碼,有助于對系統(tǒng)或者系統(tǒng)所管理的資源進行靈活的定制和擴展,還能按需快速建立起只適合自己使用的操作系統(tǒng),也利于操作系統(tǒng)本身的發(fā)展。實際 Ubuntu , Fedora , RedHat 等各種不同的 Linux 操作系統(tǒng)發(fā)行版,簡單來說就是不同廠商對其文件系統(tǒng)和內核進行了不同的配置而產生的 “大眾化” 的操作系統(tǒng)。相比之下,Windows 就顯得非常地零亂復雜,將系統(tǒng)、軟件、硬件、數(shù)據(jù)都混在了一起,其不同版本只能由 Microsoft 一家公司發(fā)行。

舉例說明

下面用直觀的例子,來說明兩者的不同,以加深理解。假設我們的機器上面有一個硬盤,硬盤分為三個區(qū)。

在 Windows 系統(tǒng)中, 我們啟動系統(tǒng)之后就會看到 C, D, E, 盤符,它們分別對應硬盤上的三個分區(qū),增加硬盤,或者分區(qū),會導致盤符的增加(注意由于歷史原因, A, B 用于表示軟驅,硬盤分區(qū)盤符從 C 開始按字母遞增),這里的每個分區(qū)都各自可以被格式化為不同的文件系統(tǒng)(這里的文件系統(tǒng),包括例如 NTFS 格式, FAT32 格式等),文件系統(tǒng)的基本功能就是為了存放文件的,不同文件系統(tǒng)區(qū)別一般在于管理其中存放的文件的功能的強弱,所以分區(qū)被格式化成指定格式的文件系統(tǒng)之后,就可以存放任何文件和目錄了,我們看到的 C, D, E 內容也就對應了硬盤中相應分區(qū)的數(shù)據(jù)內容。

但是,與 Windows 中把硬盤分區(qū)看成 C, D, E 盤符不同, Linux 中最開始根本就沒有硬盤的概念,就只有一個純粹的 虛擬文件系統(tǒng)。如果想要使用哪個硬盤的某個分區(qū),就把那個分區(qū) “掛載” 到某個子目錄之下,這樣硬盤中的分區(qū),文件系統(tǒng),目錄等內容就呈現(xiàn)到了那個子目錄里面。也就是說,在 Linux 中,我們使用硬盤中的數(shù)據(jù),實際是先把硬盤的某個分區(qū) “掛載” 到某個子目錄下,然后通過那個子目錄來訪問的。這個例子中, 通常硬盤會對應 虛擬文件系統(tǒng)中的/dev/sda(如有多個硬盤,則為 /dev/sda, /dev/sdb, ……, 按字母遞增), 其三個分區(qū)對應 /dev/sda1, /dev/sda2,/dev/sda3(多個分區(qū)按數(shù)字遞增,不同硬盤的分區(qū),對應為 /dev/sdb1, /dev/sdb2 等等), 默認硬盤各個分區(qū)會被掛載到 虛擬文件系統(tǒng)系統(tǒng)中類似 /mnt/sda1/, /mnt/sda2/, /mnt/sda3/ 的目錄(在 Linux 又叫掛載點)中,在/etc/fstab 文件中,我們可以找到分區(qū)文件和掛載點的對應關系描述。這樣,硬盤相應的分區(qū)就做為整個 虛擬文件系統(tǒng)根目錄下的一顆子樹,反映到了子目錄(掛載點)上,子目錄中的內容就對應分區(qū)中的數(shù)據(jù)。

假設訪問上述硬盤第三個分區(qū) dir1 目錄中的文件 test.file

Window 系統(tǒng)上的路徑:E:\dir1\test.file

Linux 系統(tǒng)上的路徑:/mnt/sda3/dir1/test.file

再有,假設用戶安裝和卸載一個程序 firefox :

  • Windows 系統(tǒng)中

指定或不指定安裝路徑類似,程序的安裝目錄會在 C:\Program Files\Firefox 類似的目錄中,或指定的安裝路徑中; 可執(zhí)行文件一般在程序的安裝路徑;依賴的內部庫、第三方庫、和系統(tǒng)庫可能在安裝路徑中,也可能在 C:\Windows\System32, 或 C:\Windows\system 等類似的路徑;而程序訪問期間的系統(tǒng)和用戶配置文件和產生的輸入輸出文件,可能會在安裝路徑配置中,或者在 C:\Windows\ 下的某些文件中(比如注冊表數(shù)據(jù)庫文件、用戶目錄等),這就不一定了。而且不同的系統(tǒng)版本,應用程序版本下,這些目錄的具體名稱和路徑可能會有所不同。卸載的時候由于不確定哪些地方安裝了什么內容,很容易造成文件刪除補全,遺留系統(tǒng)垃圾等現(xiàn)象,造成系統(tǒng)越來越癱腫。

  • Linux 系統(tǒng)中

如果不指定安裝路徑,所有程序的可執(zhí)行文件在 /usr/bin 中, 全局配置文件在 /etc/firefox 類似的目錄, 用戶配置文件一般在用戶主目錄的 .firefox 的路徑下 (用戶主目錄路徑名稱統(tǒng)一格式為 /home/<username>) ,依賴的內部庫和第三方庫在 /usr/lib, 系統(tǒng)庫在 /lib 下, 數(shù)據(jù)文件一般就在用戶主目錄下。 如果指定安裝目錄,那么所有內部庫和可執(zhí)行程序,全局配置文件,會在 < 安裝路徑> 下的 bin, lib, etc 子目錄下,其它文件一般和默認情況相同。卸載程序之時,只需在對應目錄中,將可執(zhí)行文件、內部庫、配置文件、數(shù)據(jù)文件刪除即可,基本沒有不確定是否遺留垃圾文件的問題。這些都是大多數(shù)應用程序安裝的和訪問的默認策略,就像是不成文的業(yè)界標準,不排除有個別程序不安裝這種策略部署應用,但是 Linux 用戶帶來 “麻煩“ 的應用,早晚也會被淘汰,不可能會流行在 Linux 系統(tǒng)中,這樣,自然的,好的應用都保存在 Linux 系統(tǒng)中并逐漸流行起來,還不會破壞系統(tǒng)結構。

可見, Linux 文件的存放和組織明顯方式更高效,層次更分明。

優(yōu)缺點

基于上述內容,Windows 和 Linux 文件系統(tǒng)的各有優(yōu)缺點分別如下。

  • Windows 系統(tǒng)優(yōu)點

優(yōu)點主要是用戶存放東西的位置比較自由,系統(tǒng)結構簡單便于新用戶上手。

  • Windows 系統(tǒng)缺點

缺點較多主要有:

1.目錄組織缺乏標準

由于對“系統(tǒng)文件”和“用戶文件”存放位置缺乏細致的規(guī)定,數(shù)據(jù)組織的方式顯得比較凌亂,并且兩種文件之間很容易相互干擾(例如數(shù)據(jù)文件可能存放在系統(tǒng)區(qū)域給系統(tǒng)帶來垃圾文件等)。

2.用戶的使用經(jīng)驗對系統(tǒng)的使用效率影響很大

一般來說,我們使用 Windows 時候合理使用分區(qū)會提升的系統(tǒng)效率。例如根據(jù)需要設置合理的系統(tǒng)分區(qū)(假設為 C 分區(qū)),盡量少往 C 盤存放數(shù)據(jù)文件,根據(jù)具體情況可以將一些 “重要并且常用的” 程序安裝在 C 分區(qū),隨時保持系統(tǒng)目錄的清潔和大小助于提升系統(tǒng)的運行速度,用戶安裝的一般軟件盡量不要安裝在 C 盤,安裝軟件時候指定的位置***采用默認標準目錄名稱(例如 X:\Program Files 目錄,這里 X 表示盤符而不要自己定義一些奇怪名字的目錄,這樣便于軟件的維護等等。

3.共享不便

Windows 上有經(jīng)驗的用戶們會將自己的目錄結構組織好,但是每個用戶組織自己內容的方式是不一樣的,所以他的機器上哪里存放了什么內容,別人很難知道,為共享帶來了麻煩。

  • Linux 系統(tǒng)缺點

最開始 虛擬文件系統(tǒng)中的每個子目錄的功能是事先規(guī)定好了的,我們需要事先知道那些目錄存放哪些文件,然后在相應的位置中創(chuàng)建自己的內容,這也是 Linux 系統(tǒng)入門門檻高的一個原因。當然,最開始的新手,也完全可以無視這一點,可以像 Windows 那樣隨意地創(chuàng)建目錄和文件(盡管不推薦這么做)。

實際上最開始的目錄也不多,主要就那么幾個,花不了多長時間就會明白它們的作用的,而明白這些作用之后帶來的好處,遠不止付出那么多(本文后面 常用的重要目錄 (See section 1.2.1) 會著重對此進行介紹)。

  • Linux 系統(tǒng)優(yōu)點

這里只說幾個優(yōu)點:

1.目錄結構反映系統(tǒng)運行機理

當我們了解了這些目錄的功能之后,我們對整個 Linux 操作系統(tǒng)的運行機理也會有一個大致的了解。

2.結構清晰避免邏輯混亂

這樣的目錄結構,有助于我們以一種高效的方式組織自己的數(shù)據(jù),分類清晰并且不會對系統(tǒng)運行有任何影響,規(guī)定了最開始每個目錄的功能,并沒有限制我們的自由,因為我們知道我們可以在哪里創(chuàng)建自己的子目錄并且在子目錄中任意創(chuàng)建自己的文件。

3.組織規(guī)范便于共享

由于目錄具有統(tǒng)一的組織結構,所以 Linux 上面的用戶在共享數(shù)據(jù)的時候,能夠很容易地猜測出他所需要的數(shù)據(jù)大致存放在什么位置,同時也不會影響到私有數(shù)據(jù)的保密性,畢竟具體來說,怎么存放自己的私有數(shù)據(jù),那是用戶自己決定的。

Linux 上面的虛擬文件系統(tǒng)目錄組織

實質上,我們啟動系統(tǒng)所看到的 “根目錄” ,邏輯上是 Linux 虛擬文件系統(tǒng)的根目錄中的一個子目錄,我們看不到除了這個 “根目錄” 以外的其他的目錄,那些目錄和操作系統(tǒng)的具體實現(xiàn)相關是被操作系統(tǒng)內核隱藏起來了的,所以這里就介紹我們所能看到的文件系統(tǒng)中的 “根目錄” 的各個子目錄中的作用吧。

在 Linux 文件系統(tǒng)中的每一個子目錄都有特定的目的和用途。一般都是根據(jù) FHS 標準定義一個正式的文件系統(tǒng)結構的,這個標準規(guī)定了哪些目錄應該哪些作用。這里我們先介紹一些日常經(jīng)常用到的目錄,然后給出 FHS 相關的內容。

常用的重要目錄

這里,根據(jù)本人的使用經(jīng)驗,給出比較常見重要的一些目錄,最開始我們對它們有所了解就可以了。隨著對 Linux 使用的經(jīng)驗的加深,我們會了解越來越多的目錄。對目錄的功能知道得越多,我們對 Linux 系統(tǒng)的工 p 作原理就理解的越深刻,理解操作系統(tǒng)的工作原理,更助于我們更為規(guī)范地使用和理解系統(tǒng)中每個目錄存在的意義,直至***幾乎知道系統(tǒng)中的每個文件……

/ 根目錄

包含了幾乎所的文件目錄。相當于中央系統(tǒng)。進入的最簡單方法是:cd /。

/boot 引導程序,內核等存放的目錄

這個目錄,包括了在引導過程中所必需的文件,引導程序的相關文件(例如 grub , lilo 以及相應的配置文件)以及 Linux 操作系統(tǒng)內核相關文件(例如 vmlinuz 等)一般都存放在這里。在最開始的啟動階段,通過引導程序將內核加載到內存,完成內核的啟動(這個時候, 虛擬文件系統(tǒng)還不存在,加載的內核雖然是從硬盤讀取的,但是沒經(jīng)過 Linux 的 虛擬文件系統(tǒng),這是比較底層的東西來實現(xiàn)的)。然后內核自己創(chuàng)建好 虛擬文件系統(tǒng),并且從 虛擬文件系統(tǒng)的其他子目錄中(例如 /sbin 和 /etc)加載需要在開機啟動的其他程序或者服務或者特定的動作(部分可以由用戶自己在相應的目錄中修改相應的文件來配制)。如果我們的機器中包含多個操作系統(tǒng),那么可以通過修改這個目錄中的某個配置文件(例如 grub.conf)來調整啟動的默認操作系統(tǒng),系統(tǒng)啟動的擇菜單,以及啟動延遲等參數(shù)。

/sbin 超級用戶可以使用的命令的存放目錄

存放大多涉及系統(tǒng)管理的命令(例如引導系統(tǒng)的 init 程序),是超級權限用戶 root 的可執(zhí)行命令存放地,普通用戶無權限執(zhí)行這個目錄下的命令(但是有時普通用戶也可能會用到)。這個目錄和 /usr/sbin ,/usr/X11R6/sbin 或/usr/local/sbin 等目錄是相似的,我們要記住,凡是目錄 sbin 中包含的都是 root 權限才能執(zhí)行的,這樣就行了。后面會具體區(qū)分。

/bin 普通用戶可以使用的命令的存放目錄

系統(tǒng)所需要的那些命令位于此目錄,比如 ls 、 cp 、 mkdir 等命令;類似的目錄還 /usr/bin , /usr/local/bin 等等。這個目錄中的文件都是可執(zhí)行的、普通用戶都可以使用的命令。作為基礎系統(tǒng)所需要的最基礎的命令就是放在這里。

/lib 根目錄下的所程序的共享庫目錄

此目錄下包含系統(tǒng)引導和在根用戶執(zhí)行命令時候所必需用到的共享庫。做個不太好但是比較形象的比喻,點類似于 Windows 上面的 system32 目錄。按理說,這里存放的文件應該是 /bin 目錄下程序所需要的庫文件的存放地,也不排除一些例外的情況。類似的目錄還 /usr/lib , /usr/local/lib 等等。

/dev 設備文件目錄

在 Linux 中設備都是以文件形式出現(xiàn),這里的設備可以是硬盤,鍵盤,鼠標,網(wǎng)卡,終端,等設備,通過訪問這些文件可以訪問到相應的設備。設備文件可以使用 mknod 命令來創(chuàng)建,具體參見相應的命令;而為了將對這些設備文件的訪問轉化為對設備的訪問,需要向相應的設備提供設備驅動模塊(一般將設備驅動編譯之后,生成的結果是一個*.ko 類型的二進制文件),在內核啟動之后,再通過 insmod 等命令加載相應的設備驅動之后,我們就可以通過設備文件來訪問設備了。一般來說,想要 Linux 系統(tǒng)支持某個設備,只需要三個東西:相應的硬件設備,支持硬件的驅動模塊,以及相應的設備文件。

/home 普通用戶的家目錄(或 $HOME 目錄、主目錄)

在 Linux 機器上,用戶主目錄通常直接或間接地置在此目錄下。其結構通常由本地機的管理員來決定。通常而言,系統(tǒng)的每個用戶都有自己的家目錄,目錄以用戶名作為名字存放在 /home 下面(例如 quietheart 用戶,其家目錄的名字為 /home/quietheart)。該目錄中保存了絕大多數(shù)的用戶文件 (用戶自己的配置文件,定制文件,文檔,數(shù)據(jù)等), root 用戶除外(參見后面的 /root 目錄)。由于這個目錄包含了用戶實際的數(shù)據(jù),通常系統(tǒng)管理員為這個目錄單獨掛載一個獨立的磁盤分區(qū),這樣這個目錄的文件系統(tǒng)格式就可能和其他目錄不一樣了(盡管表面上看,這個目錄還是屬于根目錄的一棵子樹上),將系統(tǒng)文件和數(shù)據(jù)文件分開存放,有利于維護。

/root 用戶 root 的 $HOME 目錄

系統(tǒng)管理員 (就是 root 用戶或超級用戶) 的主目錄比較特殊,不存放在 /home 中,而是直接放在 /root 目錄下了。

/etc 全局的配置文件存放目錄

系統(tǒng)和程序一般都可以通過修改相應的配置文件,來進行配置。例如,要配置系統(tǒng)開機的時候啟動那些程序,配置某個程序啟動的時候顯示什么樣的風格等等。通常這些配置文件都集中存放在 /etc 目錄中,所以想要配置什么東西的話,可以在 /etc 下面尋找我們可能需要修改的文件。一些大型套件,如 X11 ,在 /etc 下它們自己的子目錄。系統(tǒng)配置文件可以放在這里或在 /usr/etc 。 不過所有程序總是在 /etc 目錄下查找所需的配置文件,你也可以將這些文件鏈接到目錄 /usr/etc 。另外,還一個需要注意的常見現(xiàn)象就是,當某個程序在某個用戶下運行的時候,可能會在該用戶的家目錄中生成一個配置文件(一般這個文件最開始就是 /etc 下相應配置文件的拷貝,存放相應于“當前用戶”的配置),這樣當前用戶可以通過配置這個家目錄的配置文件,來改變程序的行為,并且這個行為只是該用戶特有的。原因就是:一般來說一個程序啟動,如果需要讀取一些配置文件的話,它會首先讀取當前用戶家目錄的配置文件,如果存在就使用;如果不存在它就到 /etc 下讀取全局的配置文件進而啟動程序。就是這個配置文件不自動生成,我們手動在自己的家目錄中創(chuàng)建一個文件的話,也有許多程序會首先讀取到這個家目錄的文件并且以它的配置作為啟動的選項(例如我們可以在家目錄中創(chuàng)建 vim 程序的配置文件 .vimrc ,來配置自己的 vim 程序)。

/usr 這個目錄中包含了命令庫文件和在通常操作中不會修改的文件

這個目錄對于系統(tǒng)來說也是一個非常重要的目錄,其地位類似 Windows 上面的 Program Files 目錄(請原諒我可能這樣做比較不太恰當^_^)。安裝程序的時候,默認就是安裝在此文件內部某個子文件夾內。輸入命令后系統(tǒng)默認執(zhí)行 /usr/bin 下的程序(當然,前提是這個目錄的路徑已經(jīng)被添加到了系統(tǒng)的環(huán)境變量中)。此目錄通常也會掛載一個獨立的磁盤分區(qū),它應保存共享只讀類文件,這樣它可以被運行 Linux 的不同主機掛載。

/usr/lib 目標庫文件,包括動態(tài)連接庫加上一些通常不是直接調用的可執(zhí)行文件的存放位置

這個目錄功能類似 /lib 目錄,理說,這里存放的文件應該是 /bin 目錄下程序所需要的庫文件的存放地,也不排除一些例外的情況。

/usr/bin 一般使用者使用并且不是系統(tǒng)自檢等所必需可執(zhí)行文件的目錄

此目錄相當于根文件系統(tǒng)下的對應目錄(/bin),非啟動系統(tǒng),非修復系統(tǒng)以及非本地安裝的程序一般都放在此目錄下。

/usr/sbin 管理員使用的非系統(tǒng)必須的可執(zhí)行文件存放目錄

此目錄相當于根文件系統(tǒng)下的對應目錄(/sbin),保存系統(tǒng)管理程序的二進制文件,并且這些文件不是系統(tǒng)啟動或文件系統(tǒng)掛載 /usr 目錄或修復系統(tǒng)所必需的。

/usr/share 存放共享文件的目錄

在此目錄下不同的子目錄中保存了同一個操作系統(tǒng)在不同構架下工作時特定應用程序的共享數(shù)據(jù) (例如程序文檔信息)。使用者可以找到通常放在 /usr/doc 或 /usr/lib 或 /usr/man 目錄下的這些類似數(shù)據(jù)。

/usr/include C 程序語言編譯使用的頭文件

Linux 下開發(fā)和編譯應用程序所需要的頭文件一般都存放在這里,通過頭文件來使用某些庫函數(shù)。默認來說這個路徑被添加到了環(huán)境變量中,這樣編譯開發(fā)程序的時候編譯器會自動搜索這個路徑,從中找到你的程序中可能包含的頭文件。

/usr/local 安裝本地程序的一般默認路徑

當我們下載一個程序源代碼,編譯并且安裝的時候,如果不特別指定安裝的程序路徑,那么默認會將程序相關的文件安裝到這個目錄的對應目錄下。例如,安裝的程序可執(zhí)行文件被安裝(安裝實質就是復制)到了 /usr/local/bin 下面,此程序(可執(zhí)行文件)所需要依賴的庫文件被安裝到了 /usr/local/lib 目錄下,被安裝的軟件如果是某個開發(fā)庫(例如 Qt , Gtk 等)那么相應的頭文件可能就被安裝到了 /usr/local/include 中等等。也就是說,這個目錄存放的內容,一般都是我們后來自己安裝的軟件的默認路徑,如果擇了這個默認路徑作為軟件的安裝路徑,被安裝的軟件的所文件都限制在這個目錄中,其中的子目錄就相應于根目錄的子目錄。

/proc 特殊文件目錄

這個目錄采用一種特殊的文件系統(tǒng)格式(proc 格式),內核支持這種格式。其中包含了全部虛擬文件。它們并不保存在磁盤中,也不占據(jù)磁盤空間 (盡管命令 ls -c 會顯示它們的大小)。當您查看它們時,您實際上看到的是內存里的信息,這些文件助于我們了解系統(tǒng)內部信息。例如:

├1/ 關于進程 1 的信息目錄。每個進程在/proc 下一個名為其進程號的目錄。

├cpuinfo 處理器信息,如類型、制造商、型號和性能。

├devices 當前運行的核心配置的設備驅動的列表。

├dma 顯示當前使用的 DMA 通道。

├filesystems 核心配置的文件系統(tǒng)。

├interrupts 顯示使用的中斷,and how many of each there have been.

├ioports 當前使用的 I/O 端口。

├kcore 系統(tǒng)物理內存映象。與物理內存大小一樣,但實際不占這么多內存;

├kmsg 核心輸出的消息。也被送到 syslog 。

├ksyms 核心符號表。

├loadavg 系統(tǒng)”平均負載”;3 個沒意義的指示器指出系統(tǒng)當前的工作量。

├m(xù)eminfo 存儲器使用信息,包括物理內存和 swap。

├m(xù)odules 當前加載了哪些核心模塊。

├net 網(wǎng)絡協(xié)議狀態(tài)信息。

├self 到查看/proc 的程序的進程目錄的符號連接。

├stat 系統(tǒng)的不同狀態(tài)

├uptime 系統(tǒng)啟動的時間長度。

└version 核心版本。
  • /opt 可擇的文件目錄

這個目錄表示的是可擇的意思,些自定義軟件包或者第方工具,就可以安裝在這里。比如在 Fedora Core 5.0 中,OpenOffice 就是安裝在這里。些我們自己編譯的軟件包,就可以安裝在這個目錄中;通過源碼包安裝的軟件,可以把它們的安裝路徑設置成 /opt 這樣來安裝。這個目錄的作用一點類似 /usr/local 。

  • /mnt 臨時掛載目錄

這個目錄一般是用于存放掛載儲存設備的掛載目錄的,比如磁盤,光驅,網(wǎng)絡文件系統(tǒng)等,當我們需要掛載某個磁盤設備的時候,可以把磁盤設備掛載到這個目錄上去,這樣我們可以直接通過訪問這個目錄來訪問那個磁盤了。一般來說,我們***在 /mnt 目錄下面多建立幾個子目錄,掛載的時候掛載到這些子目錄上面,因為通常我們可能不僅僅是掛載一個設備吧?

  • /media 掛載的媒體設備目錄

掛載的媒體設備目錄,一般外部設備掛載到這里,例如 cdrom 等。比如我們插入一個 U 盤,我們一般會發(fā)現(xiàn), Linux 自動在這個目錄下建立一個 disk 目錄,然后把 U 盤掛載到這個 disk 目錄上,通過訪問這個 disk 來訪問 U 盤。

  • /var 內容經(jīng)常變化的目錄

此目錄下文件的大小可能會改變,如緩沖文件,日志文件,緩存文件,等一般都存放在這里。

  • /tmp 臨時文件目錄

該目錄存放系統(tǒng)中的一些臨時文件,文件可能會被系統(tǒng)自動清空。的系統(tǒng)直接把 tmpfs 類型的文件系統(tǒng)掛載到這個目錄上, tmpfs 文件系統(tǒng)由 Linux 內核支持,在這個文件系統(tǒng)中的數(shù)據(jù),實際上是內存中的,由于內存的數(shù)據(jù)斷電易失,當系統(tǒng)重新啟動的時候我們就會發(fā)現(xiàn)這個目錄被清空了。

  • /lost+found 恢復文件存放的位置

當系統(tǒng)崩潰的時候,在系統(tǒng)修復過程中需要恢復的文件,可能就會在這里被找到了,這個目錄一般為空。

以上目錄,是最常見的重要目錄。其中,有些目錄初學者容易混淆,這里簡單區(qū)分一下:

1./bin , /sbin 與 /usr/bin , /usr/sbin

  • /bin 一般存放對于用戶和系統(tǒng)來說“必須”的程序(二進制文件)。

  • /sbin 一般存放用于系統(tǒng)管理的“必需”的程序(二進制文件),一般普通用戶不會使用,根用戶使用。

  • /usr/bin 一般存放的只是對用戶和系統(tǒng)來說“不是必需的”程序(二進制文件)。

  • /usr/sbin 一般存放用于系統(tǒng)管理的系統(tǒng)管理的不是必需的程序(二進制文件)。

2./lib 與 /usr/lib

  • /lib 和 /usr/lib 的區(qū)別類似 /bin, /sbin 與 /usr/bin, /usr/sbin 。

  • /lib 一般存放對于用戶和系統(tǒng)來說“必須”的庫(二進制文件)。

  • /usr/lib 一般存放的只是對用戶和系統(tǒng)來說“不是必需的”庫(二進制文件)。

其他還一些目錄例如: /home/user/bin, /home/user/opt, /home/user/etc, /usr/local/etc 等等,其作用都是類似于 /etc, /bin 等目錄的,可能只是層次概念不同了,使用 Linux 時間長了,會逐漸體會到其中的含義。

當然,我們可以無視這些目錄,像使用 Windows 那樣自由的,不管啥文件,想往哪存就往哪存,還是那句話,使用 Linux 時間長了,會逐漸體會到其中的含義,到時候也許我們想要亂來都不行了呢。^_^

對文件系統(tǒng)目錄的分類標準

在大多數(shù) Linux 系統(tǒng)上面,我們可以使用一個命令: man hier ,通過這個命令的輸出,就知道“根目錄”中所子目錄的作用了。這個命令含義我不多說了,總之這里的 hier 就是對 Linux 文件系統(tǒng)中各級目錄的標準功能,是一個大家都約定俗成了的東西。想要了解每個目錄更詳細的信息,需要仔細參考 man hier 的輸出。下面就是一個比較簡短的中文描述的對文件系統(tǒng)目錄分類的 FHS 標準,也就是對 man hier 的簡單翻譯。

 

NAME 名稱
hier - 文件系統(tǒng)描述
 DESCRIPTION 描述

一個典型的 Linux 系統(tǒng)具以下幾個目錄結構:

/ 根目錄,是所目錄樹開始的地方。
/bin 此目錄下包括了單用戶方式及系統(tǒng)啟動或修復所用到的所執(zhí)行程序。
/boot 包括了引導程序的靜態(tài)文件。此目錄下包括了在引導過程中所必需的文件。
系統(tǒng)裝載程序及配制文件在 /sbin 和 /etc 目錄中找到。
/dev 對應物理設備的指定文件或驅動程序。參見 mknod(1)。

/dos 如果 MS-DOS 和 Linux 共存于一臺計算機時,這里通常用于存放 DOS文件系統(tǒng)。
/etc 用于存放本地機的配置文件。一些大型套件,如 X11,在 /etc 下它們自己的子目錄。
系統(tǒng)配置文件可以放在這里或在 /usr/etc。 不過所程序總是在 /etc 目錄下查找所需
的配置文件,你也可以將這些文件鏈接到目錄 /usr/etc.

/etc/skel 當建立一個新用戶賬號時,此目錄下的文件通常被復制到用戶的主目錄下。

/etc/X11X11 window system 所需的配置文件。

/home 在 Linux 機器上,用戶主目錄通常直接或間接地置在此目錄下。其結構通常
由本地機的管理員來決定。

/lib 此目錄下包含系統(tǒng)引導和在根用戶執(zhí)行命令所必需用到的共享庫。

/mnt 掛載臨時文件系統(tǒng)的掛載點。

/proc 這是提供運行過程和核心文件系統(tǒng) proc 掛載點。這一”偽”文件系統(tǒng)在以下章節(jié)中
詳細敘述 proc(5)。

/sbin 類似于 /bin 此目錄保存了系統(tǒng)引導所需的命令,但這些命令一般使用者不能執(zhí)行。

/tmp 此目錄用于保存臨時文件,臨時文件在日常維護或在系統(tǒng)啟動時無需通知便可刪除

/usr 此目錄通常用于從一個獨立的分區(qū)上掛載文件。它應保存共享只讀類文件,這樣它可以
被運行 Linux 的不同主機掛載。

/usr/X11R6 X-Window 系統(tǒng) Version 11 release 6.

/usr/X11R6/bin X-Windows 系統(tǒng)使用的二進制文件;通常是在對更傳統(tǒng)的 
 
/usr/bin/X11 中文件的符號連接。

/usr/X11R6/lib 保存與 X-Windows 系統(tǒng)關數(shù)據(jù)文件。

/usr/X11R6/lib/X11 此目錄保存與運行 X-Windows 系統(tǒng)關其他文件。通常是對來自
/usr/lib/X11 中文件的符號連接。

/usr/X11R6/include/X11 此目錄保存包括使用 X11 窗口系統(tǒng)進行編譯程序所需的文件。
通常是對來自 /usr/lib/X11 中文件的符號連接。

/usr/bin 這是執(zhí)行程序的主要目錄,其中的絕大多數(shù)為一般使用者使用,除了那些啟動
系統(tǒng)或修復系統(tǒng)或不是本地安裝的程序一般都放在此目錄下。

/usr/bin/X11
X11 執(zhí)行文件放置的地方;在 Linux 系統(tǒng)中,它通常是對 /usr/X11R6/bin. 符號連
接表/usr/dict此目錄保存拼寫檢查器所使用的詞匯表文件。

/usr/doc此目錄下應可以找到那些已安裝的軟件文件。

/usr/etc此目錄可用來那些存放整個網(wǎng)共享的配置文件。然而那可執(zhí)行命令指向總是使用
參照使用 /etc 目錄下的文件。 /etc 目錄下連接文件應指向 /usr/etc. 目錄下適當?shù)奈?
件。

/usr/include
C 程序語言編譯使用的 Include”包括”文件。

/usr/include/X11
C 程序語言編譯和 X-Windows 系統(tǒng)使用的 Include”包括”文件。它通常中指向
/usr/X11R6/include/X11. 符號連接表。

/usr/include/asm申明匯編函數(shù)的 Include”包括”文件,它通常是指向 
/usr/src/linux/include/asm 目錄的符號連接/usr/include/linux包含系統(tǒng)變更的信息
通常是指向 /usr/src/linux/include/linux 目錄的符號連接表,來獲得操作系統(tǒng)特定信息。
(注:使用者應在此自行包含那些保證自己開發(fā)的程序正常運行所需的 libc 函數(shù)庫。
不管怎樣,Linux 核心系統(tǒng)不是設計用來執(zhí)行直接運行用戶程序的,它并不知道用戶程序
需要使用哪個版本的 libc 庫 。如果你隨意將 /usr/include/asm 和 /usr/include/linux
 指向一個系統(tǒng)核心,系統(tǒng)很可能崩潰。Debian 系統(tǒng)不這么做。它使用 libc*-dev 運行包
中提供的核心系統(tǒng)標識,以保證啟動所正確的文件。)
/usr/include/g++GNU C++編譯程序所使用的 Include”包括”文件。

/usr/lib目標庫文件,包括動態(tài)連接庫加上一些通常不是直接調用的可執(zhí)行文件案。
一些復雜的程序可能在此占用整個子目錄。

/usr/lib/X11存放 X 系統(tǒng)數(shù)據(jù)文件及系統(tǒng)配置文件的地方。 Linux 中通常是指
向 /usr/X11R6/lib/X11 目錄的符號連接表。

/usr/lib/gcc-lib
GNU C 編譯程序所使用的可執(zhí)行文件案和”包括”文件。 gcc(1).

/usr/lib/groff
GNU groff 文件格式系統(tǒng)所使用的文件。

/usr/lib/uucp
uucp(1) 所使用的文件。

/usr/lib/zoneinfo關時區(qū)信息文件文件。

/usr/local安裝在本地執(zhí)行程序的地方。

/usr/local/bin在此地放置本地執(zhí)行程序的二進制文件。

/usr/local/doc放置本地文件。

/usr/local/etc安裝在本地程序的配置文件。

/usr/local/lib安裝在本地程序的庫文件。

/usr/local/info安裝在本地程序關信息文件。

/usr/local/man安裝在本地程序使用手冊。

/usr/local/sbin安裝在本地的系統(tǒng)管理程序。

/usr/local/src安裝在本地程序的原始碼。

/usr/man手冊頁通常放在此目錄,或相關子目錄下。

/usr/man//man[1-9]此目錄在指定的地方以原始碼形式存放手冊頁。系統(tǒng)在所的手冊頁中
使用自己獨特的語言及代碼集,可能會省略 substring 子字符串。

/usr/sbin此目錄保存系統(tǒng)管理程序的二進制碼,這些文件不是系統(tǒng)啟動或文件系統(tǒng)掛載 
 
/usr 目錄或修復系統(tǒng)所必需的。

/usr/share在此目錄下不同的子目錄中保存了同一個操作系統(tǒng)在不同構架下工作時特定應
用程序的共享數(shù)據(jù)。使用者可以找到通常放在 /usr/doc 或 /usr/lib 或 /usr/man 目錄
下的這些數(shù)據(jù)。/usr/src系統(tǒng)不同組成部份的源文件包括參考數(shù)據(jù)報。不要將你自己與項
目關的文件放這里,因為在安裝軟件外,/usr 下的文件屬性除通常設為只讀。

/usr/src/linux系統(tǒng)核心資源通常拆包安裝于此。這是系統(tǒng)中重要的一環(huán),因
為 /usr/include/linux 符號連接表指向此目錄。你應當使用其他目錄來來編譯
建立新核心。

/usr/tmp此目錄不再使用了。它應指向目錄 /var/tmp。 這個鏈接只是出于系統(tǒng)兼
容的目的,一般不再使用。/var此目錄下文件的大小可能會改變,如緩沖文件可日
志文件。

/var/adm此目錄為 /var/log 甩替代,通常是指向 /var/log 的符號連接表。

/var/backups此目錄用來存放重要系統(tǒng)文件的后備文件/var/catman/cat[1-9] 
or /var/cache/man/cat[1-9]此目錄存儲根據(jù)手冊分類預先格式化的參考手冊頁。
(這些參考手冊頁是相互獨立的)

/var/lock此目錄存儲鎖定文件。依據(jù)命名習慣,設備鎖定文件是 LCKxxxxx xxxxx 
與在文件系統(tǒng)中該設備名相同,使用的格式是 HDU UUCP 鎖定文件,例如包含進程
標識 PID 的鎖定文件是一個 10 字節(jié)的 ASCII 格式的數(shù)字,后面跟一個換行符。

/var/log各種日志文件。/var/preserve這是 vi(1) 存放正在編輯中的文件,以便
以后可以恢復。/var/run運行時的變量文件,如存放進程標識和登入使用者信息的
文件。 (utmp) 此目錄下文件在系統(tǒng)啟動時被自動清除。

/var/spool各種程序產生的緩沖或排除等待的文件

/var/spool/at
at(1) 的作業(yè)存緩區(qū)

/var/spool/cron
cron(1) 的作業(yè)存緩區(qū)

/var/spool/lpd打印緩存文件。

/var/spool/mail使用者郵箱。

/var/spool/smail存放 smail(1) 郵件發(fā)送程序的緩沖文件。

/var/spool/news新聞子系統(tǒng)的緩沖目錄

/var/spool/uucp
uucp(1) 的緩沖文件

/var/tmp類似 /tmp, 此目錄保存未指定持續(xù)時間的臨時文件。

 

作者簡介

呂凱,TPV 資深主任工程師,大連理工大學碩士。關注軟件開發(fā)、系統(tǒng)運維、內容管理、行動管理等領域,喜歡計數(shù)寫作及分享。 

責任編輯:龐桂玉 來源: 嵌入式Linux中文站
相關推薦

2010-02-25 14:50:59

Linux文件系統(tǒng)

2009-03-18 08:50:59

LinuxWindows系統(tǒng)目錄

2011-01-11 10:29:35

Linux文件

2014-08-22 15:50:52

WindowsLinux

2009-12-22 09:43:13

Linux文件系統(tǒng)組織

2018-09-29 11:02:52

WindowsLinux互訪

2011-01-13 13:18:38

Linux網(wǎng)絡文件

2010-04-16 15:03:18

Linux 文件系統(tǒng)

2010-03-03 13:44:50

2009-05-31 16:19:51

LinuxWin結構

2011-01-13 14:10:30

Linux文件系統(tǒng)

2010-03-16 14:15:37

Linux系統(tǒng)

2020-07-22 14:53:06

Linux系統(tǒng)虛擬文件

2009-04-08 15:35:18

LinuxWindows文件系統(tǒng)

2013-06-18 14:00:59

HDFS分布式文件系統(tǒng)

2017-08-14 13:35:36

Linux共享內存tmpfs文件系統(tǒng)

2021-06-06 16:55:22

Linux文件系統(tǒng)

2021-04-12 05:44:44

Linux文件系統(tǒng)

2009-12-22 13:50:00

2017-04-25 15:50:02

sparse傳輸處理
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产在线区| 免费在线看a | 91精品国产91久久久久久 | 欧美综合国产精品久久丁香 | 看一级黄色毛片 | 黄色一级特级片 | 久久成人18免费网站 | 日韩欧美国产精品 | 黄网站在线观看 | 在线观看国产视频 | 国产一区中文字幕 | 国产一区二区三区 | 亚洲欧美精品久久 | 99免费精品 | 亚洲国产二区 | 国产美女一区二区 | 国产三区在线观看视频 | 日韩欧美亚洲 | 一区二区三区国产好 | 亚洲欧美自拍偷拍视频 | 国产精品一二三区在线观看 | 91精品国产一区二区三区香蕉 | 精品国产一区二区三区性色av | 在线激情视频 | 999精品视频 | m豆传媒在线链接观看 | 国产人成在线观看 | 中文字幕在线二区 | 色女人天堂 | 欧美一级黑人aaaaaaa做受 | 激情一区二区三区 | 免费一级毛片 | 精品久久久久久久久久久久久 | 天堂资源 | 日本精a在线观看 | 国产有码| 中文字幕亚洲一区二区三区 | 精品国产一区二区国模嫣然 | 亚洲精品成人 | 亚州无限乱码 | 国产精品久久亚洲7777 |