——Linux目錄結構
無論何種版本的 Linux 發行版,桌面、應用是 Linux 的外衣,文件組織、目錄結構才是Linux的內心。
FHS(英文:Filesystem Hierarchy Standard中文:文件系統層次結構標準),多數 Linux 版本采用這種文件組織形式,FHS 定義了系統中每個區域的用途、所需要的最小構成的文件和目錄同時還給出了例外處理與矛盾處理。?
FHS 定義了兩層規范,第一層是,/下面的各個目錄應該要放什么文件數據,例如/etc應該要放置設置文件,/bin與/sbin則應該要放置可執行文件等等。
第二層則是針對/usr及/var這兩個目錄的子目錄來定義。例如/var/log放置系統登錄文件、/usr/share放置共享數據等等。
/:根目錄,一般根目錄下只存放目錄,不要存放件,/etc、/bin、/dev、/lib、/sbin應該和根目錄放置在一個分區中。
/bin:bin是Binary的縮寫, 這個目錄存放著最經常使用的命令(ls,cat,mkdir等)。
/boot:這里存放的是啟動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件。
/dev :dev是Device(設備)的縮寫, 該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。
/etc:這個目錄用來存放所有的系統管理所需要的配置文件和子目錄。
/home:用戶的主目錄,在Linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的,是用戶主目錄的基點,比如用戶user的主目錄就是/home/user,可以用~user表示
/lib:這個目錄里存放著系統最基本的動態連接共享庫,其作用類似于Windows里的DLL文件。幾乎所有的應用程序都需要用到這些共享庫。
/lost+found:這個目錄一般情況下是空的,當系統非法關機后,這里就存放了一些文件。
/media:linux系統會自動識別一些設備,例如U盤、光驅等等,當識別后,linux會把識別的設備掛載到這個目錄下。
/mnt:系統提供該目錄是為了讓用戶臨時掛載別的文件系統的,我們可以將光驅掛載在/mnt/上,然后進入該目錄就可以查看光驅里的內容了。
/opt:這是給主機額外安裝軟件所擺放的目錄。比如你安裝一個ORACLE數據庫則就可以放到這個目錄下。默認是空的。一般情況下,我們可以把tomcat等都安裝到這里。
/proc:這個目錄是一個虛擬的目錄,它是系統內存的映射,我們可以通過直接訪問這個目錄來獲取系統信息。
????????這個目錄的內容不在硬盤上而是在內存里,我們也可以直接修改里面的某些文件,比如可以通過下面的命令來屏蔽主機的ping命令,使別人無法ping你的機器:
????????echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:該目錄為系統管理員,也稱作超級權限者的用戶主目錄。
/sbin:s就是Super User的意思,這里存放的是系統管理員使用的系統管理程序。只有root才能訪問。這里存放的是系統管理員使用的系統級別的管理命令和程序。如ifconfig等。
/selinux:這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似于windows的防火墻,但是這套機制比較復雜,這個目錄就是存放selinux相關的文件的。
/srv:該目錄存放一些服務啟動之后需要提取的數據。
/sys:這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統?sysfs?。
????????sysfs文件系統集成了下面3種文件系統的信息:針對進程信息的proc文件系統、針對設備的devfs文件系統以及針對偽終端的devpts文件系統。
????????該文件系統是內核設備樹的一個直觀反映。當一個內核對象被創建的時候,對應的文件和目錄也在內核對象子系統中被創建。
/tmp:這個目錄是用來存放一些臨時文件的。
/usr:這是一個非常重要的目錄,用戶的很多應用程序和文件都放在這個目錄下,類似于windows下的program files目錄。
????????/usr/x11r6?存放x window的目錄
????????/usr/bin?眾多的應用程序 ?
????????/usr/sbin?超級用戶的一些管理程序 ?
????????/usr/doc linux文檔 ?
????????/usr/include linux下開發和編譯應用程序所需要的頭文件 ?
????????/usr/lib?常用的動態鏈接庫和軟件包的配置文件 ?
????????/usr/man?幫助文檔 ?
????????/usr/src?源代碼,linux內核的源代碼就放在/usr/src/linux里 ?
????????/usr/local/bin?本地增加的命令 ?
????????/usr/local/lib?本地增加的庫
/usr/bin:系統用戶使用的應用程序。
/usr/sbin:超級用戶使用的比較高級的管理程序和系統守護程序。
/usr/src:內核源代碼默認的放置目錄。
/var:這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日志文件。
/run:是一個臨時文件系統,存儲系統啟動以來的信息。當系統重啟時,這個目錄下的文件應該被刪掉或清除。如果你的系統上有 /var/run 目錄,應該讓它指向 run。
在 Linux 系統中,有幾個目錄是比較重要的,平時需要注意不要誤刪除或者隨意更改內部文件。
/etc:?上邊也提到了,這個是系統中的配置文件,如果你更改了該目錄下的某個文件可能會導致系統不能啟動。
/bin, /sbin, /usr/bin, /usr/sbin:?這是系統預設的執行文件的放置目錄,比如?ls?就是在/bin/ls?目錄下的。
值得提出的是,/bin, /usr/bin?是給系統用戶使用的指令(除root外的通用戶),而/sbin, /usr/sbin?則是給root使用的指令。
/var:?這是一個非常重要的目錄,系統上跑了很多程序,那么每個程序都會有相應的日志產生,而這些日志就被記錄到這個目錄下,具體在/var/log?目錄下,另外mail的預設放置也是在這里。
——Linux文件結構
Linux 對數據文件(.mp3、.bmp),程序文件(.c、.h、*.o),設備文件(LCD、觸摸屏、鼠標),網絡文件( socket ) 等的管理都抽象為文件,使用統一的方式方法管理。
文件分類:
1)普通文件( 數據文件 )
普通文件是用于存放數據、程序等信息的文件,一般都長期地存放在外存儲器(磁盤)中。普通文件又分為文本文件和二進制文件。
2)目錄文件
目錄文件是文件系統中一個目錄所包含的目錄項所組成的文件。
3)設備文件
設備文件是用于為操作系統與設備提供連接的一種文件。在Linux系統中將設備作為文件來處理,操作設備就像是操作普通文件一樣。每一個設備對應一個設備文件,存放在 /dev 目錄中。
5)鏈接文件
似于 windows 下的快捷方式,鏈接又可以分為軟鏈接(符號鏈接)和硬鏈接。
6)管道文件
管道文件主要用于在進程間傳遞數據的一種特殊文件。
7)套接口文件
主要用于不同計算機間網絡通信的一種特殊文件。