Linux 目錄配置


一、Linux 目錄配置標准:FHS

  FHS(Filessystem Hierarchy Standard) 的重點在於規范每個特定的目錄下應該要放置什么樣子的數據。

  FHS依據文件系統使用的頻繁與否是否允許用戶隨意改動,而將目錄定義成為四種交互作用的形態。

  可分享的(shareable) 不可分享的(unshareable)
不變的(static) /usr(軟件放置處) /etc(配置文件)
/opt(第三方軟件) /boot(開機與內核文件)
可變動的(variable) /var/mail(用戶郵件信箱) /var/run (程序相關)
/var/spool/news(新聞組) /var/lock(程序相關)

  a.可分享的: 可以分享給其他系統掛載使用的目錄,所以包括執行文件與用戶的郵件等數據,是能夠分享給網絡上其他主機掛載用的目錄。

  b.不可分享的: 自己機器上面運行的設備文件或者是與程序有關的socket文件等,由於僅與自身機器有關,所以當然就不合適分享給其他主機了
  c.不變的:  有些數據是不會經常變動的,跟隨着distribution而不變動。例如函數庫、文件說明文件、系統管理員所管理的主機服務配置文件等。

  d.可變動的: 經常改變的數據,例如登錄文件,新聞組等

 

  FHS針對目錄樹架構定義出三層目錄該放什么數據:

    /(root, 根目錄): 與開機系統有關;

    /usr(UNIX software resource): 與軟件安裝/執行有關

    /var (variable): 與系統運作過程有關

  1、 根目錄(/)的意義與內容

    根目錄與開機、還原、系統修復等操作有關。

    FHS標准建議:根目錄(/)所在分區應該越小越好, 且應用程序所安裝的軟件最好不要與根目錄放在同一個分區內, 保持根目錄越小越好,如此不但性能較好, 根目錄所在的文件系統也較不容易發生問題。

  

  FHS定義出根目錄(/)下面應該要有下面這些子目錄的存在:

  

   目錄      應放置文件內容
/bin 系統有很多放置執行文件的目錄,但/bin比較特殊。因為/bin放置的是在單用戶維護模式下還能夠被操作的命令。在/bin下面的命令可以被root與一般賬戶所使用,主要有cat,chmod,chown,date,mv,mkdir, cp,bash等常用的命令。
/boot

這個目錄主要放置開機會使用到的文件,包括Linux內核文件以及開機菜單與開機所需要配置文件等。LINUX kernel常用的文件名為vmlinuz,如果使用的是grub這個引導裝載程序,則還會存在/boot/grub/這個目錄

/dev 在Linux系統上, 任何設備與接口設備都是以文件的形式存在於這個目錄當中的。你只要通過訪問這個目錄下面的某個文件,就等於訪問某個設備。比較重要的文件有/dev/null, /dev/zero,/dev/tty,/dev/lp*, /dev/hd*, /dev/sd*等
/etc

系統主要的配置文件幾乎都放置在這個目錄內, 例如人員的賬號密碼文件、各種服務的起始文件等。一般來說,這個目錄下的各文件屬性是可以讓一般用戶查閱的,但是只有root有權利修改。FHS建議不要放置可執行文件(binary)在這個目錄中。比較重要的文件有etc/inittab, /etc/init.d, /etc/modprobe.conf, /etc/X11, /etc/fstab, /etc/sysconfig等,另外,其下重要的目錄有:

  a. /etc/init.d/: 所有服務的默認啟動腳本都是放在這里的,例如要啟動或者關閉 iptables的話: “/etc/init.d/iptables start” 、 "/etc/init.d/iptables stop"

  b. /etc/xinetd.d/: 這就是所謂的super daemon 管理的各項服務的配置文件目錄

  c. /etc/X11/: 與X Window有關的各種配置文件都在這里, 尤其是xorg.conf 這個XServer的配置文件

/home

這是系統默認的用戶主文件夾(home directory).在你創建一個一般用戶賬號時,默認的用戶主文件夾都會規范到這里來。比較重要的是,主文件夾有兩種代號:

  ~: 代表目前這個用戶的主文件夾

  ~dmtsai: 則代表dmtsai的主文件夾

