溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

從心開始的CentOS學(xué)習(xí)筆記之三:文件和目錄簡介

發(fā)布時間:2020-09-25 13:18:53 來源:網(wǎng)絡(luò) 閱讀:241 作者:ycrsjxy 欄目:系統(tǒng)運維

? ? Linux使用樹狀的目錄結(jié)構(gòu)組織文件,簡單來說就是在一個目錄中放置子目錄和文件,子目錄中可以繼續(xù)放置子目錄和文件,以此類推,形似一棵樹的分支。Linux的這種文件結(jié)構(gòu)的起始點為“根目錄”,就是“/”,是一切文件的起點。FHS(文件系統(tǒng)層次標(biāo)準(zhǔn))定義了在根目錄下的主要目錄和每個目錄內(nèi)應(yīng)該放置的文件。請注意在Linux中,“文件”是一種很寬泛的概念,一切皆文件。所以不管是目錄還是設(shè)備,都是一種文件,或者說,只要是在系統(tǒng)中可以看到的都是文件。

????一、文件類型

? ? 用戶可以通過“l(fā)s -al?目錄”顯示文件類型。通過ls -al?顯示出來每行每個文件或者目錄信息的第一字符,來判斷文件類型。

????第一字符為[d],代表是一個目錄。

????第一字符為[-],代表是一個文件。

????名稱為 . ,代表當(dāng)前目錄;為..,代表當(dāng)前目錄的上一級目錄(這和Windows相同)

? ? 文件名以.開始,如下圖中的.bash_logout代表是一個隱藏文件或目錄。


????從心開始的CentOS學(xué)習(xí)筆記之三:文件和目錄簡介?


????相比Windows下的文件,Linux的文件類型,除了常規(guī)文件(純文本文件、二進(jìn)制文件、數(shù)據(jù)文件等)外,還有以下文件:

????輸入命令 ls -al /dev (顯示/dev下的所有文件的詳細(xì)信息)

? ? 區(qū)塊設(shè)備文件:第一個屬性字符為[b],一般是代表一些存儲設(shè)備。如sda代表第一塊SATA或者SCSI硬盤,hda代表第一塊IDE硬盤。

????字符設(shè)備文件:第一個屬性字符為[c],一般是一些串行端口的接口設(shè)備,如鼠標(biāo)鍵盤。

? ? 鏈接文件:第一個屬性字符為[l]的文件,它又區(qū)分為軟鏈接和硬鏈接。

? ? ????????

????從心開始的CentOS學(xué)習(xí)筆記之三:文件和目錄簡介

????數(shù)據(jù)接口文件:第一屬性字符為[s],這種類型的文件通常被用在網(wǎng)絡(luò)上的交換數(shù)據(jù)。

