史上最全的linux 目錄介紹
使用linux也有一年多時間了? 最近也是一直在維護(hù)網(wǎng)站系統(tǒng)主機(jī)? 下面是linux目錄結(jié)構(gòu)說明 本人使用的是centos系統(tǒng),很久沒有發(fā)表博文了 近期會整理自己所用所了解知識點(diǎn),發(fā)表linux相關(guān)的文章,記錄自己的linux點(diǎn)點(diǎn)滴滴。
華為云雙11主會場?有需要的看一下
阿里云雙11拼團(tuán)?有需要的也可以對比下
linux 目錄結(jié)構(gòu)
/:?根目錄,一般根目錄下只存放目錄,不要存放文件,/etc、/bin、/dev、/lib、/sbin應(yīng)該和根目錄放置在一個分區(qū)中
/bin:/usr/bin:?可執(zhí)行二進(jìn)制文件的目錄,如常用的命令ls、tar、mv、cat等。
/boot:?放置linux系統(tǒng)啟動時用到的一些文件。/boot/vmlinuz為linux的內(nèi)核文件,以及/boot/gurb。建議單獨(dú)分區(qū),分區(qū)大小100M即可
/dev:?存放linux系統(tǒng)下的設(shè)備文件,訪問該目錄下某個文件,相當(dāng)于訪問某個設(shè)備,常用的是掛載光驅(qū)mount /dev/cdrom /mnt。
/etc:?系統(tǒng)配置文件存放的目錄,不建議在此目錄下存放可執(zhí)行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前記得備份。注:/etc/X11存放與x windows有關(guān)的設(shè)置。
/home:?系統(tǒng)默認(rèn)的用戶家目錄,新增用戶賬號時,用戶的家目錄都存放在此目錄下,~表示當(dāng)前用戶的家目錄,~test表示用戶test的家目錄。建議單獨(dú)分區(qū),并設(shè)置較大的磁盤空間,方便用戶存放數(shù)據(jù)
/lib:/usr/lib:/usr/local/lib:?系統(tǒng)使用的函數(shù)庫的目錄,程序在執(zhí)行過程中,需要調(diào)用一些額外的參數(shù)時需要函數(shù)庫的協(xié)助,比較重要的目錄為/lib/modules。
/lost+fount:?系統(tǒng)異常產(chǎn)生錯誤時,會將一些遺失的片段放置于此目錄下,通常這個目錄會自動出現(xiàn)在裝置目錄下。如加載硬盤于/disk 中,此目錄下就會自動產(chǎn)生目錄/disk/lost+found
/mnt:/media:?光盤默認(rèn)掛載點(diǎn),通常光盤掛載于/mnt/cdrom下,也不一定,可以選擇任意位置進(jìn)行掛載。
/opt:?給主機(jī)額外安裝軟件所擺放的目錄。如:FC4使用的Fedora 社群開發(fā)軟件,如果想要自行安裝新的KDE 桌面軟件,可以將該軟件安裝在該目錄下。以前的 Linux 系統(tǒng)中,習(xí)慣放置在 /usr/local 目錄下
/proc:?此目錄的數(shù)據(jù)都在內(nèi)存中,如系統(tǒng)核心,外部設(shè)備,網(wǎng)絡(luò)狀態(tài),由于數(shù)據(jù)都存放于內(nèi)存中,所以不占用磁盤空間,比較重要的目錄有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等
/root:?系統(tǒng)管理員root的家目錄,系統(tǒng)第一個啟動的分區(qū)為/,所以最好將/root和/放置在一個分區(qū)下。
/sbin:/usr/sbin:/usr/local/sbin:?放置系統(tǒng)管理員使用的可執(zhí)行命令,如fdisk、shutdown、mount等。與/bin不同的是,這幾個目錄是給系統(tǒng)管理員root使用的命令,一般用戶只能"查看"而不能設(shè)置和使用。
/tmp:?一般用戶或正在執(zhí)行的程序臨時存放文件的目錄,任何人都可以訪問,重要數(shù)據(jù)不可放置在此目錄下
/srv:?服務(wù)啟動之后需要訪問的數(shù)據(jù)目錄,如www服務(wù)需要訪問的網(wǎng)頁數(shù)據(jù)存放在/srv/www內(nèi)
/usr:?應(yīng)用程序存放目錄,/usr/bin?存放應(yīng)用程序,?/usr/share?存放共享數(shù)據(jù),/usr/lib?存放不能直接運(yùn)行的,卻是許多程序運(yùn)行所必需的一些函數(shù)庫文件。/usr/local:存放軟件升級包。/usr/share/doc:?系統(tǒng)說明文件存放目錄。/usr/share/man:?程序說明文件存放目錄,使用 man ls時會查詢/usr/share/man/man1/ls.1.gz的內(nèi)容建議單獨(dú)分區(qū),設(shè)置較大的磁盤空間
/var:?放置系統(tǒng)執(zhí)行過程中經(jīng)常變化的文件,如隨時更改的日志文件?/var/log,/var/log/message:?所有的登錄文件存放目錄,/var/spool/mail:?郵件存放的目錄,?/var/run:?程序或服務(wù)啟動
后,其PID存放在該目錄下。建議單獨(dú)分區(qū),設(shè)置較大的磁盤空間
------------------------------------------
/dev:?目錄
dev是設(shè)備(device)的英文縮寫。/dev這個目錄對所有的用戶都十分重要。因為在這個目錄中包含了所有Linux系統(tǒng)中使用的外部設(shè)備。但是這里并不是放的外部設(shè)備的驅(qū)動程序,這一點(diǎn)和
windows,dos操作系統(tǒng)不一樣。它實際上是一個訪問這些外部設(shè)備的端口。我們可以非常方便地去訪問這些外部設(shè)備,和訪問一個文件,一個目錄沒有任何區(qū)別。
Linux沿襲Unix的風(fēng)格,將所有設(shè)備認(rèn)成是一個文件。
設(shè)備文件分為兩種:塊設(shè)備文件(b)和字符設(shè)備文件(c)
設(shè)備文件一般存放在/dev目錄下,對常見設(shè)備文件作如下說明:
/dev/hd[a-t]:IDE設(shè)備
/dev/sd[a-z]:SCSI設(shè)備
/dev/fd[0-7]:標(biāo)準(zhǔn)軟驅(qū)
/dev/md[0-31]:軟raid設(shè)備
/dev/loop[0-7]:本地回環(huán)設(shè)備
/dev/ram[0-15]:內(nèi)存
/dev/null:無限數(shù)據(jù)接收設(shè)備,相當(dāng)于黑洞
/dev/zero:無限零資源
/dev/tty[0-63]:虛擬終端
/dev/ttyS[0-3]:串口
/dev/lp[0-3]:并口
/dev/console:控制臺
/dev/fb[0-31]:framebuffer
/dev/cdrom => /dev/hdc
/dev/modem => /dev/ttyS[0-9]
/dev/pilot => /dev/ttyS[0-9]
/dev/random:隨機(jī)數(shù)設(shè)備
/dev/urandom:隨機(jī)數(shù)設(shè)備
(PS:隨機(jī)數(shù)設(shè)備,后面我會再寫篇博客總結(jié)一下)
/dev目錄下的節(jié)點(diǎn)是怎么創(chuàng)建的?
devf或者udev會自動幫你創(chuàng)建得。
kobject是sysfs文件系統(tǒng)的基礎(chǔ),udev通過監(jiān)測、檢測sysfs來獲取新創(chuàng)建的設(shè)備的。
------------------------------------------
/etc:?目錄
包含很多文件.許多網(wǎng)絡(luò)配置文件也在/etc 中.
/etc/rc?? or /etc/rc.d?? or /etc/rc*.d?? 啟動、或改變運(yùn)行級時運(yùn)行的scripts或scripts的目錄.
/etc/passwd
用戶數(shù)據(jù)庫,其中的域給出了用戶名、真實姓名、家目錄、加密的口令和用戶的其他信息.
/etc/fstab
啟動時mount -a命令(在/etc/rc 或等效的啟動文件中)自動mount的文件系統(tǒng)列表. Linux下,也包括用swapon -a啟用的swap區(qū)的信息.
/etc/group
類似/etc/passwd ,但說明的不是用戶而是組.
/etc/inittab
init 的配置文件.
/etc/issue
getty 在登錄提示符前的輸出信息.通常包括系統(tǒng)的一段短說明或歡迎信息.內(nèi)容由系統(tǒng)管理員確定.
/etc/motd
Message Of The Day,成功登錄后自動輸出.內(nèi)容由系統(tǒng)管理員確定.經(jīng)常用于通告信息,如計劃關(guān)機(jī)時間的警告.
/etc/mtab
當(dāng)前安裝的文件系統(tǒng)列表.由scripts初始化,并由mount 命令自動更新.需要一個當(dāng)前安裝的文件系統(tǒng)的列表時使用,例如df 命令.
/etc/shadow
在安裝了影子口令軟件的系統(tǒng)上的影子口令文件.影子口令文件將/etc/passwd 文件中的加密口令移動到/etc/shadow 中,而后者只對root可讀.這使破譯口令更困難.
/etc/login.defs
login 命令的配置文件.
/etc/printcap
類似/etc/termcap ,但針對打印機(jī).語法不同.
/etc/profile , /etc/csh.login , /etc/csh.cshrc
登錄或啟動時Bourne或C shells執(zhí)行的文件.這允許系統(tǒng)管理員為所有用戶建立全局缺省環(huán)境.
/etc/securetty
確認(rèn)安全終端,即哪個終端允許root登錄.一般只列出虛擬控制臺,這樣就不可能(至少很困難)通過modem或網(wǎng)絡(luò)闖入系統(tǒng)并得到超級用戶特權(quán).
/etc/shells
列出可信任的shell.chsh 命令允許用戶在本文件指定范圍內(nèi)改變登錄shell.提供一臺機(jī)器FTP服務(wù)的服務(wù)進(jìn)程ftpd 檢查用戶shell是否列在 /etc/shells 文件中,如果不是將不允許該用戶登錄.
/etc/sysconfig
網(wǎng)絡(luò)配置相關(guān)目錄
------------------------------------------
/proc:?目錄
檔名??? 文件內(nèi)容
/proc/cmdline???? 加載 kernel 時所下達(dá)的相關(guān)參數(shù)!查閱此文件,可了解系統(tǒng)是如何啟動的!
/proc/cpuinfo???? 本機(jī)的 CPU 的相關(guān)資訊,包含時脈、類型與運(yùn)算功能等
/proc/devices???? 這個文件記錄了系統(tǒng)各個主要裝置的主要裝置代號,與 mknod 有關(guān)呢!
/proc/filesystems???? 目前系統(tǒng)已經(jīng)加載的文件系統(tǒng)羅!
/proc/interrupts???? 目前系統(tǒng)上面的 IRQ 分配狀態(tài)。
/proc/ioports???? 目前系統(tǒng)上面各個裝置所配置的 I/O 位址。
/proc/kcore???? 這個就是內(nèi)存的大小啦!好大對吧!但是不要讀他啦!
/proc/loadavg???? 還記得 top 以及 uptime 吧?沒錯!上頭的三個平均數(shù)值就是記錄在此!
/proc/meminfo???? 使用 free 列出的內(nèi)存資訊,嘿嘿!在這里也能夠查閱到!
/proc/modules???? 目前我們的 Linux 已經(jīng)加載的模塊列表,也可以想成是驅(qū)動程序啦!
/proc/mounts???? 系統(tǒng)已經(jīng)掛載的數(shù)據(jù),就是用 mount 這個命令呼叫出來的數(shù)據(jù)啦!
/proc/swaps???? 到底系統(tǒng)掛加載的內(nèi)存在哪里?呵呵!使用掉的 partition 就記錄在此啦!
/proc/partitions???? 使用 fdisk -l 會出現(xiàn)目前所有的 partition 吧?在這個文件當(dāng)中也有紀(jì)錄喔!
/proc/pci???? 在 PCI 匯流排上面,每個裝置的詳細(xì)情況!可用 lspci 來查閱!
/proc/uptime???? 就是用 uptime 的時候,會出現(xiàn)的資訊啦!
/proc/version???? 核心的版本,就是用 uname -a 顯示的內(nèi)容啦!
/proc/bus/*???? 一些匯流排的裝置,還有 U盤 的裝置也記錄在此喔!
------------------------------------------
/usr:?目錄
/usr 文件系統(tǒng)經(jīng)常很大,因為所有程序安裝在這里. /usr 里的所有文件一般來自Linux distribution;本地安裝的程序和其他東西在/usr/local 下.這樣可能在升級新版系統(tǒng)或新distribution時無須重新安裝全部程序.
/usr/etc??????????? 存放設(shè)置文件
/usr/games????? 存放游戲和教學(xué)文件
/usr/include????? 存放C開發(fā)工具的頭文件
/usr/share???????? 存放結(jié)構(gòu)獨(dú)立的數(shù)據(jù)
/usr/bin
幾乎所有用戶命令.有些命令在/bin 或/usr/local/bin 中.
/usr/sbin
根文件系統(tǒng)不必要的系統(tǒng)管理命令,例如多數(shù)服務(wù)程序.
/usr/share/man , /usr/share/info , /usr/share/doc
手冊頁、GNU信息文檔和各種其他文檔文件.
/usr/include
C編程語言的頭文件.為了一致性這實際上應(yīng)該在/usr/lib 下,但傳統(tǒng)上支持這個名字.
/usr/lib
程序或子系統(tǒng)的不變的數(shù)據(jù)文件,包括一些site-wide配置文件.名字lib來源于庫(library); 編程的原始庫存在/usr/lib 里.
/usr/local
本地安裝的軟件和其他文件放在這里.
/usr/src???????????? 存放程序的源代碼
------------------------------------------
/var:?目錄
/var 包括系統(tǒng)一般運(yùn)行時要改變的數(shù)據(jù).每個系統(tǒng)是特定的,即不通過網(wǎng)絡(luò)與其他計算機(jī)共享.
/var/catman
當(dāng)要求格式化時的man頁的cache.man頁的源文件一般存在/usr/man/man* 中;有些man頁可能有預(yù)格式化的版本,存在/usr/man/cat* 中.而其他的man頁在第一次看時需要格式化,格式化完的版本存在/var/man 中,這樣其他人再看相同的頁時就無須等待格式化了. (/var/catman 經(jīng)常被清除,就象清除臨時目錄一樣.)
/var/lib
系統(tǒng)正常運(yùn)行時要改變的文件.
/var/local
/usr/local 中安裝的程序的可變數(shù)據(jù)(即系統(tǒng)管理員安裝的程序).注意,如果必要,即使本地安裝的程序也會使用其他/var 目錄,例如/var/lock .
/var/lock
鎖定文件.許多程序遵循在/var/lock 中產(chǎn)生一個鎖定文件的約定,以支持他們正在使用某個特定的設(shè)備或文件.其他程序注意到這個鎖定文件,將不試圖使用這個設(shè)備或文件.
/var/log
各種程序的Log文件,特別是login? (/var/log/wtmp log所有到系統(tǒng)的登錄和注銷) 和syslog (/var/log/messages 里存儲所有核心和系統(tǒng)程序信息. /var/log 里的文件經(jīng)常不確定地增長,應(yīng)該定期清除.
/var/run
保存到下次引導(dǎo)前有效的關(guān)于系統(tǒng)的信息文件.例如, /var/run/utmp 包含當(dāng)前登錄的用戶的信息.
/var/spool
mail, news, 打印隊列和其他隊列工作的目錄.每個不同的spool在/var/spool 下有自己的子目錄,例如,用戶的郵箱在/var/spool/mail 中.
/var/tmp
比/tmp 允許的大或需要存在較長時間的臨時文件. (雖然系統(tǒng)管理員可能不允許/var/tmp 有很舊的文件.)
------------------------------------------
比較重要的目錄
在 Linux 系統(tǒng)中,有幾個目錄是特別需要注意的,以下提供幾個需要注意的目錄,以及預(yù)設(shè)相關(guān)的用途:
/etc:?這個目錄相當(dāng)重要,如前所述,你的開機(jī)與系統(tǒng)數(shù)據(jù)文件均在這個目錄之下,因此當(dāng)這個目錄被破壞,那你的系統(tǒng)大概也就差不多該死掉了!而在往后的文件中,你會發(fā)現(xiàn)我們常常使用這個目錄下的 /etc/rc.d/init.d 這個子目錄,因為這個 init.d 子目錄是開啟一些 Linux 系統(tǒng)服務(wù)的 scripts (可以想成是批次檔 )的地方。而在 /etc/rc.d/rc.local 這個文件是開機(jī)的執(zhí)行檔。
/bin, /sbin, /usr/bin, /usr/sbin:?這是系統(tǒng)預(yù)設(shè)的執(zhí)行文件的放置目錄,例如 root 常常使用的 userconf, netconf, perl, gcc, c++ 等等的數(shù)據(jù)都放在這幾個目錄中,所以如果你在提示字符下找不到某個執(zhí)行檔時,可以在這四個目錄中查一查!其中, /bin, /usr/bin 是給系統(tǒng)使用者使用的指令,而 /sbin, /usr/sbin 則是給系統(tǒng)管理員使用的指令!
/usr/local:?這是系統(tǒng)預(yù)設(shè)的讓你安裝你后來升級的套件的目錄。例如,當(dāng)你發(fā)現(xiàn)有更新的 Web 套件(如 Apache )可以安裝,而你又不想以 rpm 的方式升級你的套件,則你可以將 apache 這個套件安裝在 /usr/local 底下。安裝在這里有個好處,因為目前大家的系統(tǒng)都是差不多的,所以如果你的系統(tǒng)要讓別人接管的話,也比較容易上手呀!也比較容易找的到數(shù)據(jù)喔!因此,如果你有需要的話,通常我都會將 /usr/local/bin 這個路徑加到我的 path 中。
/home:?這個是系統(tǒng)將有賬號的人口的家目錄設(shè)置的地方。
/var:?這個路徑就重要了!不論是登入、各類服務(wù)的問題發(fā)生時的記錄、以及常態(tài)性的服務(wù)記錄等等的記錄目錄,所以當(dāng)你的系統(tǒng)有問題時,就需要來這個目錄記錄的文件數(shù)據(jù)中察看問題的所在啰!而 mail 的預(yù)設(shè)放置也是在這里,所以他是很重要的
/usr/share/man, /usr/local/man:?這兩個目錄為放置各類套件說明檔的地方,例如你如果執(zhí)行 man man,則系統(tǒng)會自動去找這兩個目錄下的所有說明文件
文件種類:
談完了文件格式之后,再來談?wù)勊^的文件種類吧!我們在剛剛的屬性介紹中提到了最前面的標(biāo)志 ( d 或 - ) 可以代表目錄或文件,那就是不同的文件種類啦!Linux 的文件種類主要有底下
這幾種:
正規(guī)文件( regular file ):就是一般類型的文件,在由 ls –al 所顯示出來的屬性方面,第一個屬性為 [ - ]。另外,依照文件的內(nèi)容,又大略可以分為兩種文件種類:
純文字文件(ascii) :這是 Unix 系統(tǒng)中最多的一種啰,幾乎只要我們可以用來做為設(shè)定的文件都屬于這一種;
二進(jìn)制文件(binary) :通常執(zhí)行檔除了 scripts (文字型批次文件)之外,就是這一種文件格式;
目錄 (directory):就是目錄!第一個屬性為 [ d ];
連結(jié)檔 (link):就是類似 Windows 底下的快捷方式啦!第一個屬性為 [ l ];
設(shè)備檔 (device):與系統(tǒng)周邊相關(guān)的一些文件,通常都集中在 /dev 這個目錄之下!通常又分為兩種:
區(qū)塊 (block) 設(shè)備檔 :就是一些儲存數(shù)據(jù),以提供系統(tǒng)存取的接口設(shè)備,簡單的說就是硬盤啦!例如你的一號硬盤的代碼是 /dev/hda1 等等的文件啦!第一個屬性為 [ b ];
字符 (character) 設(shè)備檔 :亦即是一些串行端口的接口設(shè)備,例如鍵盤、鼠標(biāo)等等!第一個屬性為 [ c ]。
Linux 的文件系統(tǒng)( inode ):
在 Linux 系統(tǒng)當(dāng)中,每個文件不止有文件的內(nèi)容數(shù)據(jù),還包括文件的種種屬性,例如:所屬群組、所屬使用者、能否執(zhí)行、文
件建立時間、文件特殊屬性等等。我們將每個文件的內(nèi)容分為兩個部分來儲存,一個是文件的屬性,另一個則是文件的內(nèi)容。
為了應(yīng)付這兩個不同的咚咚,所以 ext2 規(guī)劃出 inode 與 Block 來分別儲存文件的屬性( 放在 inode 當(dāng)中 )與文件的內(nèi)容( 放置在 Block area 當(dāng)中 )。當(dāng)我們要將一個 partition 格式化
( format )為 ext2 時,就必須要指定 inode 與 Block 的大小才行,也就是說,當(dāng) partition 被格式化為 ext2 的文件系統(tǒng)時,他一定會有 inode table 與 block area 這兩個區(qū)域。
Block 已經(jīng)在前面說過了,他是數(shù)據(jù)儲存的最小單位。那么 inode 是什么?!簡單的說, Block 是記錄『文件內(nèi)容數(shù)據(jù)』的區(qū)域,至于 inode 則是記錄『該文件的相關(guān)屬性,以及文件內(nèi)容
放置在哪一個 Block 之內(nèi)』的信息。簡單的說, inode 除了記錄文件的屬性外,同時還必須要具有指向( pointer )的功能,亦即指向文件內(nèi)容放置的區(qū)塊之中,好讓操作系統(tǒng)可以正確的去
取得文件的內(nèi)容啊
該文件的擁有者與群組(owner/group);
該文件的存取模式;
該文件的類型;
該文件的建立日期(ctime)、最近一次的讀取時間(atime)、最近修改的時間 (mtime);
該文件的容量;
定義文件特性的旗標(biāo)(flag),如 SetUID...;
該文件真正內(nèi)容的指向 (pointer);
軟件開發(fā)云 云計算
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。