/lib 系統的函數庫非常多, 而/lib放置的則是在開機時會用到的函數庫,以及在/bin或/sbin下面的命令會調用的函數庫而已。什么是函數庫? 你可以將它想成是“外掛”,某些命令必須要有這些“外掛”才能夠順利完成程序的執行之意。尤其重要的是/lib/modules/這個目錄,因為該目錄會放置內核相關的模塊(驅動程序)
/media /media放置的就是可刪除的設備。包括軟盤、光盤、DVD等設備都暫時掛載於此。常見的文件名有/media/floppy, /media/cdrom等
/mnt 如果你想要暫時掛載某些額外的設備,一般建議你可以放置到這個目錄中。在比較早的時候,這個目錄的用途與/media相同。只是有了/media之后,這個目錄就用來暫時掛在用了
/opt /opt,第三方軟件放置的目錄。
/root 系統管理員(root)的主文件夾。之所以放在這里,是因為如果進入單用戶維護模式而僅掛載根目錄時,該目錄就能夠擁有root的主文件夾,所以我們會希望root的主文件夾與根目錄放置在同一個分區中
/sbin Linux有非常多的命令是用來設置系統環境的,這些命令只有root才能夠利用來“設置”系統,其他用戶最多只能用來“查詢”而已。放在/sbin下面的為開機過程中所需要的,里面包括了開機、修復、還原系統所需要的命令。至於某些服務器軟件程序,一般則放置到/usr/sbin/當中。至於本機自行安裝的軟件所產生的系統執行文件(systen binary), 則放置到/usr/local/sbin/當中了。常見的命令包括fdisk, fsck, ifconfig, init,mkfs等
/srv srv 可以視為“service”的縮寫,是一些網絡服務啟動之后,這些服務所需要取用的數據目錄。常見的服務例如www,FTP等,舉例來說,www服務需要的網頁數據就可以放置在/srv/www/里面
/tmp 這是讓一般用戶或者正在執行的程序暫時放置文件的地方。這個目錄是任何人都能夠訪問,所以你需要定期清理一下。當然,重要數據不可放置在此目錄。因為FHS甚至建議在開機時,應該要將/tmp下的數據都刪除

    

  事實上FHS針對根目錄所定義的標准僅有上面列舉的數據。下面是幾個在linux當中也是非常重要的目錄:

      目錄 應放置文件內容
