歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> linux系統--文件目錄

linux系統--文件目錄

日期:2017/3/1 11:52:14   编辑:關於Linux

linux文件目錄


當我們使用linux系統的時候,會發現有很多的目錄,這些目錄裡面也有很多的子目錄和文件。由於linux開發團隊和個人非常之多,如果每個人都按照自己的想法來配置文件放置的目錄,那麼對於個人的使用和管理都會帶來很大的困擾。
這種情況下,FHS的出現使得linux用戶和開發商都有了一個管理文件系統的標准,即FHS標准(Filesystem Hierarchy Standard)。FHS依據文件系統使用的頻繁與否與是否允許使用者隨意更動, 而將目錄定義成為四種交互作用的形態:

可分享的 不可分享的 不可變的 /usr(軟件放置處) /etc(配置文件) 不可變的 /opt(第三方軟件) /boot(開機與內核文件) 可變動的 /var/mail(用戶郵箱) /var/run(程序相關) 可變動的 /var/spool/news(新聞組) /var/lock(程序相關)

1. 可分享的:可以分享給其他系統掛載使用的目錄,所以包括執行文件與用戶的郵件等數據,,是能夠分享給網絡上其他主機掛載用的目錄
2. 不可分享的:自己機器上面運作的裝置文件或者是與程序有關的socket文件等,由於僅與自身機器有關,所以當然就不適合分享給其他主機了
3. 不變的:有些數據是不會經常變動的,跟隨著distribution而不變動。例如函式庫、文件說明文件、系統管理員所管理的主機服務配置文件等等
4. 可變動的:經常改變的數據,例如登錄文件、一般用戶可自行收受的新聞組等

根目錄/

所有的目錄都掛在跟目錄下面,根目錄/與開機/還原/系統修復等動作有關。
FHS標准建議:根目錄(/)所在分割槽應該越小越好, 且應用程序所安裝的軟件最好不要與根目錄放在同一個分割槽內,保持根目錄越小越好

/bin :系統有很多放置執行文件的目錄,但/bin比較特殊.因為/bin放置的是在單人維護模式下還能夠被操作的指令. 在/bin底下的指令可以被root與一般賬號所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令.

/boot:這個目錄主要放置開機會使用到的文件,包括Linux核心文件以及開機選單與開機所需配置文件等等. Linux kernel常用的檔名為:vmlinuz,如果使用的是grub這個開機管理程序, 則還會存在/boot/grub/這個目錄喔!

/dev :在Linux系統上,任何裝置與接口設備都是以文件的型態存在於這個目錄當中的. 你只要透過存取這個目錄底下的某個文件,就等於存取某個裝置啰~ 比要重要的文件有/dev/null, /dev/zero, /dev/tty, /dev/lp*, /dev/hd*, /dev/sd*等等

/etc:系統主要的配置文件幾乎都放置在這個目錄內,例如人員的賬號密碼文件、 各種服務的啟始檔等等.一般來說,這個目錄下的各文件屬性是可以讓一般使用者查閱的, 但是只有root有權力修改.FHS建議不要放置可執行文件(binary)在這個目錄中喔.比較重要的文件有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/ 等等.另外,其下重要的目錄有:

/etc/init.d/:所有服務的預設啟動 script 都是放在這裡的,例如要啟動或者關閉 iptables 的話: /etc/init.d/iptables start、/etc/init.d/iptables stop

/etc/xinetd.d/:這就是所謂的super daemon管理的各項服務的配置文件目錄.

/etc/X11/:與 X Window 有關的各種配置文件都在這裡,尤其是 xorg.conf 這個 X Server 的配置文件

/etc/motd : 配置登陸成功後的顯示信息

/home :這是系統默認的用戶家目錄(home directory).在你新增一個一般使用者賬號時, 默認的用戶家目錄都會規范到這裡來。

/lib:系統的函式庫非常的多,而/lib放置的則是在開機時會用到的函式庫, 以及在/bin或/sbin底下的指令會呼叫的函式庫而已. 什麼是函式庫呢?你可以將他想成是”外掛”,某些指令必須要有這些“外掛”才能夠順利完成程序的執行之意. 尤其重要的是/lib/modules/這個目錄, 因為該目錄會放置核心相關的模塊(驅動程序)

/media media:媒體的英文,顧名思義,這個/media底下放置的就是可移除的裝置。 包括軟盤、光盤、DVD等等裝置都暫時掛載於此.常見的檔名有:/media/floppy, /media/cdrom等等.

/mnt: 如果妳想要暫時掛載某些額外的裝置,一般建議妳可以放置到這個目錄中。

/opt 這個是給第三方協力軟件放置的目錄.什麼是第三方協力軟件啊? 舉例來說,KDE這個桌面管理系統是一個獨立的計劃,不過他可以安裝到Linux系統中,因此KDE的軟件就建議放置到此目錄下了. 另外,如果妳想要自行安裝額外的軟件(非原本的distribution提供的),那麼也能夠將你的軟件安裝到這裡來. 不過,以前的Linux系統中,我們還是習慣放置在/usr/local目錄下呢!

