Linux 下各個目錄的作用及內容
在早期的 UNIX 系統中,各個廠家各自定義了自己的 UNIX 系統文件目錄,比較混亂。Linux 面世不久後,對文件目錄進行了標準化,於1994年對根文件目錄做了統一的規範,推出 FHS ( Filesystem Hierarchy Standard ) 的 Linux 文件系統層次結構標準。FHS 標準規定了 Linux 根目錄各文件夾的名稱及作用,統一了Linux界命名混亂的局面。
無論何種版本的 Linux 發行版,桌面、應用是 Linux 的外衣,文件組織、目錄結構才是Linux的內心。
FHS
(英文:Filesystem Hierarchy Standard
中文:文件系統層次結構標準),多數 Linux 版本采用這種文件組織形式,FHS 定義了系統中每個區域的用途、所需要的最小構成的文件和目錄同時還給出了例外處理與矛盾處理。 FHS 定義了兩層規範,第一層是, /
/etc
應該要放置設置文件,/bin
與 /sbin
則應該要放置可執行文件等等。
第二層則是針對 /usr
及 /var
這兩個目錄的子目錄來定義。例如 /var/log
放置系統登錄文件、/usr/share
放置共享數據等等。
FHS
是根據以往無數 Linux 用戶和開發者的經驗總結出來的,並且會維持更新,FHS 依據文件系統使用的頻繁與否以及是否允許用戶隨意改動(註意,不是不能,學習過程中,不要怕這些),將目錄定義為四種交互作用的形態,如下表所示:
/
:根目錄,一般根目錄下只存放目錄,不要存放件,/etc、/bin、/dev、/lib、/sbin應該和根目錄放置在一個分區中
/bin: /usr/bin: 可執行二進制文件的目錄,如常用的命令ls、tar、mv、cat等。
/boot:放置linux系統啟動時用到的一些文件。/boot/vmlinuz 為 linux 的內核文件,以及 /boot/gurb。建議單獨分區,分區大小100M即可
/dev:存放linux系統下的設備文件,訪問該目錄下某個文件,相當於訪問某個設備,常用的是掛載光驅 mount /dev/cdrom /mnt。
/etc:系統配置文件存放的目錄,不建議在此目錄下存放可執行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前記得備份。
註:/etc/X11 存放與 x windows 有關的設置。
/home:系統默認的用戶家目錄,新增用戶賬號時,用戶的家目錄都存放在此目錄下,~表示當前用戶的家目錄,~edu 表示用戶 edu 的家目錄。建議單獨分區,並設置較大的磁盤空間,方便用戶存放數據
/lib: /usr/lib: /usr/local/lib:系統使用的函數庫的目錄,程序在執行過程中,需要調用一些額外的參數時需要函數庫的協助,比較重要的目錄為 /lib/modules。
/lost+fount:系統異常產生錯誤時,會將一些遺失的片段放置於此目錄下,通常這個目錄會自動出現在裝置目錄下。如加載硬盤於 /disk 中,此目錄下就會自動產生目錄 /disk/lost+found
/mnt: /media:光盤默認掛載點,通常光盤掛載於 /mnt/cdrom 下,也不一定,可以選擇任意位置進行掛載。
/opt:給主機額外安裝軟件所擺放的目錄。如:FC4使用的Fedora 社群開發軟件,如果想要自行安裝新的 KDE 桌面軟件,可以將該軟件安裝在該目錄下。以前的 Linux 系統中,習慣放置在 /usr/local 目錄下
/proc:此目錄的數據都在內存中,如系統核心,外部設備,網絡狀態,由於數據都存放於內存中,所以不占用磁盤空間,比較重要的目錄有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。
/root:系統管理員root的家目錄,系統第一個啟動的分區為 /,所以最好將 /root和 /放置在一個分區下。
/sbin: /usr/sbin: /usr/local/sbin:放置系統管理員使用的可執行命令,如fdisk、shutdown、mount 等。與 /bin 不同的是,這幾個目錄是給系統管理員 root使用的命令,一般用戶只能"查看"而不能設置和使用。
/tmp:一般用戶或正在執行的程序臨時存放文件的目錄,任何人都可以訪問,重要數據不可放置在此目錄下
/srv:服務啟動之後需要訪問的數據目錄,如 www 服務需要訪問的網頁數據存放在 /srv/www 內。
/usr:應用程序存放目錄,/usr/bin 存放應用程序,/usr/share 存放共享數據,/usr/lib 存放不能直接運行的,卻是許多程序運行所必需的一些函數庫文件。/usr/local: 存放軟件升級包。/usr/share/doc: 系統說明文件存放目錄。/usr/share/man: 程序說明文件存放目錄,使用 man ls 時會查詢 /usr/share/man/man1/ls.1.gz 的內容建議單獨分區,設置較大的磁盤空間
/var:放置系統執行過程中經常變化的文件,如隨時更改的日誌文件 /var/log,/var/log/message:所有的登錄文件存放目錄,/var/spool/mail:郵件存放的目錄,/var/run:程序或服務啟動後,其PID存放在該目錄下。建議單獨分區,設置較大的磁盤空間
一切皆文件
Linux 對數據文件(.mp3、.bmp),程序文件(.c、.h、*.o),設備文件(LCD、觸摸屏、鼠標),網絡文件( socket ) 等的管理都抽象為文件,使用統一的方式方法管理。
文件分類:
1)普通文件( 數據文件 )
普通文件是用於存放數據、程序等信息的文件,一般都長期地存放在外存儲器(磁盤)中。普通文件又分為文本文件和二進制文件。
2)目錄文件
目錄文件是文件系統中一個目錄所包含的目錄項所組成的文件。
3)設備文件
設備文件是用於為操作系統與設備提供連接的一種文件。在Linux系統中將設備作為文件來處理,操作設備就像是操作普通文件一樣。每一個設備對應一個設備文件,存放在 /dev 目錄中。
5)鏈接文件
似於 windows 下的快捷方式,鏈接又可以分為軟鏈接(符號鏈接)和硬鏈接。
6)管道文件
管道文件主要用於在進程間傳遞數據的一種特殊文件。
7)套接口文件
主要用於不同計算機間網絡通信的一種特殊文件。
Linux 下各個目錄的作用及內容