生活随笔
收集整理的這篇文章主要介紹了
Linux根目录详解-转自鸟哥的私房菜
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
轉(zhuǎn)自:http://myhat.blog.51cto.com/391263/107931/ ? - *根目錄(/)的意義與內(nèi)容: 根目錄是整個(gè)系統(tǒng)最重要的一個(gè)目錄,因?yàn)椴坏械哪夸浂际怯筛夸浹苌鰜淼?#xff0c;同時(shí)根目錄也與開機(jī)/還原/系統(tǒng)修復(fù)等動(dòng)作有關(guān)。 由于系統(tǒng)開機(jī)時(shí)需要特定的開機(jī)軟體、核心檔案、開機(jī)所需程式。函式庫等等檔案資料,若系統(tǒng)出現(xiàn)錯(cuò)誤時(shí),根目錄也需要包含有能夠修復(fù)檔案系統(tǒng)的程式才行。 因?yàn)楦夸浭沁@么的重要,所以在FHS的要求方面,他希望根目錄不要放在非常大的分割槽內(nèi), 因?yàn)樵酱蟮姆指畈勰銜?huì)放入越多的資料,如此一來根目錄所在分割槽就可能會(huì)有較多的發(fā)生錯(cuò)誤的機(jī)會(huì)。 因此FHS標(biāo)準(zhǔn)建議:根目錄(/)所在分割槽應(yīng)該越小越好,且應(yīng)用程式所安排的軟體最好不要與根目錄放在同一個(gè)分割槽內(nèi),保持根目錄越小也好。如此不但效能較佳,根目錄所在的檔案系統(tǒng)也較不容易發(fā)生問題。 有鑒于上述的說明,因此FHS定義根目錄(/)底下應(yīng)該要有底下這些次目錄的存在才好:
| 目錄 | 應(yīng)放置檔案內(nèi)容 |
| /bin | 系統(tǒng)有很多放置執(zhí)行檔的目錄,但/bin 比較特殊。因?yàn)?bin 放置的在單人維護(hù)模式下還能夠被操作的指令。在/bin底下的指令可以被root一般賬號(hào)所使用,主要有:cat,chmod,chown,date,mv,mkdir,cp,bash等等常用的指令。 |
| /boot | 這個(gè)目錄主要是放置開機(jī)會(huì)使用到的檔案,包括Linux核心檔案以及開機(jī)選單與關(guān)機(jī)所需設(shè)定檔等等。Linux Kernel常用的檔名為:vmlinuz, ?如果使用的是grub這個(gè)開機(jī)管理程式,則還會(huì)存在/boot/grub這個(gè)目錄哦! |
| /dev | 在Linux系統(tǒng)上,任何裝置與周邊設(shè)備都是以檔案的形態(tài)存在于這個(gè)目錄當(dāng)中的. 你只要透過存取這個(gè)目錄底下的某個(gè)檔案,就等于存取某個(gè)裝置哦~ 比較重要的檔案有/dev/null,/dev/zero./dev/tty,/dev/lp*,/dev/hd*,/dev/sd*等等 |
| /etc | 系統(tǒng)主要的設(shè)定檔幾乎都放置在這個(gè)目錄內(nèi),例如人員的賬號(hào)密碼檔,各種服務(wù)的起始檔等等。一般來說,這個(gè)目錄下的各檔案屬性是可以讓一般使用者查閱的,但是只有root有權(quán)限修改。 FHS建議不要放置可執(zhí)行檔(binary)在這個(gè)目錄中哦。比較重要的檔案有:/etc/inittab,/etc/init.d,/etc/modprobe.conf,/etc/X11,/etc/fstab,/etc/sysconfig等等。另外,其下重要的目錄有: - /etc/init.d/:所有服務(wù)的預(yù)設(shè)啟動(dòng) .?都是放在這里的,例如要啟動(dòng)或關(guān)閉iptables?的話:『?/etc/init.d/iptables start』、『/etc/init.d/iptables stop』
- /etc/xinetd.d/:這就是所謂的super daemon管理各項(xiàng)服務(wù)的設(shè)定檔。
- /etc/X11/:與Xwindow有關(guān)的各種設(shè)定檔,尤其是?xorg.conf?或?XF86Config 這兩個(gè) X Server?的設(shè)定檔。
|
| /home | 這個(gè)系統(tǒng)預(yù)設(shè)的使用者家目錄(home directory)。在你新增一個(gè)一般使用者賬號(hào)時(shí),預(yù)設(shè)的使用者家目錄就會(huì)規(guī)范到這里來。比較重要的是,家目錄有兩種代號(hào): ~:代表目前這個(gè)使用者的家目錄, ~dmtsai :則代表dmtsai 的家目錄! |
| /lib | 系統(tǒng)的函式庫非常的多,而/lib放置的則是在開機(jī)時(shí)會(huì)用到的函式庫,以及在/bin或、sbin/底下的指令會(huì)呼叫的函式庫而已。什么是函式庫呢?你可以將它想成是『外掛』,某些指令必須要有這些『外掛』才能夠順利完成程式的執(zhí)行之意。尤其重要的是/lib/modules/這個(gè)目錄,因?yàn)樵撃夸洉?huì)放置核心先關(guān)的模組(驅(qū)動(dòng)程式)哦! |
| /media | media是『媒體』的英文,顧名思義,這個(gè)/media底下放置的就是可移除的裝置啦!包括軟碟、光碟、DVD等等裝置都暫時(shí)掛在于此。常見的檔名有:、media/floppy, /media/cdrom等等。 |
| /mnt | 如果你想要暫時(shí)掛在某些額外的裝置,一般建議你可以放置到這個(gè)目錄中。在古早時(shí)候,這個(gè)目錄的用途與/media相同,知識(shí)有了/media 之后,這個(gè)目錄就用來暫時(shí)掛在用了。 |
| /opt | 這個(gè)是給第三方協(xié)力軟體放置的目錄.什么是第三方協(xié)力軟體啊?舉例來說,KDE這個(gè)桌面管理系統(tǒng)是一個(gè)獨(dú)立的計(jì)劃,不過他可以安裝到Linux系統(tǒng)中,因此KDE的軟體就建議放置到此目錄下了。 另外,如果你想要自行安裝額外的軟體(非原本的distribution提供的),那么也能夠?qū)⒛愕能涹w安裝到這里來,不過,以前的Linux系統(tǒng)中,我們還是習(xí)慣放置在/user/local目錄下。 |
| /root | 系統(tǒng)管理員(root)的家目錄。 之所以放在這里,是因?yàn)槿绻M(jìn)入單人維護(hù)模式而僅掛載根目錄時(shí),該目錄就能夠擁有root的家目錄,所以我們會(huì)希望root的家目錄與根目錄放置在同一個(gè)分割槽中。 |
| /sbin | Linux有非常多指令時(shí)用來設(shè)定系統(tǒng)環(huán)境的, 這些指令只有root 才能夠用來【設(shè)定】系統(tǒng),其他使用者最多只能用來【查詢】而已。 放在/sbin 底下的為開機(jī)過程中所需要的,里面包括了開機(jī)、修復(fù)、還原系統(tǒng)所需要的指令。 至于某些服務(wù)器軟體程式,一般則放置到/user/sbin當(dāng)中。 至于本機(jī)自行安裝的軟體所產(chǎn)生的系統(tǒng)執(zhí)行檔(system binary),則放置到/user/local/sbin、當(dāng)中了。 常見的指令包括: fdisk,fsck,ifconfig,init,mkfs 等等。 |
| /srv | srv可以視為【service】的縮寫,是一些網(wǎng)路服務(wù)啟動(dòng)之后,這些服務(wù)所需要取用的資料目錄。 常見的服務(wù)例如WWW,FTP等等。舉例來說,WWW服務(wù)器需要的網(wǎng)頁資料就可以放置在/srv/www里面。 |
| /tmp | 這是讓一般使用者或者是正在執(zhí)行的程序暫時(shí)放置檔案的地方。這個(gè)目錄是人和人都能夠存取的,所以你需要定期的清理一下。 當(dāng)然,重要資料不可放置在此目錄。 因?yàn)镕HS甚至建議在開機(jī)時(shí),應(yīng)該要將/tmp下的資料都刪除! |
? 事實(shí)上FHS針對(duì)根目錄所定義的標(biāo)準(zhǔn)就僅有上面的東西,不過我們的Linux底下還有許多目錄你也需要了解一下的。 底下是幾個(gè)在Linux當(dāng)中也是非常重要的目錄哦: | 目錄 | 應(yīng)放置檔案內(nèi)容 |
| /lost+found | 這個(gè)目錄是使用標(biāo)準(zhǔn)的ext2/ext3檔案系統(tǒng)格式才會(huì)產(chǎn)生的一個(gè)目錄,目的在於當(dāng)檔案系統(tǒng)發(fā)生錯(cuò)誤時(shí), 將一些遺失的片段放置到這個(gè)目錄下。這個(gè)目錄通常會(huì)在分割槽的最頂層存在, 例如你加裝一顆硬碟於/disk中,那在這個(gè)系統(tǒng)下就會(huì)自動(dòng)產(chǎn)生一個(gè)這樣的目錄『/disk/lost+found』 |
| /proc | 這個(gè)目錄本身是一個(gè)『虛擬檔案系統(tǒng)(virtual filesystem)』喔!他放置的資料都是在記憶體當(dāng)中, 例如系統(tǒng)核心、行程資訊(process)、周邊裝置的狀態(tài)及網(wǎng)路狀態(tài)等等。因?yàn)檫@個(gè)目錄下的資料都是在記憶體當(dāng)中, 所以本身不佔(zhàn)任何硬碟空間啊!比較重要的檔案例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/*?等等。 |
| /sys | 這個(gè)目錄其實(shí)跟/proc非常類似,也是一個(gè)虛擬的檔案系統(tǒng),主要也是記錄與核心相關(guān)的資訊。 包括目前已載入的核心模組與核心偵測(cè)到的硬體裝置資訊等等。這個(gè)目錄同樣不佔(zhàn)硬碟容量喔! |
除了這些目錄的內(nèi)容之外,另外要注意的是,因?yàn)楦夸浥c開機(jī)有關(guān),開機(jī)過程中僅有根目錄會(huì)被掛載, 其他分割槽則是在開機(jī)完成之後才會(huì)持續(xù)的進(jìn)行掛載的行為。就是因?yàn)槿绱?#xff0c;因此根目錄下與開機(jī)過程有關(guān)的目錄, 就不能夠與根目錄放到不同的分割槽去!那哪些目錄不可與根目錄分開呢?有底下這些: - /etc:設(shè)定檔
- /bin:重要執(zhí)行檔
- /dev:所需要的裝置檔案
- /lib:執(zhí)行檔所需的函式庫與核心所需的模組
- /sbin:重要的系統(tǒng)執(zhí)行檔
這五個(gè)目錄千萬不可與根目錄分開在不同的分割槽!請(qǐng)背下來啊! 好了,談完了根目錄,接下來我們就來談?wù)?usr以及/var囉!先看/usr裡面有些什麼東西: 依據(jù)FHS的基本定義,/usr裡面放置的資料屬於可分享的與不可變動(dòng)的(shareable, static), 如果你知道如何透過網(wǎng)路進(jìn)行分割槽的掛載(例如在伺服器篇會(huì)談到的NFS伺服器),那麼/usr確實(shí)可以分享給區(qū)域網(wǎng)路內(nèi)的其他主機(jī)來使用喔! 很多讀者都會(huì)誤會(huì)/usr為user的縮寫,其實(shí)usr是Unix Software Resource的縮寫, 也就是『Unix作業(yè)系統(tǒng)軟體資源』所放置的目錄,而不是使用者的資料啦!這點(diǎn)要注意。?FHS建議所有軟體開發(fā)者,應(yīng)該將他們的資料合理的分別放置到這個(gè)目錄下的次目錄,而不要自行建立該軟體自己獨(dú)立的目錄。 因?yàn)槭撬邢到y(tǒng)預(yù)設(shè)的軟體(distribution發(fā)佈者提供的軟體)都會(huì)放置到/usr底下,因此這個(gè)目錄有點(diǎn)類似Windows?系統(tǒng)的『C:\Windows\ + C:\Program files\』這兩個(gè)目錄的綜合體,系統(tǒng)剛安裝完畢時(shí),這個(gè)目錄會(huì)佔(zhàn)用最多的硬碟容量。 一般來說,/usr的次目錄建議有底下這些: | 目錄 | 應(yīng)放置檔案內(nèi)容 |
| /usr/X11R6/ | 為X Window System重要資料所放置的目錄,之所以取名為X11R6是因?yàn)樽钺岬腦版本為第11版,且該版的第6次釋出之意。 |
| /usr/bin/ | 絕大部分的使用者可使用指令都放在這裡!請(qǐng)注意到他與/bin的不同之處。(是否與開機(jī)過程有關(guān)) |
| /usr/include/ | c/c++等程式語言的檔頭(header)與包含檔(include)放置處,當(dāng)我們以tarball方式?(*.tar.gz?的方式安裝軟體)安裝某些資料時(shí),會(huì)使用到裡頭的許多包含檔喔! |
| /usr/lib/ | 包含各應(yīng)用軟體的函式庫、目標(biāo)檔案(object file),以及不被一般使用者慣用的執(zhí)行檔或腳本(.)。 某些軟體會(huì)提供一些特殊的指令來進(jìn)行伺服器的設(shè)定,這些指令也不會(huì)經(jīng)常被系統(tǒng)管理員操作, 那就會(huì)被擺放到這個(gè)目錄下啦。要注意的是,如果你使用的是X86_64的Linux系統(tǒng), 那可能會(huì)有/usr/lib64/目錄產(chǎn)生喔! |
| /usr/local/ | 系統(tǒng)管理員在本機(jī)自行安裝自己下載的軟體(非distribution預(yù)設(shè)提供者),建議安裝到此目錄, 這樣會(huì)比較便於管理。舉例來說,你的distribution提供的軟體較舊,你想安裝較新的軟體但又不想移除舊版, 此時(shí)你可以將新版軟體安裝於/usr/local/目錄下,可與原先的舊版軟體有分別啦! 你可以自行到/usr/local去看看,該目錄下也是具有bin, etc, include, lib...的次目錄喔! |
| /usr/sbin/ | 非系統(tǒng)正常運(yùn)作所需要的系統(tǒng)指令。最常見的就是某些網(wǎng)路伺服器軟體的服務(wù)指令(daemon)囉! |
| /usr/share/ | 放置共享文件的地方,在這個(gè)目錄下放置的資料幾乎是不分硬體架構(gòu)均可讀取的資料, 因?yàn)閹缀醵际俏淖謾n案嘛!在此目錄下常見的還有這些次目錄: - /usr/share/man:線上說明文件
- /usr/share/doc:軟體雜項(xiàng)的文件說明
- /usr/share/zoneinfo:與時(shí)區(qū)有關(guān)的時(shí)區(qū)檔案
|
| /usr/src/ | 一般原始碼建議放置到這裡,src有source的意思。至於核心原始碼則建議放置到/usr/src/linux/目錄下。 |
如果/usr是安裝時(shí)會(huì)佔(zhàn)用較大硬碟容量的目錄,那麼/var就是在系統(tǒng)運(yùn)作後才會(huì)漸漸佔(zhàn)用硬碟容量的目錄。 因?yàn)?var目錄主要針對(duì)常態(tài)性變動(dòng)的檔案,包括快取(cache)、登錄檔(log file)以及某些軟體運(yùn)作所產(chǎn)生的檔案, 包括程序檔案(lock file, run file),或者例如MySQL資料庫的檔案等等。常見的次目錄有: | 目錄 | 應(yīng)放置檔案內(nèi)容 |
| /var/cache/ | 應(yīng)用程式本身運(yùn)作過程中會(huì)產(chǎn)生的一些暫存檔; |
| /var/lib/ | 程式本身執(zhí)行的過程中,需要使用到的資料檔案放置的目錄。在此目錄下各自的軟體應(yīng)該要有各自的目錄。 舉例來說,MySQL的資料庫放置到/var/lib/mysql/而rpm的資料庫則放到/var/lib/rpm去! |
| /var/lock/ | 某些裝置或者是檔案資源一次只能被一個(gè)應(yīng)用程式所使用,如果同時(shí)有兩個(gè)程式使用該裝置時(shí), 就可能產(chǎn)生一些錯(cuò)誤的狀況,因此就得要將該裝置上所(lock),以確保該裝置只會(huì)給單一軟體所使用。 舉例來說,燒錄機(jī)正在燒錄一塊光碟,你想一下,會(huì)不會(huì)有兩個(gè)人同時(shí)在使用一個(gè)燒錄機(jī)燒片? 如果兩個(gè)人同時(shí)燒錄,那片子寫入的是誰的資料?所以當(dāng)?shù)谝粋€(gè)人在燒錄時(shí)該燒錄機(jī)就會(huì)被上鎖, 第二個(gè)人就得要該裝置被解除鎖定(就是前一個(gè)人用完了)才能夠繼續(xù)使用囉。 |
| /var/log/ | 重要到不行!這是登錄檔放置的目錄!裡面比較重要的檔案如/var/log/messages, /var/log/wtmp(記錄登入者的資訊)等。 |
| /var/mail/ | 放置個(gè)人電子郵件信箱的目錄,不過這個(gè)目錄也被放置到/var/spool/mail/目錄中! 通常這兩個(gè)目錄是互為連結(jié)檔啦! |
| /var/run/ | 某些程式或者是服務(wù)啟動(dòng)後,會(huì)將他們的PID放置在這個(gè)目錄下喔! 至於PID的意義我們會(huì)在後續(xù)章節(jié)提到的。 |
| /var/spool/ | 這個(gè)目錄通常放置一些佇列資料,所謂的『佇列』就是排隊(duì)等待其他程式使用的資料啦! 這些資料被使用後通常都會(huì)被刪除。舉例來說,系統(tǒng)收到新信會(huì)放置到/var/spool/mail/中, 但使用者收下該信件後該封信原則上就會(huì)被刪除。信件如果暫時(shí)寄不出去會(huì)被放到/var/spool/mqueue/中, 等到被送出後就被刪除。如果是工作排程資料(crontab),就會(huì)被放置到/var/spool/cron/目錄中! |
建議在你讀完整個(gè)基礎(chǔ)篇之後,可以挑戰(zhàn)FHS官方英文文件?,相信會(huì)讓你對(duì)於Linux作業(yè)系統(tǒng)的目錄有更深入的瞭解喔! - 針對(duì)FHS,各家distributions的異同
由於FHS僅是定義出最上層(/)及次層(/usr, /var)的目錄內(nèi)容應(yīng)該要放置的檔案或目錄資料, 因此,在其他次目錄層級(jí)內(nèi),就可以隨開發(fā)者自行來配置了。舉例來說,CentOS的網(wǎng)路設(shè)定資料放在?/etc/sysconfig/network-.s/?目錄下,但是SuSE則是將網(wǎng)路放置在?/etc/sysconfig/network/?目錄下,目錄名稱可是不同的呢!不過只要記住大致的FHS標(biāo)準(zhǔn),差異性其實(shí)有限啦! ? PS. FHS:Filesystem Hierarchy Standard(文件系統(tǒng)目錄標(biāo)準(zhǔn)),FHS采用樹形結(jié)構(gòu)組織文件,定義了系統(tǒng)中每個(gè)區(qū)域的用途、所需要的最小構(gòu)成的文件和目錄同時(shí)還給出了例外處理與矛盾處理。 ? ?
轉(zhuǎn)載于:https://www.cnblogs.com/LinuxSuDa/p/4252560.html
總結(jié)
以上是生活随笔為你收集整理的Linux根目录详解-转自鸟哥的私房菜的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。