? ? Linux使用樹(shù)狀的目錄結(jié)構(gòu)組織文件,簡(jiǎn)單來(lái)說(shuō)就是在一個(gè)目錄中放置子目錄和文件,子目錄中可以繼續(xù)放置子目錄和文件,以此類(lèi)推,形似一棵樹(shù)的分支。Linux的這種文件結(jié)構(gòu)的起始點(diǎn)為“根目錄”,就是“/”,是一切文件的起點(diǎn)。FHS(文件系統(tǒng)層次標(biāo)準(zhǔn))定義了在根目錄下的主要目錄和每個(gè)目錄內(nèi)應(yīng)該放置的文件。請(qǐng)注意在Linux中,“文件”是一種很寬泛的概念,一切皆文件。所以不管是目錄還是設(shè)備,都是一種文件,或者說(shuō),只要是在系統(tǒng)中可以看到的都是文件。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),申扎企業(yè)網(wǎng)站建設(shè),申扎品牌網(wǎng)站建設(shè),網(wǎng)站定制,申扎網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,申扎網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
????一、文件類(lèi)型
? ? 用戶(hù)可以通過(guò)“l(fā)s -al?目錄”顯示文件類(lèi)型。通過(guò)ls -al?顯示出來(lái)每行每個(gè)文件或者目錄信息的第一字符,來(lái)判斷文件類(lèi)型。
????第一字符為[d],代表是一個(gè)目錄。
????第一字符為[-],代表是一個(gè)文件。
????名稱(chēng)為 . ,代表當(dāng)前目錄;為..,代表當(dāng)前目錄的上一級(jí)目錄(這和Windows相同)
? ? 文件名以.開(kāi)始,如下圖中的.bash_logout代表是一個(gè)隱藏文件或目錄。
?????
????相比Windows下的文件,Linux的文件類(lèi)型,除了常規(guī)文件(純文本文件、二進(jìn)制文件、數(shù)據(jù)文件等)外,還有以下文件:
????輸入命令 ls -al /dev (顯示/dev下的所有文件的詳細(xì)信息)
? ? 區(qū)塊設(shè)備文件:第一個(gè)屬性字符為[b],一般是代表一些存儲(chǔ)設(shè)備。如sda代表第一塊SATA或者SCSI硬盤(pán),hda代表第一塊IDE硬盤(pán)。
????字符設(shè)備文件:第一個(gè)屬性字符為[c],一般是一些串行端口的接口設(shè)備,如鼠標(biāo)鍵盤(pán)。
? ? 鏈接文件:第一個(gè)屬性字符為[l]的文件,它又區(qū)分為軟鏈接和硬鏈接。
? ? ????????
????
????數(shù)據(jù)接口文件:第一屬性字符為[s],這種類(lèi)型的文件通常被用在網(wǎng)絡(luò)上的交換數(shù)據(jù)。
? ? (輸入命令 ls -al /run | grep? ^s?
????
????數(shù)據(jù)輸送文件(FIFO,pipe):一種特殊的文件類(lèi)型,主要用來(lái)解決多個(gè)程序同時(shí)讀寫(xiě)一個(gè)文件所造成的錯(cuò)誤問(wèn)題,F(xiàn)IFO是先進(jìn)先出(first in first out)的縮寫(xiě),即管道。
????2、文件擴(kuò)展名
????基本上,Linux沒(méi)有所謂擴(kuò)展名的概念,這一點(diǎn)和Windows有很大差別。在Windows下,.com .exe .bat?通常代表可執(zhí)行文件,還有.dll等類(lèi)型文件。但在Linux下,一個(gè)文件是否能被執(zhí)行,它主要由兩方面決定:一是它的內(nèi)容是否是可執(zhí)行代碼,二是用戶(hù)否具有可執(zhí)行權(quán)限。跟它是否有擴(kuò)展名、擴(kuò)展名為什么無(wú)關(guān)。
? ? 當(dāng)然Linux也通過(guò)一些特定的擴(kuò)展名來(lái)區(qū)分一些特殊類(lèi)型的文件,
????*.sh:代表腳本或批處理文件
????*.Z,*.tar *.tar.gz *.zip *.tga:代表經(jīng)過(guò)打包的壓縮文件
? ? *.html *.php:網(wǎng)頁(yè)文件。
????3、文件名的限制
? ? 單一文件或目錄最大容許文件名為255個(gè)字符,英文最大255個(gè)字符長(zhǎng)度,漢字大約128個(gè)之間。
? ? 由于有些特殊字符在命令模式有特殊意義,所以* ? < . ; & ! { } | \ ' '" ` ( ) { }?等字符不能在文件名中存在。
????4、目錄配置依據(jù)(FHS)
????由于Linux開(kāi)源,為了保證規(guī)范,Linux逐漸形成了的軟件開(kāi)發(fā)商、操作系統(tǒng)制作者、以及想要維護(hù)系統(tǒng)的使者,都能夠遵循的目標(biāo)配置依據(jù)FHS(文件系統(tǒng)層次化標(biāo)準(zhǔn)).
????事實(shí)上,F(xiàn)HS針對(duì)目錄樹(shù)架構(gòu)僅定義出三層目錄下面應(yīng)該放置什么數(shù)據(jù)而已,分別是:
?????/ (root, 根目錄):與開(kāi)機(jī)系統(tǒng)有關(guān);
?????根目錄是整個(gè)系統(tǒng)最重要的一個(gè)目錄,因?yàn)椴坏械哪夸浂际怯筛夸浹苌鰜?lái)的,同時(shí)根目錄也與開(kāi)機(jī)/還原/系統(tǒng)修復(fù)等動(dòng)作有關(guān)。 由于系統(tǒng)開(kāi)機(jī)時(shí)需要特定的開(kāi)機(jī)軟件、核心文件、開(kāi)機(jī)所需程序、函數(shù)庫(kù)等等文件數(shù)據(jù),若系統(tǒng)出現(xiàn)錯(cuò)誤時(shí),根目錄也必須要包含有能夠修復(fù)文件系統(tǒng)的程序才行。 因?yàn)楦夸浭沁@么的重要,所以在FHS的要求方面,他希望根目錄不要放在非常大的分區(qū)內(nèi), 因?yàn)樵酱蟮姆謪^(qū)你會(huì)放入越多的數(shù)據(jù),如此一來(lái)根目錄所在分區(qū)就可能會(huì)有較多發(fā)生錯(cuò)誤的機(jī)會(huì)。因此FHS標(biāo)準(zhǔn)建議:根目錄(/)所在分區(qū)應(yīng)該越小越好, 且應(yīng)用程序所安裝的軟件最好不要與根目錄放在同一個(gè)分區(qū)內(nèi),保持根目錄越小越好。 如此不但性能較佳,根目錄所在的文件系統(tǒng)也較不容易發(fā)生問(wèn)題。
? ? ?/usr (unix software resource):與軟件安裝/執(zhí)行有關(guān);
?????/var (variable):與系統(tǒng)運(yùn)行過(guò)程有關(guān)。
? ? 根目錄(/)FHS要求必須要存在的目錄
????
????根目錄(/)FHS建議可以存在的目錄
????/home:是系統(tǒng)默認(rèn)的使用者主文件夾(home directory)。在用戶(hù)新增一個(gè)一般使用者帳號(hào)時(shí), 默認(rèn)的使用者主文件夾都會(huì)規(guī)范到這里來(lái)。比較重要的是,主文件夾有兩種代號(hào)喔:~:代表目前這個(gè)使用者的主文件夾 ~fromheart :則代表fromheart 的主文件夾。
????/lib
? ? /root:系統(tǒng)管理員(root)的主文件夾。之所以放在這里,是因?yàn)槿绻M(jìn)入單用戶(hù)維護(hù)模式而僅掛載根目錄時(shí),該目錄就能夠擁有root的主文件夾,所以用戶(hù)會(huì)希望root的主文件夾與根目錄放置在同一個(gè)分區(qū)中。
????
????/usr/下FHS要求必須要存在的目錄
????/usr/bin/:所有一般用戶(hù)能夠使用的指令都放在這里!目前新的 CentOS 7 已經(jīng)將全部的使用者指令放置于此,而使用鏈接文件的方式將 /bin 鏈接至此!也就是說(shuō), /usr/bin 與 /bin 是一模一樣了!另外,F(xiàn)HS 要求在此目錄下不應(yīng)該有子目錄。
????/usr/lib/: 基本上,與 /lib 功能相同,所以 /lib 就是鏈接到此目錄中的。
????/usr/local/:系統(tǒng)管理員在本機(jī)自行安裝自己下載的軟件(非distribution默認(rèn)提供者),建議安裝到此目錄, 這樣會(huì)比較便于管理。
????/usr/sbin/:非系統(tǒng)正常運(yùn)行所需要的系統(tǒng)指令。最常見(jiàn)的就是某些網(wǎng)絡(luò)服務(wù)器軟件的服務(wù)指令(daemon),不過(guò)基本功能與 /sbin 也差不多, 因此目前 /sbin 就是鏈接到此目錄中的。
????/usr/share/:主要放置只讀架構(gòu)的數(shù)據(jù)文件,當(dāng)然也包括共享文件。在這個(gè)目錄下放置的數(shù)據(jù)幾乎是不分硬件架構(gòu)均可讀取的數(shù)據(jù), 因?yàn)閹缀醵际俏淖治募?,在此目錄下常?jiàn)的還有這些次目錄:/usr/share/man:線(xiàn)上說(shuō)明文檔;/usr/share/doc:軟件雜項(xiàng)的文件說(shuō)明 /usr/share/zoneinfo:與時(shí)區(qū)有關(guān)的時(shí)區(qū)文件
????
????/usr下FHS建議可以存在的目錄
????/usr/games/: 與游戲比較相關(guān)的數(shù)據(jù)放置處。
????/usr/include/:c/c++等程序語(yǔ)言的文件。
????/usr/libexec/:某些不被一般使用者慣用的可執(zhí)行文件或腳本(script)等等,都會(huì)放置在此目錄中。例如大部分的 X 窗口下面的操作指令, 很多都是放在此目錄下的。
????/usr/lib
????/usr/src/:一般源代碼建議放置到這里。至于核心源代碼則建議放置到/usr/src/linux/目錄下。
????/var/下FHS要求必須要存在的目錄
????/var/cache/: 應(yīng)用程序本身運(yùn)行過(guò)程中會(huì)產(chǎn)生的一些暫存盤(pán);
????/var/lib/:程序本身執(zhí)行的過(guò)程中,需要使用到的數(shù)據(jù)文件放置的目錄。在此目錄下各自的軟件應(yīng)該要有各自的目錄。 舉例來(lái)說(shuō),MySQL的數(shù)據(jù)庫(kù)放置到/var/lib/mysql/而rpm的數(shù)據(jù)庫(kù)則放到/var/lib/rpm去!
????/var/lock/:某些設(shè)備或者是文件資源一次只能被一個(gè)應(yīng)用程序所使用,如果同時(shí)有兩個(gè)程序使用該設(shè)備時(shí), 就可能產(chǎn)生一些錯(cuò)誤的狀況,因此就得要將該設(shè)備上鎖(lock),以確保該設(shè)備只會(huì)給單一軟件所使用。????????
????/var/log/:日志文件目錄,里面比較重要的文件如/var/log/messages, /var/log/wtmp(記錄登陸者的信息)等。
????/var/mail/:放置個(gè)人電子郵件信箱的目錄,不過(guò)這個(gè)目錄也被放置到/var/spool/mail/目錄中! 通常這兩個(gè)目錄是互為鏈接文件。
????/var/run/:某些程序或者是服務(wù)啟動(dòng)后,會(huì)將他們的PID放置在這個(gè)目錄下。與 /run 相同,這個(gè)目錄鏈接到 /run去了!
????/var/spool/:這個(gè)目錄通常放置一些隊(duì)列數(shù)據(jù)。
? ? ?
????其他重要目錄
? ???/lost+found:這個(gè)目錄是使用標(biāo)準(zhǔn)的ext2/ext3/ext4文件系統(tǒng)格式才會(huì)產(chǎn)生的一個(gè)目錄,目的在于當(dāng)文件系統(tǒng)發(fā)生錯(cuò)誤時(shí), 將一些遺失的片段放置到這個(gè)目錄下。不過(guò)如果使用的是 xfs 文件系統(tǒng)的話(huà),就不會(huì)存在這個(gè)目錄了!
????/proc:這個(gè)目錄本身是一個(gè)“虛擬文件系統(tǒng)(virtual filesystem)”。他放置的數(shù)據(jù)都是在內(nèi)存當(dāng)中, 例如系統(tǒng)核心、行程信息(process)、周邊設(shè)備的狀態(tài)及網(wǎng)絡(luò)狀態(tài)等等。因?yàn)檫@個(gè)目錄下的數(shù)據(jù)都是在內(nèi)存當(dāng)中, 所以本身不占任何硬盤(pán)空間?。”容^重要的文件例如:/proc/cpuinfo, /proc/dma,/proc/interrupts, /proc/ioports, /proc/net/* 等等。
????/sys:這個(gè)目錄其實(shí)跟/proc非常類(lèi)似,也是一個(gè)虛擬的文件系統(tǒng),主要也是記錄核心與系統(tǒng)硬件信息較相關(guān)的信息。 包括目前已載入的核心模塊與核心偵測(cè)到的硬件設(shè)備信息等等。這個(gè)目錄同樣不占硬盤(pán)容量。
? ? ?
????
? ?
?? ?? ? ????