? ? (輸入命令 ls -al /run | grep? ^s?

????從心開始的CentOS學(xué)習(xí)筆記之三:文件和目錄簡介

????數(shù)據(jù)輸送文件(FIFO,pipe):一種特殊的文件類型,主要用來解決多個程序同時讀寫一個文件所造成的錯誤問題,F(xiàn)IFO是先進(jìn)先出(first in first out)的縮寫,即管道。

????2、文件擴(kuò)展名

????基本上,Linux沒有所謂擴(kuò)展名的概念,這一點和Windows有很大差別。在Windows下,.com .exe .bat?通常代表可執(zhí)行文件,還有.dll等類型文件。但在Linux下,一個文件是否能被執(zhí)行,它主要由兩方面決定:一是它的內(nèi)容是否是可執(zhí)行代碼,二是用戶否具有可執(zhí)行權(quán)限。跟它是否有擴(kuò)展名、擴(kuò)展名為什么無關(guān)。

? ? 當(dāng)然Linux也通過一些特定的擴(kuò)展名來區(qū)分一些特殊類型的文件,

????*.sh:代表腳本或批處理文件

????*.Z,*.tar *.tar.gz *.zip *.tga:代表經(jīng)過打包的壓縮文件

? ? *.html *.php:網(wǎng)頁文件。

????3、文件名的限制

? ? 單一文件或目錄最大容許文件名為255個字符,英文最大255個字符長度,漢字大約128個之間。

? ? 由于有些特殊字符在命令模式有特殊意義,所以* ? < . ; & ! { } | \ ' '" ` ( ) { }?等字符不能在文件名中存在。

????4、目錄配置依據(jù)(FHS)

????由于Linux開源,為了保證規(guī)范,Linux逐漸形成了的軟件開發(fā)商、操作系統(tǒng)制作者、以及想要維護(hù)系統(tǒng)的使者,都能夠遵循的目標(biāo)配置依據(jù)FHS(文件系統(tǒng)層次化標(biāo)準(zhǔn)).

????事實上,F(xiàn)HS針對目錄樹架構(gòu)僅定義出三層目錄下面應(yīng)該放置什么數(shù)據(jù)而已,分別是:

?????/ (root, 根目錄):與開機(jī)系統(tǒng)有關(guān);

?????根目錄是整個系統(tǒng)最重要的一個目錄,因為不但所有的目錄都是由根目錄衍生出來的,同時根目錄也與開機(jī)/還原/系統(tǒng)修復(fù)等動作有關(guān)。 由于系統(tǒng)開機(jī)時需要特定的開機(jī)軟件、核心文件、開機(jī)所需程序、函數(shù)庫等等文件數(shù)據(jù),若系統(tǒng)出現(xiàn)錯誤時,根目錄也必須要包含有能夠修復(fù)文件系統(tǒng)的程序才行。 因為根目錄是這么的重要,所以在FHS的要求方面,他希望根目錄不要放在非常大的分區(qū)內(nèi), 因為越大的分區(qū)你會放入越多的數(shù)據(jù),如此一來根目錄所在分區(qū)就可能會有較多發(fā)生錯誤的機(jī)會。因此FHS標(biāo)準(zhǔn)建議:根目錄(/)所在分區(qū)應(yīng)該越小越好, 且應(yīng)用程序所安裝的軟件最好不要與根目錄放在同一個分區(qū)內(nèi),保持根目錄越小越好。 如此不但性能較佳,根目錄所在的文件系統(tǒng)也較不容易發(fā)生問題。

? ? ?/usr (unix software resource):與軟件安裝/執(zhí)行有關(guān);

?????/var (variable):與系統(tǒng)運行過程有關(guān)。

? ? 根目錄(/)FHS要求必須要存在的目錄

????從心開始的CentOS學(xué)習(xí)筆記之三:文件和目錄簡介

????根目錄(/)FHS建議可以存在的目錄

????/home:是系統(tǒng)默認(rèn)的使用者主文件夾(home directory)。在用戶新增一個一般使用者帳號時, 默認(rèn)的使用者主文件夾都會規(guī)范到這里來。比較重要的是,主文件夾有兩種代號喔:~:代表目前這個使用者的主文件夾 ~fromheart :則代表fromheart 的主文件夾。

????/lib<qual>:用來存放與 /lib 不同的格式的二進(jìn)制函數(shù)庫,例如支持 64 位的 /lib64 函數(shù)庫等

? ? /root:系統(tǒng)管理員(root)的主文件夾。之所以放在這里,是因為如果進(jìn)入單用戶維護(hù)模式而僅掛載根目錄時,該目錄就能夠擁有root的主文件夾,所以用戶會希望root的主文件夾與根目錄放置在同一個分區(qū)中。

????

????/usr/下FHS要求必須要存在的目錄

????/usr/bin/:所有一般用戶能夠使用的指令都放在這里!目前新的 CentOS 7 已經(jīng)將全部的使用者指令放置于此,而使用鏈接文件的方式將 /bin 鏈接至此!也就是說, /usr/bin 與 /bin 是一模一樣了!另外,F(xiàn)HS 要求在此目錄下不應(yīng)該有子目錄。

????/usr/lib/: 基本上,與 /lib 功能相同,所以 /lib 就是鏈接到此目錄中的。

????/usr/local/:系統(tǒng)管理員在本機(jī)自行安裝自己下載的軟件(非distribution默認(rèn)提供者),建議安裝到此目錄, 這樣會比較便于管理。

????/usr/sbin/:非系統(tǒng)正常運行所需要的系統(tǒng)指令。最常見的就是某些網(wǎng)絡(luò)服務(wù)器軟件的服務(wù)指令(daemon),不過基本功能與 /sbin 也差不多, 因此目前 /sbin 就是鏈接到此目錄中的。

????/usr/share/:主要放置只讀架構(gòu)的數(shù)據(jù)文件,當(dāng)然也包括共享文件。在這個目錄下放置的數(shù)據(jù)幾乎是不分硬件架構(gòu)均可讀取的數(shù)據(jù), 因為幾乎都是文字文件,在此目錄下常見的還有這些次目錄:/usr/share/man:線上說明文檔;/usr/share/doc:軟件雜項的文件說明 /usr/share/zoneinfo:與時區(qū)有關(guān)的時區(qū)文件

????

????/usr下FHS建議可以存在的目錄

????/usr/games/: 與游戲比較相關(guān)的數(shù)據(jù)放置處。

????/usr/include/:c/c++等程序語言的文件。

????/usr/libexec/:某些不被一般使用者慣用的可執(zhí)行文件或腳本(script)等等,都會放置在此目錄中。例如大部分的 X 窗口下面的操作指令, 很多都是放在此目錄下的。

????/usr/lib<qual>/: 與 /lib<qual>/功能相同,因此目前 /lib<qual> 就是鏈接到此目錄中。

????/usr/src/:一般源代碼建議放置到這里。至于核心源代碼則建議放置到/usr/src/linux/目錄下。


????/var/下FHS要求必須要存在的目錄

????/var/cache/: 應(yīng)用程序本身運行過程中會產(chǎn)生的一些暫存盤;

????/var/lib/:程序本身執(zhí)行的過程中,需要使用到的數(shù)據(jù)文件放置的目錄。在此目錄下各自的軟件應(yīng)該要有各自的目錄。 舉例來說,MySQL的數(shù)據(jù)庫放置到/var/lib/mysql/而rpm的數(shù)據(jù)庫則放到/var/lib/rpm去!

????/var/lock/:某些設(shè)備或者是文件資源一次只能被一個應(yīng)用程序所使用,如果同時有兩個程序使用該設(shè)備時, 就可能產(chǎn)生一些錯誤的狀況,因此就得要將該設(shè)備上鎖(lock),以確保該設(shè)備只會給單一軟件所使用。????????

????/var/log/:日志文件目錄,里面比較重要的文件如/var/log/messages, /var/log/wtmp(記錄登陸者的信息)等。

????/var/mail/:放置個人電子郵件信箱的目錄,不過這個目錄也被放置到/var/spool/mail/目錄中! 通常這兩個目錄是互為鏈接文件。

????/var/run/:某些程序或者是服務(wù)啟動后,會將他們的PID放置在這個目錄下。與 /run 相同,這個目錄鏈接到 /run去了!

????/var/spool/:這個目錄通常放置一些隊列數(shù)據(jù)。

? ? ?

????其他重要目錄

? ???/lost+found:這個目錄是使用標(biāo)準(zhǔn)的ext2/ext3/ext4文件系統(tǒng)格式才會產(chǎn)生的一個目錄,目的在于當(dāng)文件系統(tǒng)發(fā)生錯誤時, 將一些遺失的片段放置到這個目錄下。不過如果使用的是 xfs 文件系統(tǒng)的話,就不會存在這個目錄了!

????/proc:這個目錄本身是一個“虛擬文件系統(tǒng)(virtual filesystem)”。他放置的數(shù)據(jù)都是在內(nèi)存當(dāng)中, 例如系統(tǒng)核心、行程信息(process)、周邊設(shè)備的狀態(tài)及網(wǎng)絡(luò)狀態(tài)等等。因為這個目錄下的數(shù)據(jù)都是在內(nèi)存當(dāng)中, 所以本身不占任何硬盤空間??!比較重要的文件例如:/proc/cpuinfo, /proc/dma,/proc/interrupts, /proc/ioports, /proc/net/* 等等。

????/sys:這個目錄其實跟/proc非常類似,也是一個虛擬的文件系統(tǒng),主要也是記錄核心與系統(tǒng)硬件信息較相關(guān)的信息。 包括目前已載入的核心模塊與核心偵測到的硬件設(shè)備信息等等。這個目錄同樣不占硬盤容量。





? ? ?

????





? ?

?? ?? ? ????


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI