——Linux目錄結(jié)構(gòu)
無論何種版本的 Linux 發(fā)行版粉寞,桌面化焕、應(yīng)用是 Linux 的外衣征字,文件組織都弹、目錄結(jié)構(gòu)才是Linux的內(nèi)心。
FHS(英文:Filesystem Hierarchy Standard中文:文件系統(tǒng)層次結(jié)構(gòu)標(biāo)準(zhǔn))匙姜,多數(shù) Linux 版本采用這種文件組織形式畅厢,F(xiàn)HS 定義了系統(tǒng)中每個(gè)區(qū)域的用途、所需要的最小構(gòu)成的文件和目錄同時(shí)還給出了例外處理與矛盾處理氮昧。?
FHS 定義了兩層規(guī)范框杜,第一層是,/下面的各個(gè)目錄應(yīng)該要放什么文件數(shù)據(jù)袖肥,例如/etc應(yīng)該要放置設(shè)置文件咪辱,/bin與/sbin則應(yīng)該要放置可執(zhí)行文件等等。
第二層則是針對(duì)/usr及/var這兩個(gè)目錄的子目錄來定義椎组。例如/var/log放置系統(tǒng)登錄文件油狂、/usr/share放置共享數(shù)據(jù)等等。
/:根目錄寸癌,一般根目錄下只存放目錄专筷,不要存放件,/etc蒸苇、/bin磷蛹、/dev、/lib溪烤、/sbin應(yīng)該和根目錄放置在一個(gè)分區(qū)中味咳。
/bin:bin是Binary的縮寫, 這個(gè)目錄存放著最經(jīng)常使用的命令(ls,cat,mkdir等)。
/boot:這里存放的是啟動(dòng)Linux時(shí)使用的一些核心文件檬嘀,包括一些連接文件以及鏡像文件槽驶。
/dev :dev是Device(設(shè)備)的縮寫, 該目錄下存放的是Linux的外部設(shè)備,在Linux中訪問設(shè)備的方式和訪問文件的方式是相同的鸳兽。
/etc:這個(gè)目錄用來存放所有的系統(tǒng)管理所需要的配置文件和子目錄掂铐。
/home:用戶的主目錄,在Linux中贸铜,每個(gè)用戶都有一個(gè)自己的目錄堡纬,一般該目錄名是以用戶的賬號(hào)命名的,是用戶主目錄的基點(diǎn)蒿秦,比如用戶user的主目錄就是/home/user烤镐,可以用~user表示
/lib:這個(gè)目錄里存放著系統(tǒng)最基本的動(dòng)態(tài)連接共享庫(kù),其作用類似于Windows里的DLL文件棍鳖。幾乎所有的應(yīng)用程序都需要用到這些共享庫(kù)炮叶。
/lost+found:這個(gè)目錄一般情況下是空的碗旅,當(dāng)系統(tǒng)非法關(guān)機(jī)后,這里就存放了一些文件镜悉。
/media:linux系統(tǒng)會(huì)自動(dòng)識(shí)別一些設(shè)備祟辟,例如U盤、光驅(qū)等等侣肄,當(dāng)識(shí)別后旧困,linux會(huì)把識(shí)別的設(shè)備掛載到這個(gè)目錄下。
/mnt:系統(tǒng)提供該目錄是為了讓用戶臨時(shí)掛載別的文件系統(tǒng)的稼锅,我們可以將光驅(qū)掛載在/mnt/上吼具,然后進(jìn)入該目錄就可以查看光驅(qū)里的內(nèi)容了。
/opt:這是給主機(jī)額外安裝軟件所擺放的目錄矩距。比如你安裝一個(gè)ORACLE數(shù)據(jù)庫(kù)則就可以放到這個(gè)目錄下拗盒。默認(rèn)是空的。一般情況下锥债,我們可以把tomcat等都安裝到這里陡蝇。
/proc:這個(gè)目錄是一個(gè)虛擬的目錄,它是系統(tǒng)內(nèi)存的映射哮肚,我們可以通過直接訪問這個(gè)目錄來獲取系統(tǒng)信息登夫。
????????這個(gè)目錄的內(nèi)容不在硬盤上而是在內(nèi)存里,我們也可以直接修改里面的某些文件绽左,比如可以通過下面的命令來屏蔽主機(jī)的ping命令悼嫉,使別人無法ping你的機(jī)器:
????????echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:該目錄為系統(tǒng)管理員艇潭,也稱作超級(jí)權(quán)限者的用戶主目錄拼窥。
/sbin:s就是Super User的意思,這里存放的是系統(tǒng)管理員使用的系統(tǒng)管理程序蹋凝。只有root才能訪問鲁纠。這里存放的是系統(tǒng)管理員使用的系統(tǒng)級(jí)別的管理命令和程序。如ifconfig等鳍寂。
/selinux:這個(gè)目錄是Redhat/CentOS所特有的目錄改含,Selinux是一個(gè)安全機(jī)制,類似于windows的防火墻迄汛,但是這套機(jī)制比較復(fù)雜捍壤,這個(gè)目錄就是存放selinux相關(guān)的文件的。
/srv:該目錄存放一些服務(wù)啟動(dòng)之后需要提取的數(shù)據(jù)鞍爱。
/sys:這是linux2.6內(nèi)核的一個(gè)很大的變化鹃觉。該目錄下安裝了2.6內(nèi)核中新出現(xiàn)的一個(gè)文件系統(tǒng)?sysfs?。
????????sysfs文件系統(tǒng)集成了下面3種文件系統(tǒng)的信息:針對(duì)進(jìn)程信息的proc文件系統(tǒng)睹逃、針對(duì)設(shè)備的devfs文件系統(tǒng)以及針對(duì)偽終端的devpts文件系統(tǒng)盗扇。
????????該文件系統(tǒng)是內(nèi)核設(shè)備樹的一個(gè)直觀反映祷肯。當(dāng)一個(gè)內(nèi)核對(duì)象被創(chuàng)建的時(shí)候,對(duì)應(yīng)的文件和目錄也在內(nèi)核對(duì)象子系統(tǒng)中被創(chuàng)建疗隶。
/tmp:這個(gè)目錄是用來存放一些臨時(shí)文件的佑笋。
/usr:這是一個(gè)非常重要的目錄,用戶的很多應(yīng)用程序和文件都放在這個(gè)目錄下斑鼻,類似于windows下的program files目錄蒋纬。
????????/usr/x11r6?存放x window的目錄
????????/usr/bin?眾多的應(yīng)用程序 ?
????????/usr/sbin?超級(jí)用戶的一些管理程序 ?
????????/usr/doc linux文檔 ?
????????/usr/include linux下開發(fā)和編譯應(yīng)用程序所需要的頭文件 ?
????????/usr/lib?常用的動(dòng)態(tài)鏈接庫(kù)和軟件包的配置文件 ?
????????/usr/man?幫助文檔 ?
????????/usr/src?源代碼,linux內(nèi)核的源代碼就放在/usr/src/linux里 ?
????????/usr/local/bin?本地增加的命令 ?
????????/usr/local/lib?本地增加的庫(kù)
/usr/bin:系統(tǒng)用戶使用的應(yīng)用程序坚弱。
/usr/sbin:超級(jí)用戶使用的比較高級(jí)的管理程序和系統(tǒng)守護(hù)程序颠锉。
/usr/src:內(nèi)核源代碼默認(rèn)的放置目錄。
/var:這個(gè)目錄中存放著在不斷擴(kuò)充著的東西史汗,我們習(xí)慣將那些經(jīng)常被修改的目錄放在這個(gè)目錄下琼掠。包括各種日志文件。
/run:是一個(gè)臨時(shí)文件系統(tǒng)停撞,存儲(chǔ)系統(tǒng)啟動(dòng)以來的信息瓷蛙。當(dāng)系統(tǒng)重啟時(shí),這個(gè)目錄下的文件應(yīng)該被刪掉或清除戈毒。如果你的系統(tǒng)上有 /var/run 目錄艰猬,應(yīng)該讓它指向 run。
在 Linux 系統(tǒng)中埋市,有幾個(gè)目錄是比較重要的冠桃,平時(shí)需要注意不要誤刪除或者隨意更改內(nèi)部文件缩挑。
/etc:?上邊也提到了舔痕,這個(gè)是系統(tǒng)中的配置文件,如果你更改了該目錄下的某個(gè)文件可能會(huì)導(dǎo)致系統(tǒng)不能啟動(dòng)习绢。
/bin, /sbin, /usr/bin, /usr/sbin:?這是系統(tǒng)預(yù)設(shè)的執(zhí)行文件的放置目錄污茵,比如?ls?就是在/bin/ls?目錄下的樱报。
值得提出的是,/bin, /usr/bin?是給系統(tǒng)用戶使用的指令(除root外的通用戶)泞当,而/sbin, /usr/sbin?則是給root使用的指令迹蛤。
/var:?這是一個(gè)非常重要的目錄,系統(tǒng)上跑了很多程序襟士,那么每個(gè)程序都會(huì)有相應(yīng)的日志產(chǎn)生盗飒,而這些日志就被記錄到這個(gè)目錄下,具體在/var/log?目錄下陋桂,另外mail的預(yù)設(shè)放置也是在這里逆趣。
——Linux文件結(jié)構(gòu)
Linux 對(duì)數(shù)據(jù)文件(.mp3、.bmp)章喉,程序文件(.c汗贫、.h身坐、*.o),設(shè)備文件(LCD落包、觸摸屏部蛇、鼠標(biāo)),網(wǎng)絡(luò)文件( socket ) 等的管理都抽象為文件咐蝇,使用統(tǒng)一的方式方法管理涯鲁。
文件分類:
1)普通文件( 數(shù)據(jù)文件 )
普通文件是用于存放數(shù)據(jù)、程序等信息的文件有序,一般都長(zhǎng)期地存放在外存儲(chǔ)器(磁盤)中抹腿。普通文件又分為文本文件和二進(jìn)制文件。
2)目錄文件
目錄文件是文件系統(tǒng)中一個(gè)目錄所包含的目錄項(xiàng)所組成的文件旭寿。
3)設(shè)備文件
設(shè)備文件是用于為操作系統(tǒng)與設(shè)備提供連接的一種文件警绩。在Linux系統(tǒng)中將設(shè)備作為文件來處理,操作設(shè)備就像是操作普通文件一樣盅称。每一個(gè)設(shè)備對(duì)應(yīng)一個(gè)設(shè)備文件肩祥,存放在 /dev 目錄中。
5)鏈接文件
似于 windows 下的快捷方式缩膝,鏈接又可以分為軟鏈接(符號(hào)鏈接)和硬鏈接混狠。
6)管道文件
管道文件主要用于在進(jìn)程間傳遞數(shù)據(jù)的一種特殊文件。
7)套接口文件
主要用于不同計(jì)算機(jī)間網(wǎng)絡(luò)通信的一種特殊文件疾层。