/lost+found 這個目錄時使用標准的ext2/ext3文件系統格式才會產生的一個目錄,目的在於當文件系統發生錯誤時,將一些丟失的片段放置到這個目錄下。這個目錄通常會在分區的最頂層存在,例如你加裝一塊硬盤與/disk中,那在這個系統下就會自動產生一個這樣的目錄“/disk/lost+found”
/proc 這個目錄本身是一個虛擬文件系統(virtual filesystem)。它放置的數據都是內存當中,例如系統內核,進程(process),外部設備的狀態及網絡狀態等。因為這個目錄下的數據都是在內存當中,所以本身不占任何硬盤空間!比較重要的文件例如/proc/cpuinfo, /proc/dma, /proc/interrupts,/proc/ioports, /proc/net/*等
/sys 這個目錄其實跟/proc非常類似,也是一個虛擬的文件系統,主要也是記錄與內核相關的信息。包括目前已加載的內核模塊與內核檢測到的硬件設備信息等。這個目錄同樣不占硬盤容量。

  

  除了這些目錄的內容之外,另外要注意的是,因為根目錄與開機有關,開機過程中僅有根目錄會被掛載,其他分區則是在開機完成之后才會持續進行掛載的行為。根目錄下與開關過程有關的目錄就不能夠與根目錄放到不同的分區去。如下面幾個目錄:

  /etc: 配置文件

  /bin: 重要的執行文件

  /dev: 所需要的設備文件

  /lib: 執行文件所需要的函數庫與內核所需的模塊

  /sbin: 重要的系統執行文件

 

 2、/usr 的意義與內容

  依據FHS的基本意義,/usr里面放置的數據屬於可分享的與不可變動的, usr是UNIX Software Resource的縮寫,也就是“UNIX 操作系統軟件資源”所放置的目錄,而不是用戶的數據。所有系統默認的軟件(distribution 發布者提供的軟件)都會放置到/usr下面。

  

  目錄 應放置文件內容
/usr/X11R6 為X Window系統重要數據所放置的目錄,之所以取名為X11R6是因為最后的X版本為第11版,且該版的第6次釋出之意
/usr/bin/ 絕大部分的用戶可使用命令都放在這里。請注意到它與/bin的不同之處(是否與開機過程有關)
/usr/include C/C++等程序語言的頭文件(header)與包含文件(include)放置處,當我們以tarball方式(*.tar.gz的方式安裝軟件)安裝某些數據時,會使用到里頭的許多包含文件
/usr/lib 包含各應用軟件的函數庫、目標文件(Object file), 以及不被一般用戶慣用的執行文件或腳本(script)。某些軟件會提供會提供一些特殊的命令來進行服務器的設置,這些命令也不會經常被系統管理員操作,那就會被擺放到這個目錄下。要注意的是, 如果你使用的是X86—64的Linux系統,那可能會有/usr/lib64木蘭產生
/usr/local 系統管理員在本機自行安裝自己下載的軟件(非distribution默認提供者), 建議安裝到此目錄,這樣會比較便於管理。/usr/local去,該目錄下也是具有bin,etc,include,lib的子目錄
/usr/sbin 非系統正常運行所需要的系統命令。最常見的就是某些網絡服務器軟件的服務命令(daemon)
/usr/share

放置共享文件的地方,在這個目錄下放置的數據幾乎是不分硬件架構均可讀取的數據,因為幾乎都是文本文件再次目錄下常見的還有這些子目錄:

  a. /usr/share/man: 再線幫助文件

  b. /usr/share/doc: 軟件雜項的文件說明

  c. /usr/share/zoneinfo: 與時區有關的時區文件

/usr/src 一般源碼建議放置到這里,至於內核源碼則建議放置到/usr/src/linux/目錄下

 

  3、/var的意義與內容

    如果/usr是安裝時會占用較大硬盤容量的目錄,那么/var就是在系統運行后才會漸漸占用硬盤容量的目錄。因為/var目錄主要針對常態性變動的文件, 包括緩存(cache)、登錄文件(log file)以及某些軟件運行所產生的文件,包括程序文件(lock file, run file), 或者例如MySQL數據庫文件等。

    

    

      目錄 應放置文件內容
/var/cache 應用程序本身運行過程中會產生的一些暫存文件
/var/lib 程序本身執行的過程中,需要使用到的數據文件放置的目錄。在此目錄下各自的軟件應該要有各自的目錄。舉例來說,MySQL的數據庫放置到/var/lib/mysql/, 而rpm的數據庫則放到/var/lib/rpm目錄下
/var/lock 某些設備或者是文件資源一次只能被一個應用程序所用,如果同時有兩個程序使用該設備時,就可能產生一些錯誤的狀況,因此就得要將該設備上鎖(lock),以確保該設備只會給單一軟件所使用
/var/log 這是登錄文件放置的目錄。里面比較重要的文件如/var/log/messages, /var/log/wtmp(記錄登錄者的信息)等
/var/mail 放置個人電子郵件信箱的目錄,不過這個目錄也被放置到/var/spool/mail/目錄中。通常這兩個目錄是互為連接文件。
/var/run 某些程序或者服務啟動后,會將他們的PID放置在這個目錄下。
/var/spool 這個目錄通常放置一些對列數據,所謂的“隊列”就是排隊等待其他程序使用的數據,這些數據被使用后通常都會被刪除。舉例來說,系統收到新新件會放置到/var/spool/mail中,但用戶收下該信件后該信件原則上會被刪除。信件如果暫時寄不出去會被放到/var/spool/mqueue中,等到被送出去后就被刪除。

 

 

 4、目錄樹

   在Linux下面,所有的文件與目錄都是由根目錄開始的。那是所有目錄與文件的源頭。然后再一個一個分支下來,有點像樹枝狀。因此我們也稱這種目錄配置方式為“目錄樹”,它主要的特征有:

    a. 目錄樹的起始點為根目錄(/,root)

    b. 沒一個目錄不只能使用本地端的文件系統,也可以使用網絡上的文件系統。舉例來說,可以利用Network File System(NFS)服務器掛載某特定目錄等。

    c. 每一個文件在此目錄樹中的文件名(包含完整路徑)都是獨一無二

    

 

5、CentOs 的查看

  uname -r ----------> 可以查看實際的內核版本

  lsb_release -a --------> 查看LSB 版本 和 Distribution的版本

  

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM