linux 目錄結構

該文章主要來自于網絡資料進行整理

目錄結構參考地址:

http://www.iteye.com/topic/1125162

http://yangrong.blog.51cto.com/6945369/1288072

http://itlab.idcquan.com/linux/administer/939529_1.html

http://itlab.idcquan.com/linux/administer/939529_2.html

1、linux哲學思想:

   1.一切皆文件,把幾乎所有的資源,包括硬件設備都組織為文件格式;

    2.由眾多目的單一的小程序組成,一個程序只做一件事,并且要好,組合小程序完成復雜任務;

    3.盡量避免跟用戶交互,實現腳本編程,自動完成某些功能;

    4.使用純文本文件保存配置信息,管理員只需使用一款文本編輯器既能完成系統配置工作;

    5.提供機制,而非策略,管道是機制,應用管道處理各種數據是策略,機制就是提供各種接口供使用者組合調用得到想要的數據。

2、FHS (Filesystem Hierarchy Standard)意義

   linux核心思想一切皆文件,因此,了解linux的文件層次結構以及根據FHS規定的目錄名的含義是相當重要的。

        Linux和UNIX的文件系統是一個以“/ “為根的階層式的樹狀文件結構,/ 因此被稱為根目錄。

    所有的文件和目錄都置于根目錄/ 之下。根目錄/下面有/etc, /usr, /var, /root, /home, /dev等子目錄。在早期的UNIX系統中,各個廠家各自定義了自己的UNIX系統的文件系統構成,比較混亂。

    為了避免在Linux也產生同樣的問題,在Linux面世不久,就開始了對Linux文件系統進行標準化的活動,于1994年推出了名為 FSSTND(Filesystem Standard)的Linux文件系統層次結構標準。

     之后,FSSTND標準吸引了UNIX社團的開發人員,他們把FSSTND擴大到UNIX系統,FSSTND就變為FHS (Filesystem Hierarchy Standard)。

3、樹狀目錄結構圖

230817424.jpg

4、目錄詳細介紹目錄(下面紅色字體為比較重要的目錄)

  1./目錄(根文件系統) 

目錄 描述
 / 第一層次結構的根、整個文件系統層次結構的根目錄