/root :系統管理員(root)的家目錄.之所以放在這裡,是因為如果進入單人維護模式而僅掛載根目錄時, 該目錄就能夠擁有root的家目錄,所以我們會希望root的家目錄與根目錄放置在同一個分割槽中。

/sbin:Linux有非常多指令是用來設定系統環境的,這些指令只有root才能夠利用來『設定』系統,其他用戶最多只能用來『查詢』而已. 放在/sbin底下的為開機過程中所需要的,裡面包括了開機、修復、還原系統所需要的指令. 至於某些服務器軟件程序,一般則放置到/usr/sbin/當中.至於本機自行安裝的軟件所產生的系統執行文件(system binary), 則放置到/usr/local/sbin/當中了.常見的指令包括:fdisk, fsck, ifconfig, init, mkfs等等.

/srv:srv可以視為service的縮寫,是一些網絡服務啟動之後,這些服務所需要取用的數據目錄. 常見的服務例如:www, FTP等等.舉例來說,www服務器需要的網頁數據就可以放置在/srv/www/裡面。

/tmp: 這是讓一般使用者或者是正在執行的程序暫時放置文件的地方. 這個目錄是任何人都能夠存取的,所以你需要定期的清理一下.當然,重要數據不可放置在此目錄啊! 因為FHS甚至建議在開機時,應該要將/tmp下的數據都刪除!所有用戶都可以使用的公共區域。

