自慰套教室~女子全员妊娠,精品无码国产自产拍在线观看蜜桃,亚洲国产精品成人精品无码区,久别的草原在线看视频免费

集團站切換校區

驗證碼已發送,請查收短信

復制成功
微信號:togogoi
添加微信好友, 詳細了解課程
已復制成功,如果自動跳轉微信失敗,請前往微信添加好友
打開微信
圖標

業界新聞

當前位置:首頁 > >業界新聞 > >

必看!深入理解linux系統的目錄結構就靠本文了

發布時間: 2017-07-17 13:11:02

必看!深入理解linux系統的目錄結構就靠本文了

Linux和Windows操作系統中的文件系統些不同,在學習使用linux之前,能夠了解這個不同之處助于后續的學習。本文先對Windows和Linux上面文件系統的一些概念進行區分,然后介紹一些Linux文件系統相關的原理,最后較為詳細地介紹了Linux系統的目錄結構。

一、Linux和Windows文件系統

下面分別簡單介紹一下啟動Windows和Linux之后,它們是怎樣看待自己世界的。著重介紹Linux。

1、Window上面的文件系統

Windows系統中一切東西都是存放在硬盤上的。啟動系統后,先硬盤,再硬盤上的分區和每個分區所對應的文件系統,最后是存放在某個分區特定的文件系統中的文件,也就是說,Windows是通過“某個硬盤-硬盤上的某個分區-分區上的特定文件系統-特定文件系統中的文件”這樣的順序來訪問到一個文件的。具體點說,假設我們的機器上面一個硬盤,硬盤分為個區,那么我們啟動系統之后就會看到C,D,E個分區(也就是我們啟動系統后看到的”C”盤,”D”盤等),每個分區可以被格式化為各自不同的文件系統(例如NTFS格式,FAT32格式等,文件系統的基本功能就是為了存放文件的,不同文件系統區別一般在于管理其中存放的文件的功能的強弱,分區被格式化成指定格式的文件系統之后,就可以存放任何文件和目錄了。這里,我們可以把文件大體分為兩種:系統文件和用戶文件。一般來說系統文件(例如Windows操作系統本身,一些系統程序,程序運行所需的庫文件,以及一些系統配置文件等)存放的默認位置在C盤,當然也可以在安裝時候指定在其他盤;其它用戶文件,包含用戶后來安裝的程序以及一些數據文件等,用戶可以把它們隨意存放在任意的分區。

這樣組織優點更缺點。優點是:用戶存放東西的位置比較自由,系統結構簡單便于新用戶上手。缺點很多這里只列出幾種:(1由于對“系統文件”和“用戶文件”存放位置缺乏細致的規定,數據組織的方式顯得比較凌亂,并且兩種文件之間很容易相互干擾(例如數據文。(2用戶的使用經驗對系統的使用效率影響很大。一般來說,我們使用Windows時候合理使用分區會提升的系統效率。例如根據需要設置合理的系統分區(C分區的大小,盡量少往C盤存放數據文件,根據具體情況可以將一些“重要并且常用的” 程序安裝在C分區,隨時保持系統目錄的清潔和大小助于提升系統的運行速度,用戶安裝的一般軟件盡量不要安裝在C盤,安裝軟件時候指定的位置最好采用默認標準目錄名稱(例如X:\Program Files目錄,這里X表示盤符而不要自己定義一些奇怪名字的目錄,這樣便于軟件的維護等等。(3共享不便。Windows上經驗的用戶們會將自己的目錄結構組織好,但是每個用戶組織自己內容的方式是不一樣的,所以他的機器上哪里存放了什么內容,別人很難知道,為共享帶來了麻煩。但是這些在Linux系統中,情況就所不同了。

2、Linux上面的文件系統

在Linux系統中,正好相反,一切東西都是存放在一個唯一的“虛擬文件系統”中的,這個“虛擬文件系統”是樹狀的結構以一個根目錄開始。啟動系統后,先有這個虛擬文件系統,再硬盤,再把某個硬盤的某個分區做為這個虛擬文件系統的一部分(用某個子目錄表示這個分區,再通過這個虛擬文件系統中對應硬盤分區的那個子目錄確定硬盤分區中的特定文件系統,最后的文件就存放在這個特定的文件系統中,也就是說,Linux系統是通過“虛擬文件系統-硬盤-硬盤上的分區-分區上的特定文件系統-特定文件系統中的文件”這樣的順序來訪問一個文件的。

可能對習慣了使用Windows的用戶來說,這樣的組織點不太適應,這里的“虛擬文件系統”,實質就是一顆目錄樹,最開始的目錄叫做根目錄,根目錄中又有每一級子目錄,或者文件,子目錄又有子子目錄和文件,其中每個子目錄都特定的功能這個功能是約定俗成了的后面會詳細說明……和Windows中把硬盤分成的C,D,E分區的概念不同了,Linux中最開始根本就沒有硬盤的概念,就只有一個純粹的“虛擬文件系統”。如果想要使用哪個硬盤的某個分區,就把那個分區“掛載”到某個子目錄之下,這樣硬盤中的分區,文件系統,目錄等內容就呈現到了那個子目錄里面。也就是說,在Linux中,我們使用硬盤中的數據,實際是先把硬盤“掛載”到某個子目錄下,然后通過那個子目錄來訪問硬盤的。硬盤中原的數據組織結構都反映到了子目錄上,成為了整個“虛擬文件系統”根目錄下的一顆子樹。

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

Linux這樣組織它的目錄結構,缺點當然更多的是優點。缺點就是,最開始“虛擬文件系統”中的每個子目錄的功能是事先規定好了的,我們需要事先知道那些目錄存放哪些文件,然后在相應的位置中創建自己的內容(當然最開始的新手,也可以像Windows那樣隨意地創建目錄和文件,實際上最開始的目錄也不多,主要就那么幾個,花不了多長時間就會明白它們的作用的,本文后面著重對這些目錄進行介紹。而它的優點這里只說幾點:(1當我們了解了這些目錄的功能之后,我們對整個Linux操作系統的運行機理也會一個大致的了解。(2助于我們以一種最高效的方式組織自己的數據,分類清晰并且不會對系統運行有任何影響,規定了最開始每個目錄的功能,并沒有限制我們的自由,因為我們知道我們可以在哪里創建自己的子目錄并且在子目錄中任意創建自己的文件。(3由于一個統一性的目錄組織結構,所以Linux上面的用戶在共享數據的時候,能夠很容易地猜測出他所需要的數據大致存放在什么位置,同時也不會影響到私有數據的保密性(怎么存放自己的私有數據,那是用戶自己決定的。

3、Linux文件系統在操作系統中的位置

在Linux系統中,主要兩個東西:“虛擬文件系統”中的文件和Linux操作系統內核本身。邏輯上可以認為前者屬于上層,后者在下層,前者基于后者,后者依賴前者而存在。

Linux把除了它本身(Linux操作系統內核以外的一切事物都看作是在“虛擬文件系統”中的文件了。無論是鍵盤,鼠標,數據,程序,CPU,內存,網卡……無論是硬件、軟件、數據還是內存中的東西,我們都可以在虛擬文件系統中的相應子目錄對他們進行訪問和操作,操作統一。而實現這些管理的幕后就是Linux操作系統內核本身:啟動Linux系統的時候,首先電腦把操作系統內核加載到內存中,內核本身提供了文件管理,設備管理,內存管理,CPU進程調度管理,網絡管理等功能,等內核運行起來之后,就在內存中建立起相應的“虛擬文件系統”,最后就是內核利用它提供的那些功能,來管理虛擬文件系統中的硬件軟件等各種資源了。

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

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

例如:

Window系統上的文件:D:\Program Files\PPStream\PPStream.exe

Linux系統上的文件:/usr/bin/screen

二、Linux上面的虛擬文件系統目錄組織

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

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

1、常用的重要目錄

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

/

根目錄。

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

/boot

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

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

/sbin

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

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

/bin

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

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

/lib

根目錄下的所程序的共享庫目錄。

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

/dev

設備文件目錄。

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

/home

普通用戶的家目錄($HOME目錄。

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

/root

用戶root的$HOME目錄

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

/etc

全局的配置文件存放目錄。

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

/usr

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

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

/usr/lib

目標庫文件,包括動態連接庫加上一些通常不是直接調用的可執行文件的存放位置。

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

/usr/bin

一般使用者使用并且不是系統自檢等所必需可執行文件的目錄。

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

/usr/sbin

管理員使用的非系統必須的可執行文件存放目錄。

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

/usr/share

存放共享文件的目錄。

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

/usr/include

C程序語言編譯使用的頭文件。

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

/usr/local

安裝本地程序的一般默認路徑。

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

/proc

特殊文件目錄。

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

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

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

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

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

├filesystems 核心配置的文件系統。

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

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

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

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

├ksyms 核心符號表。

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

├meminfo 存儲器使用信息,包括物理內存和swap。

├modules 當前加載了哪些核心模塊。

├net 網絡協議狀態信息。

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

├stat 系統的不同狀態

├uptime 系統啟動的時間長度。

└version 核心版本。

/opt

可擇的文件目錄。

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

/mnt

臨時掛載目錄。

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

/media

掛載的媒體設備目錄。

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

上一篇: 騰科快訊-二十項訣竅助你玩轉Git與GitHub

下一篇: 騰科快訊-數據可視化技術帶給我們的七項重要助益

在線咨詢 ×

您好,請問有什么可以幫您?我們將竭誠提供最優質服務!

<蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>