/bin 供所有用戶使用的基本命令,不能關聯至獨立分區,OS啟動即會用到的程序。主要有:cat mv netstat pwd rm sync tar touch sort 等等常用的指令。
/sbin 管理類的基本命令,不能關聯至獨立分區,OS啟動即會用到的程序。主要有:dump e2fsck fdisk grub ifconfig ifdown init等等常用的指令
/boot 放置linux系統啟動時用到的一些文件。/boot/vmlinuz為linux的內核文件,引導加載器(bootloader, gurb)。建議單獨分區,分區大小100M即可
/lib 基本共享庫文件,以及內核模塊文件(lib/modules)
/lib64 專用于x86_64系統上的鋪助共享庫文件存放位置
/etc 配置文件目錄(純文本文件),系統主要的配置文件幾乎都放置在這個目錄內,例如人員的賬號密碼文件、 各種服務的啟始檔等等。一般來說,這個目錄下的各文件屬性是可以讓一般使用者查閱的, 但是只有 root 有權力修改。FHS 建議不要放置可執行文件(binary)在這個目錄中喔。比較重要的檔案有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/,/etc/fstab, /etc/sysconfig/ 等等。另外,其下重要的目錄有: /etc/init.d/:所有服務的預設啟動 script 都是放在這里的,例如要啟動或者關 閉 iptables 的話:『 /etc/init.d/iptables start』、『/etc/init.d/iptables stop』
/home/USERNAME 這是系統默認的用戶家目錄(home directory)。在你新增一個一般使用者賬號時,不給用戶家目錄都會歸范到這里來。比較重要的是,家目錄有兩種代號喔:~:代表目前這個用戶的家目錄,而~dmtsai :則代表 dmtsai 的家目錄!
/root 系統管理員(root)的家目錄。之所以放在這里,是因為如果進入單人維護模式而僅掛載根目錄時,該目錄就能夠擁有 root 的家目錄,所以我們會希望root家目錄不與根目錄放置在同一個分割槽中。
/media 便捷式移動設備掛載點(cdrom, usb),media 是『媒體』的英文,顧名思義,這個/media 底下放置的就是可移除的裝置啦! 包括軟盤、光盤、DVD 等等裝置都暫時掛載二此。常見的檔名有:/media/floppy, /media/cdrom 等等。
/mnt 如果你想要暫時掛載某些額外的裝置,一般建議你可以放置到這個目錄中。 在古早時候,這個目錄的用途與/media 相同啦!只是有了/media 之后,這個目錄就用來暫時掛載用了。
/dev 設備文件及特殊文件存儲位置(b:block device 離散訪問  c:character device 線性訪問).任何裝置不接口設備都是以檔案的型態存在二這個目錄當中的。 你只要透過存取這個目錄底下的某個檔案,就等二存取某個裝置啰~ 比要重要的檔案有/dev/null, /dev/zero, /dev/tty, /dev/lp*, /dev/hd*, /dev/sd*等等
/opt 這個是給第三方程序軟件放置的目錄。什么是第三方協力軟件啊? 舉例來說,KDE這個桌面管理系統是一個獨立的計劃,不過他可以安裝到 Linux 系統中,因此 KDE的軟件就建議放置到此目錄下了。 另外,如果你想要自行安裝額外的軟件(非原本的distribution 提供的),那也能夠將你的軟件安裝到這里來。 不過以前的 Linux 系統中,我們還是習慣放置在/usr/local 目錄下呢!
/srv 系統上運動的服務用到的數據,srv 可以規為『service』的縮寫,是一些網絡服務啟動之后,這些服務所需要取用的數據目錄。 常見的服務例如 WWW, FTP 等等。示例來說,WWW 服務器需要的網頁資料就可以放置在/srv/www/里面。
/tmp 這是讓一般用戶或者是正在執行的程序暫時放置檔案的地方。 這個目錄是任何人都能夠存取的,所以你需要定期的清理一下。當然,重要數據不可放置在此目錄啊! 因此FHS 甚至建議在開機時,應該要將/tmp 下的數據都刪除哦!
/usr universal shared read-only data.默認軟件都會存于該目錄下。用于存儲只讀用戶數據的第二層次;包含絕大多數的()用戶工具和應用程序。
/media 便捷式移動設備掛載點,media 是『媒體』的英文,顧名思義,這個/media 底下放置的就是可移除的裝置啦! 包括軟盤、光盤、DVD 等等裝置都暫時掛載二此。常見的檔名有:/media/floppy, /media/cdrom 等等
/var 變量文件——在正常運行的系統中其內容不斷變化的文件,如日志,脫機文件和臨時電子郵件文件。有時是一個單獨的分區。如果不單獨分區,有可能會把整個分區充滿。如果單獨分區,給大給小都不合適。
/proc 這個目錄本身是一個『虛擬文件系統(virtual filesystem)』喔!他放置的數據都是在內存當中, 例如系統核心、進程信息(process)、周邊裝置的狀態及網絡狀態等等。因為這個目錄下的數據都是在內存當中, 所以本身不占任何硬盤空間啊!比較重要的檔案例如:/proc/cpuinfo, /proc/dma, /proc/interrupts,/proc/ioports, /proc/net/* 等等。
/sys 這個目錄其實跟/proc 非常類似,也是一個虛擬的文件系統,主要也是記錄不核心相關的信息。 包括目前已加載的核心模塊不核心偵測到的硬件裝置信息等等。這個目錄同樣不占硬盤容量喔!
/selinux security enhanced Linux,selinux相關的安全策略等信息的存儲位置。
/lost+found 在ext3文件系統中,當系統意外崩潰或機器意外關機,會產生一些文件碎片在這里。當系統在開機啟動的過程中fsck工具會檢查這里,并修復已經損壞的文件系統。當系統發生問題??赡軙形募灰苿拥竭@個目錄中,可能需要用手工的方式來修復,或移到文件到原來的位置上。

    2./etc/目錄(配置文件目錄,純文本文件)

目錄 描述

/etc/rc

/etc/rc.d

/etc/rc*.d

啟動、或改變運行級時運行的scripts或scripts的目錄.

/etc/hosts

本地域名解析文件

/etc/sysconfig/network

IP、掩碼、網關、主機名配置

/etc/resolv.conf

DNS服務器配置

/etc/fstab

開機自動掛載系統,所有分區開機都會自動掛載

/etc/inittab

設定系統啟動時Init進程將把系統設置成什么樣的runlevel及加載相關的啟動文件配置

/etc/exports

設置NFS系統用的配置文件路徑

/etc/init.d

這個目錄來存放系統啟動腳本

/etc/profile, 

/etc/csh.login,  

/etc/csh.cshrc

全局系統環境配置變量

/etc/issue

認證前的輸出信息,默認輸出版本內核信息

/etc/motd

設置認證后的輸出信息,

/etc/mtab

當前安裝的文件系統列表.由scripts初始化,并由mount 命令自動更新.需要一個當前安裝的文件系統的列表時使用,例如df 命令

/etc/group

類似/etc/passwd ,但說明的不是用戶而是組.

/etc/passwd

用戶數據庫,其中的域給出了用戶名、真實姓名、家目錄、加密的口令和用戶的其他信息.

/etc/shadow

在安裝了影子口令軟件的系統上的影子口令文件.影子口令文件將/etc/passwd 文件中的加密口令移動到/etc/shadow 中,而后者只對root可讀.這使破譯口令更困難.

/etc/sudoers

可以sudo命令的配置文件

/etc/syslog.conf

系統日志參數配置

/etc/login.defs

設置用戶帳號限制的文件

/etc/securetty

確認安全終端,即哪個終端允許root登錄.一般只列出虛擬控制臺,這樣就不可能(至少很困難)通過modem或網絡闖入系統并得到超級用戶特權.

/etc/printcap

類似/etc/termcap ,但針對打印機.語法不同.

/etc/shells

列出可信任的shell.chsh 命令允許用戶在本文件指定范圍內改變登錄shell.提供一臺機器FTP服務的服務進程ftpd 檢查用戶shell是否列在 /etc/shells 文件中,如果不是將不允許該用戶登錄.

/etc/xinetd.d

如果服務器是通過xinetd模式運行的,它的腳本要放在這個目錄下。有些系統沒有這個目錄,比如Slackware,有些老的版本也沒有。在Redhat Fedora中比較新的版本中存在。

/etc/opt/

/opt/的配置文件

/etc/X11/

X_Window系統(版本11)的配置文件

/etc/sgml/

SGML的配置文件

/etc/xml/

XML的配置文件

/etc/skel/

默認創建用戶時,把該目錄拷貝到家目錄下

4、/usr/目錄

默認軟件都會存于該目錄下。用于存儲只讀用戶數據的第二層次;包含絕大多數的用戶工具和應用程序。

目錄 描述

/usr/X11R6

存放X-Windows的目錄;

/usr/games

存放著XteamLinux自帶的小游戲;

/usr/doc

Linux技術文檔;

/usr/include

用來存放Linux下開發和編譯應用程序所需要的頭文件;

/usr/lib

存放一些常用的動態鏈接共享庫和靜態檔案庫;

/usr/man

幫助文檔所在的目錄;

/usr/src

Linux開放的源代碼,就存在這個目錄,愛好者們別放過哦;

/usr/bin/

非必要可執行文件 (在單用戶模式中不需要);面向所有用戶。

/usr/lib/

/usr/bin/和/usr/sbin/中二進制文件的。

/usr/sbin/

非必要的系統二進制文件,例如:大量網絡服務守護進程。

/usr/share/

體系結構無關(共享)數據。

/usr/src/

源代碼,例如:內核源代碼及其頭文件。

/usr/X11R6/

X Window系統版本 11, Release 6.

/usr/local/

本地數據的第三層次,具體到本臺主機。通常而言有進一步的子目錄,例如:bin/、lib/、share/.這是提供給一般用戶的/usr目錄,在這里安裝一般的應用軟件;

5、/var/目錄

/var 包括系統一般運行時要改變的數據.每個系統是特定的,即不通過網絡與其他計算機共享.

目錄 描述

/var/log/message

日志信息,按周自動輪詢

/var/spool/cron/root

定時器配置文件目錄,默認按用戶命名

/var/log/secure

記錄登陸系統存取信息的文件,不管認證成功還是認證失敗都會記錄

/var/log/wtmp

記錄登陸者信息的文件,last,who,w命令信息來源于此

/var/spool/clientmqueue/

當郵件服務未開啟時,所有應發給系統管理員的郵件都將堆放在此

/var/spool/mail/

郵件目錄

/var/tmp  

比/tmp 允許的大或需要存在較長時間的臨時文件. (雖然系統管理員可能不允許/var/tmp 有很舊的文件.)

/var/lib  

系統正常運行時要改變的文件.  

/var/local  

/usr/local 中安裝的程序的可變數據(即系統管理員安裝的程序).注意,如果必要,即使本地安裝的程序也會使用其他/var 目錄,例如/var/lock .  

/var/lock  

鎖定文件.許多程序遵循在/var/lock 中產生一個鎖定文件的約定,以支持他們正在使用某個特定的設備或文件.其他程序注意到這個鎖定文件,將不試圖使用這個設備或文件.

/var/log/

各種程序的Log文件,特別是login   (/var/log/wtmp log所有到系統的登錄和注銷) 和syslog (/var/log/messages 里存儲所有核心和系統程序信息. /var/log 里的文件經常不確定地增長,應該定期清除.  

/var/run  

保存到下次引導前有效的關于系統的信息文件.例如, /var/run/utmp 包含當前登錄的用戶的信息.

/var/cache/

應用程序緩存數據。這些數據是在本地生成的一個耗時的I/O或計算結果。應用程序必須能夠再生或恢復數據。緩存的文件可以被刪除而不導致數據丟失。

6、/proc/目錄

虛擬文件系統,將內核進程狀態歸檔為文本文件(系統信息都存放這目錄下)。

例如:uptime、 network。在Linux中,對應Procfs格式掛載。該目錄下文件只能看不能改(包括root)

目錄 描述

/proc/meminfo

查看內存信息

/proc/loadavg

還記得 top 以及 uptime 吧?沒錯!上頭的三個平均數值就是記錄在此!

/proc/uptime

就是用 uptime 的時候,會出現的資訊啦!

/proc/cpuinfo

關于處理器的信息,如類型、廠家、型號和性能等。

/proc/cmdline

加載 kernel 時所下達的相關參數!查閱此文件,可了解系統是如何啟動的!

/proc/filesystems  

目前系統已經加載的文件系統羅!

/proc/interrupts

目前系統上面的 IRQ 分配狀態。

/proc/ioports

目前系統上面各個裝置所配置的 I/O 位址。

/proc/kcore

這個就是內存的大小啦!好大對吧!但是不要讀他啦!

/proc/modules

目前我們的 Linux 已經加載的模塊列表,也可以想成是驅動程序啦!

/proc/mounts

系統已經掛載的數據,就是用 mount 這個命令呼叫出來的數據啦!

/proc/swaps

到底系統掛加載的內存在哪里?呵呵!使用掉的 partition 就記錄在此啦!

/proc/partitions

使用 fdisk -l 會出現目前所有的 partition 吧?在這個文件當中也有紀錄喔!

/proc/pci  

在 PCI 匯流排上面,每個裝置的詳細情況!可用 lspci 來查閱!

/proc/version

核心的版本,就是用 uname -a 顯示的內容啦!

/proc/bus/*  

一些匯流排的裝置,還有 U盤的裝置也記錄在此喔!

7、/dev/目錄

設備文件分為兩種:塊設備文件(b)和字符設備文件(c)
設備文件一般存放在/dev目錄下,

對常見設備文件作如下說明:

目錄 描述

/dev/hd[a-t]

IDE設備

/dev/sd[a-z]

SCSI設備

/dev/fd[0-7]

標準軟驅

/dev/md[0-31]

軟raid設備

/dev/loop[0-7]

本地回環設備

/dev/ram[0-15]

內存

/dev/null

無限數據接收設備,相當于黑洞

/dev/zero

無限零資源

/dev/tty[0-63]

虛擬終端

/dev/ttyS[0-3]

串口

/dev/lp[0-3]

并口

/dev/console

控制臺

/dev/fb[0-31]

framebuffer

/dev/cdrom

=> /dev/hdc

/dev/modem

=> /dev/ttyS[0-9]

/dev/pilot

=> /dev/ttyS[0-9]

/dev/random

隨機數設備

/dev/urandom

隨機數設備

8、Linux下的文件類型:

    – (f):普通文件;

    d: 目錄文件;

    b: 塊設備;

    c: 字符設備;

    l: 符號鏈接文件;

    p: 管道文件;

    s: 套接字文件;socket; 

原創文章,作者:andrewDu,如若轉載,請注明出處:http://www.www58058.com/9736

(2)
andrewDuandrewDu
上一篇 2015-12-19
下一篇 2015-12-19

相關推薦

  • btrfs文件系統及管理

      什么是btrfs? Btrfs(B-tree文件系統,通常念成Butter FS,Better FS或B-tree FS),linux文件系統,具有寫時復制COW(copy-on-write),改善ext3文件系統單文件大小限制,并加入其他特性,如可寫快照,快照的快照,內建RAID,子卷(subvloume),專注于容錯,修復和易于管理。單文件…

    系統運維 2016-05-13
  • samba

    Samba 簡介:      Samba是一個能讓Linux系統應用Microsoft網絡通訊協議的軟件,而SMB是Server Message Block的縮寫,即為服務器消息塊 ,SMB主要是作為Microsoft的網絡通訊協議,后來Samba將SMB通信協議應用到了Linux系統上,就形成了現在的Samba軟件?!?/p>

    系統運維 2016-11-01
  • 函數式編程

    當我們說起函數式編程來說,我們會看到如下函數式編程的長相: 函數式編程的三大特性: immutable data 不可變數據:像Clojure一樣,默認上變量是不可變的,如果你要改變變量,你需要把變量copy出去修改。這樣一來,可以讓你的程序少很多Bug。因為,程序中的狀態不好維護,在并發的時候更不好維護。(你可以試想一下如果你的程序有個復雜的狀態,當以后別…

    Linux干貨 2016-08-15
  • Linux LVM

    Linux LVM 前言     LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環境下對磁盤分區進行管理的一種機制,它由Heinz Mauelshagen在Linux 2.4內核上實現,目前最新版本為:穩定版1.0.5,開發版 1.1.0-rc2,以及LVM2開發版。無論在Linux或者其他類似…

    系統運維 2016-04-24
  • 計算機基礎與linux入門

    計算機硬件組成:     運算器:主要完成算術運算,邏輯運算     控制器:控制指令的執行序列,根據指令的功能給出實現指令功能所需要的控制信號     存儲器:存放程序以及一些數據     &nbs…

    Linux干貨 2015-12-19
  • 制作本地yum源(以redhat5.8通過復制光盤文件到本地)

    為什么要制作本地yum源 1、RPM安裝方式很多情況下不能有效解決復雜的包依賴關系。 2、而剛安裝完成系統的YUM一般是通過聯網使用。 3、如果是未注冊的redhat5.0以上系統,則不能聯網使用yum。 我們可以改變yum庫的指向,使其指向本地自己制作的yum倉庫,從而輕松實現本地yum方式查詢、安裝應用軟件了。 下面據此給大家介紹其操作方法(以Redha…

    Linux干貨 2016-04-11

評論列表(2條)

  • stanley
    stanley 2015-12-19 19:45

    終于看到一篇相對不錯的blog, 不過仍有提升空間。加油

  • 血刀老祖
    血刀老祖 2016-01-26 17:56

    很贊

欧美性久久久久