/proc:操作系統運行時,進程信息及內核信息(cpu內存)存放在這裡。他放置的數據都是在內存當中, 例如系統核心、行程信息(process)、周邊裝置的狀態及網絡狀態等等.因為這個目錄下的數據都是在內存當中, 所以本身不占任何硬盤空間啊!比較重要的文件例如:/proc/cpuinfo, /proc/dma, /proc/interrupts, /proc/ioports, /proc/net/* 等等.

/lost+found:系統意外崩潰。會產生文件碎片,重新啟動的時候系統會檢查該目錄。將一些遺失的片段放置到這個目錄下,這個目錄通常會在分割槽的最頂層存在,,例如你加裝一顆硬盤於/disk中,那在這個系統下就會自動產生一個這樣的目錄『/disk/lost+found』

不可與根目錄分開的目錄(與開機過程有關):

根目錄與開機有關,開機過程中僅有根目錄會被掛載,其他分割槽則是在開機完成之後才會持續的進行掛載的行為.就是因為如此,因此根目錄下與開機過程有關的目錄, 就不能夠與根目錄放到不同的分割槽去!

/etc:配置文件
/bin:重要執行檔
/dev:所需要的裝置文件
/lib:執行檔所需的函式庫與核心所需的模塊
/sbin:重要的系統執行文件

/usr:
1.依據FHS的基本定義,/usr裡面放置的數據屬於可分享的與不可變動的(shareable, static), 如果你知道如何透過網絡進行分割槽的掛載,那麼/usr確實可以分享給局域網絡內的其他主機來使用!
2.usr(Unix Software Resource 即Unix操作系統軟件資源) FHS建議所有軟件開發者,應該將他們的數據合理的分別放置到這個目錄下的次目錄,而不要自行建立該軟件自己獨立的目錄.
3.所有系統默認的軟件(distribution發布者提供的軟件)都會放置到/usr底下,因此這個目錄有點類似Windows 系統的C:\Windows\ + C:\Program files\這兩個目錄的綜合體,系統剛安裝完畢時,這個目錄會占用最多的硬盤容量.

/usr/X11R6/ 為X Windows System重要數據所放置的目錄,之所以取名為X11R6是因為最後的X版本為第11版,且該版的第6次釋出之意.

/usr/bin/ 絕大部分的用戶可使用指令都放在這裡!請注意到他與/bin的不同之處.(是否與開機過程有關)

/usr/include/ c/c++等程序語言的檔頭(header)與包含檔(include)放置處,當我們以tarball方式(*.tar.gz 的方式安裝軟件)安裝某些數據時,會使用到裡頭的許多包含檔喔!

/usr/lib/ 包含各應用軟件的函式庫、目標文件(object file),以及不被一般使用者慣用的執行檔或腳本(script). 某些軟件會提供一些特殊的指令來進行服務器的設定,這些指令也不會經常被系統管理員操作, 那就會被擺放到這個目錄下啦.要注意的是,如果你使用的是X86_64的Linux系統, 那可能會有/usr/lib64/目錄產生

/usr/local/ 系統管理員在本機自行安裝自己下載的軟件(非distribution默認提供者),建議安裝到此目錄,這樣會比較便於管理.舉例來說,你的distribution提供的軟件較舊,你想安裝較新的軟件但又不想移除舊版,此時你可以將新版軟件安裝於/usr/local/目錄下,可與原先的舊版軟件有分別啦!你可以自行到/usr/local去看看,該目錄下也是具有bin, etc, include, lib…的次目錄。

/usr/sbin/ 非系統正常運作所需要的系統指令.最常見的就是某些網絡服務器軟件的服務指令(daemon)

/usr/share/ 放置共享文件的地方,在這個目錄下放置的數據幾乎是不分硬件架構均可讀取的數據,
因為幾乎都是文本文件嘛!在此目錄下常見的還有這些次目錄: /usr/share/man:聯機幫助文件
/usr/share/doc:軟件雜項的文件說明 /usr/share/zoneinfo:與時區有關的時區文件

/usr/src/ 一般原始碼建議放置到這裡,src有source的意思.至於核心原始碼則建議放置到/usr/src/linux/目錄下.

/var
目錄主要針對常態性變動的文件,包括緩存(cache)、登錄檔(log file)以及某些軟件運作所產生的文件,包括程序文件(lock file, run file),或者例如MySQL數據庫的文件等等。所以/var在系統運作後才會漸漸占用硬盤容量的目錄

/var/cache/ 應用程序本身運作過程中會產生的一些暫存檔。

/var/lib/ 程序本身執行的過程中,需要使用到的數據文件放置的目錄.在此目錄下各自的軟件應該要有各自的目錄.
舉例來說,MySQL的數據庫放置到/var/lib/mysql/而rpm的數據庫則放到/var/lib/rpm去!

/var/lock/ 某些裝置或者是文件資源一次只能被一個應用程序所使用,如果同時有兩個程序使用該裝置時,就可能產生一些錯誤的狀況,因此就得要將該裝置上鎖(lock),以確保該裝置只會給單一軟件所使用。舉例來說,刻錄機正在刻錄一塊光盤,你想一下,會不會有兩個人同時在使用一個刻錄機燒片?如果兩個人同時刻錄,那片子寫入的是誰的數據?所以當第一個人在刻錄時該刻錄機就會被上鎖,第二個人就得要該裝置被解除鎖定(就是前一個人用完了)才能夠繼續使用啰。

/var/log/ 重要到不行!這是登錄文件放置的目錄!裡面比較重要的文件如/var/log/messages,/var/log/wtmp(記錄登入者的信息)等.

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

/var/run/ 某些程序或者是服務啟動後,會將他們的PID放置在這個目錄下喔! 至於PID的意義我們會在後續章節提到的.

/var/spool/ 這個目錄通常放置一些隊列數據,所謂的『隊列』就是排隊等待其他程序使用的數據啦!這些數據被使用後通常都會被刪除.舉例來說,系統收到新信會放置到/var/spool/mail/中, 但使用者收下該信件後該封信原則上就會被刪除.信件如果暫時寄不出去會被放到/var/spool/mqueue/中,等到被送出後就被刪除.如果是工作排程數據(crontab),就會被放置到/var/spool/cron/目錄中!

重要子目錄

1./etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0設別名稱
HWADDR=00:1e:67:65:db:d7MAC地址
TYPE=Ethernet網絡類型
UUID=3096d6ad-e53b-42cc-a385-8c906af05cae網卡唯一標識
ONBOOT=yes開機啟動
NM_CONTROLLED=yes
BOOTPROTO=none啟動協議(dhcp none static)
DNS2=
DNS1=
IPV6INIT=no
USERCTL=no
IPADDR=172.29.77.107
NETMASK=255.255.255.0
GATEWAY=

[root@localhost sbin]# blkid
/dev/sda2: UUID="5e7032c8-8d86-41b9-807f-9c9770d06e35" TYPE="ext4" 
/dev/sda1: UUID="ec3216ee-4bab-4f13-85c2-7fe73126c883" TYPE="ext4" 
/dev/sdb1: SEC_TYPE="msdos" UUID="70CE-B93F" TYPE="vfat" 
/dev/sdb2: UUID="34cf2f70-1081-452e-bc39-0d2a38d9233d" TYPE="ext4" 
/dev/sdb3: UUID="f67f5156-40c6-482b-8929-01d3a094d8cf" TYPE="swap" 
/dev/sdb4: UUID="116c6469-f295-493d-aed1-af53327bc820" TYPE="ext4" 

2./etc/resolv.conf

DNS配置文件(此配置文件裡面必須要有dns信息才能上網)
網卡裡設置的DNS優先於resolv.conf設置的DNS,如果重啟網卡,網卡的dns設置會覆蓋/etc/resolv.conf的設置。

[root@localhost sbin]# cat /etc/resolv.conf

nameserver 172.22.21.2
nameserver 8.8.8.8

/etc/init.d/network restart重啟所有網卡
ifup/ifdown ifcfg-eth0重啟關閉某塊網卡

[root@localhost ~]# netstat -an|grep 172
tcp        0     52 172.29.77.107:22            172.28.77.38:57971          ESTABLISHED 
tcp        0      0 172.29.77.107:22            172.28.77.38:49440          ESTABLISHED

3./etc/hosts

4./etc/sysconfig/network
主機名配置文件hostname

[root@hcy ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
Copyright © Linux教程網 All Rights Reserved