linux目錄結構詳細介紹

2.1 目錄結構圖

圖片.png

2.2 /目錄

目錄

描述

/

第一層次結構的根、整個文件系統層次結構的根目錄

/bin/

需要在單用戶模式可用的必要命令(可執行文件);面向所有用戶,例如:catlscp,和/usr/bin類似。

/boot/

引導程序文件,例如:kernelinitrd;時常是一個單獨的分區[6]

/dev/

必要設備例如:/dev/null.

/etc/

特定主機,系統範圍內的配置文件

關於這個名稱目前有爭議。在貝爾實驗室關於UNIX實現文檔的早期版本中,/etc 被稱爲/etcetra 目錄[7]這是由於過去此目錄中存放所有不屬於別處的所有東西(然而,FHS限制/etc存放靜態配置文件,不能包含二進制文件)。[8]自從早期文檔出版以來,目錄名稱已被以各種方式重新稱呼。最近的解釋包括反向縮略語如:"可編輯的文本配置"(英文 "Editable Text Configuration")或"擴展工具箱"(英文 "Extended Tool Chest")[9]

/etc/opt/

/opt/的配置文件

/etc/X11/

X_Window系統(版本11)的配置文件

/etc/sgml/

SGML的配置文件

/etc/xml/

XML的配置文件

/home/

用戶的家目錄,包含保存的文件、個人設置等,一般爲單獨的分區。

/lib/

/bin/ and   /sbin/中二進制文件必要的文件。

/media/

可移除媒體(CD-ROM)的掛載點 (FHS-2.3中出現)

/lost+found

ext3文件系統中,當系統意外崩潰或機器意外關機,會產生一些文件碎片在這裏。當系統在開機啓動的過程中fsck工具會檢查這裏,並修復已經損壞的文件系統。當系統發生問題。可能會有文件被移動到這個目錄中,可能需要用手工的方式來修復,或移到文件到原來的位置上。

/mnt/

臨時掛載的文件系統。比如cdrom,u盤等,直接插入光驅無法使用,要先掛載後使用

/opt/

可選應用軟件

/proc/

虛擬文件系統,將內核進程狀態歸檔爲文本文件(系統信息都存放這目錄下)。例如:uptime network。在Linux中,對應Procfs格式掛載。該目錄下文件只能看不能改(包括root

/root/

超級用戶家目錄

/sbin/

必要的系統二進制文件,例如: init ip mountsbin目錄下的命令,普通用戶都執行不了。

/srv/

站點的具體數據,由系統提供。

/tmp/

臨時文件(參見 /var/tmp)在系統重啓時目錄中文件不會被保留。

/usr/

默認軟件都會存於該目錄下。用於存儲只讀用戶數據的第二層次;包含絕大多數的()用戶工具和應用程序。

/var/

變量文件——在正常運行的系統中其內容不斷變化的文件,如日誌,脫機文件和臨時電子郵件文件。有時是一個單獨的分區。如果不單獨分區,有可能會把整個分區充滿。如果單獨分區,給大給小都不合適。

2.3 /etc目錄

特定主機系統範圍內的配置文件。

目錄

描述

/etc/rc /etc/rc.d

/etc/rc*.d

啓動、或改變運行級時運行的scriptsscripts的目錄.

/etc/hosts

本地域名解析文件

/etc/sysconfig/network

IP、掩碼、網關、主機名配置

/etc/resolv.conf

DNS服務器配置

/etc/fstab

開機自動掛載系統,所有分區開機都會自動掛載

/etc/inittab

設定系統啓動時Init進程將把系統設置成什麼樣的runlevel及加載相關的啓動文件配置

/etc/exports

設置NFS系統用的配置文件路徑

/etc/init.d

這個目錄來存放系統啓動腳本

/etc/profile/etc/csh.login,    /etc/csh.cshrc

全局系統環境配置變量

/etc/issue

認證前的輸出信息,默認輸出版本內核信息

/etc/motd

設置認證後的輸出信息,

/etc/mtab

當前安裝的文件系統列表.scripts初始化,並由mount 命令自動更新.需要一個當前安裝的文件系統的列表時使用,例如df 命令

/etc/group

類似/etc/passwd ,但說明的不是用戶而是組.

/etc/passwd

用戶數據庫,其中的域給出了用戶名、真實姓名、家目錄、加密的口令和用戶的其他信息.

/etc/shadow

在安裝了影子口令軟件的系統上的影子口令文件.影子口令文件將/etc/passwd 文件中的加密口令移動到/etc/shadow 中,而後者只對root可讀.這使破譯口令更困難.

/etc/sudoers

可以sudo命令的配置文件

/etc/syslog.conf

系統日誌參數配置

/etc/login.defs

設置用戶帳號限制的文件

/etc/securetty

確認安全終端,即哪個終端允許root登錄.一般只列出虛擬控制檯,這樣就不可能(至少很困難)通過modem或網絡闖入系統並得到超級用戶特權.

/etc/printcap

類似/etc/termcap ,但針對打印機.語法不同.

/etc/shells

列出可信任的shell.chsh 命令允許用戶在本文件指定範圍內改變登錄shell.提供一臺機器FTP服務的服務進程ftpd 檢查用戶shell是否列在 /etc/shells 文件中,如果不是將不允許該用戶登錄.

/etc/xinetd.d

如果服務器是通過xinetd模式運行的,它的腳本要放在這個目錄下。有些系統沒有這個目錄,比如Slackware,有些老的版本也沒有。在Redhat Fedora中比較新的版本中存在。

/etc/opt/

/opt/的配置文件

/etc/X11/

X_Window系統(版本11)的配置文件

/etc/sgml/

SGML的配置文件

/etc/xml/

XML的配置文件

/etc/skel/

默認創建用戶時,把該目錄拷貝到家目錄下

2.4 /usr目錄

默認軟件都會存於該目錄下。用於存儲只讀用戶數據的第二層次;包含絕大多數的用戶工具和應用程序。

目錄

描述

/usr/X11R6

存放X-Windows的目錄;

/usr/games

存放着XteamLinux自帶的小遊戲;

/usr/doc

Linux技術文檔;

/usr/include

用來存放Linux下開發和編譯應用程序所需要的頭文件;

/usr/lib

存放一些常用的動態鏈接共享庫和靜態檔案庫;

/usr/man

幫助文檔所在的目錄;

/usr/src

Linux開放的源代碼,就存在這個目錄,愛好者們別放過哦;

/usr/bin/

非必要可執行文件 (在單用戶模式中不需要);面向所有用戶。

/usr/lib/

/usr/bin/和/usr/sbin/中二進制文件的庫。

/usr/sbin/

非必要的系統二進制文件,例如:大量網絡服務的守護進程。

/usr/share/

體系結構無關(共享)數據。

/usr/src/

源代碼,例如:內核源代碼及其頭文件。

/usr/X11R6/

X Window系統版本 11, Release 6.

/usr/local/

本地數據的第三層次,具體到本臺主機。通常而言有進一步的子目錄,例如:bin/、lib/、share/.這是提供給一般用戶的/usr目錄,在這裏安裝一般的應用軟件;

 

2.5 /var目錄

/var 包括系統一般運行時要改變的數據.每個系統是特定的,即不通過網絡與其他計算機共享

目錄

描述

/var/log/message

日誌信息,按周自動輪詢

/var/spool/cron/root

定時器配置文件目錄,默認按用戶命名

/var/log/secure

記錄登陸系統存取信息的文件,不管認證成功還是認證失敗都會記錄

/var/log/wtmp

記錄登陸者信息的文件,last,who,w命令信息來源於此

/var/spool/clientmqueue/

當郵件服務未開啓時,所有應發給系統管理員的郵件都將堆放在此

/var/spool/mail/

郵件目錄

/var/tmp    

/tmp 允許的大或需要存在較長時間的臨時文件. (雖然系統管理員可能不允許/var/tmp 有很舊的文件.)

/var/lib    

系統正常運行時要改變的文件.  

/var/local    

/usr/local 中安裝的程序的可變數據(即系統管理員安裝的程序).注意,如果必要,即使本地安裝的程序也會使用其他/var 目錄,例如/var/lock .  

/var/lock    

鎖定文件.許多程序遵循在/var/lock 中產生一個鎖定文件的約定,以支持他們正在使用某個特定的設備或文件.其他程序注意到這個鎖定文件,將不試圖使用這個設備或文件.

/var/log/

各種程序的Log文件,特別是login   (/var/log/wtmp log所有到系統的登錄和註銷syslog (/var/log/messages 裏存儲所有核心和系統程序信息. /var/log 裏的文件經常不確定地增長,應該定期清除.  

/var/run    

保存到下次引導前有效的關於系統的信息文件.例如, /var/run/utmp 包含當前登錄的用戶的信息.

/var/cache/

應用程序緩存數據。這些數據是在本地生成的一個耗時的I/O或計算結果。應用程序必須能夠再生或恢復數據。緩存的文件可以被刪除而不導致數據丟失。

2.6 /proc目錄

虛擬文件系統,將內核與進程狀態歸檔爲文本文件(系統信息都存放這目錄下)。

例如:uptime network。在Linux中,對應Procfs格式掛載。該目錄下文件只能看不能改(包括root

目錄

描述

/proc/meminfo

查看內存信息

/proc/loadavg

還記得 top 以及 uptime 吧?沒錯!上頭的三個平均數值就是記錄在此!

/proc/uptime

就是用 uptime 的時候,會出現的資訊啦!

/proc/cpuinfo

關於處理器的信息,如類型、廠家、型號和性能等。

/proc/cmdline

加載 kernel 時所下達的相關參數!查閱此文件,可瞭解系統是如何啓動的!

/proc/filesystems    

目前系統已經加載的文件系統羅!

/proc/interrupts

目前系統上面的 IRQ 分配狀態。

/proc/ioports

目前系統上面各個裝置所配置的 I/O 位址。

/proc/kcore

這個就是內存的大小啦!好大對吧!但是不要讀他啦!

/proc/modules

目前我們的 Linux 已經加載的模塊列表,也可以想成是驅動程序啦!

/proc/mounts

系統已經掛載的數據,就是用 mount 這個命令呼叫出來的數據啦!

/proc/swaps

到底系統掛加載的內存在哪裏?呵呵!使用掉的 partition 就記錄在此啦!

/proc/partitions

使用 fdisk -l 會出現目前所有的 partition 吧?在這個文件當中也有紀錄喔!

/proc/pci    

 PCI 匯流排上面,每個裝置的詳細情況!可用 lspci 來查閱!

/proc/version

核心的版本,就是用 uname -a 顯示的內容啦!

/proc/bus/*    

一些匯流排的裝置,還有 U盤的裝置也記錄在此喔!

 

 

 

2.7 /dev目錄

設備文件分爲兩種:塊設備文件(b)和字符設備文件(c)

設備文件一般存放在/dev目錄下,

對常見設備文件作如下說明:

目錄

描述

/dev/hd[a-t]

IDE設備

/dev/sd[a-z]

SCSI設備

/dev/fd[0-7]

標準軟驅

/dev/md[0-31]

raid設備

/dev/loop[0-7]

本地迴環設備

/dev/ram[0-15]

內存

/dev/null

無限數據接收設備,相當於黑洞

/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

隨機數設備

/dev/urandom

隨機數設備

PS:紅色字體爲比較重要的目錄

2.8 /etc/hosts

/etc/hosts:局域網  主機名和IP解析,相當於DNS工具(手動維護的)

主機名要規範

172.38.18.23     reltime-search.config-vip.taobao.com

hosts企業裏的作用:

1、開發,產品,測試等人員,用於通過正式的域名測試產品;

2、服務器之間的調用可以用域名(內部的DNS),方便遷移。

[root@localhost ~]# cat /etc/sysconfig/network  網關、主機名的配置文件

NETWORKING=yes

HOSTNAME=localhost

/etc/resolv.conf  linux客戶端DNS 上網的DNS

2.9 /etc/fstab

fstab - static information about the filesystems 有關文件系統的靜態信息

設置文件系統掛載信息的文件,是的開機能自動掛載磁盤分區

 

[root@localhost ~]# cat /etc/fstab

# /etc/fstab

# Created by anaconda on Sat May 20 16:49:42 2017

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

UUID=9516b54b-b75c-4901-84fa-0a61387e6be6 /                       ext4    defaults        1 1

UUID=b57c60f1-92de-490e-9faf-d1c7fcaf3306 /boot                   ext4    defaults        1 2

UUID=23e00a57-cc3d-457f-9592-c712345310a6 swap                    swap    defaults        0 0

tmpfs                   /dev/shm                tmpfs   defaults        0 0

devpts                  /dev/pts                devpts  gid=5,mode=620  0 0

sysfs                   /sys                    sysfs   defaults        0 0

proc                    /proc                   proc    defaults        0 0

掛載的設備        掛載點     掛載的文件系統類型   參數   備份 檢查

掛載的設備,可以是設備名或UUID,或磁盤標籤

[root@localhost ~]# df -h  ===以人類可讀的信息查看磁盤掛載信息

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3       9.2G  1.8G  7.0G  20% /

tmpfs           491M     0  491M   0% /dev/shm

/dev/sda1       194M   29M  155M  16% /boo

 

掛載:

1、命令行手動:

mount -t ext4 -o noexec /dev/sda1/mnt

2、放在/etc/fstab 裏面

 

測試手動掛載步驟:

1、創建一個虛擬的塊設備

dd if=/dev/zero of=/dev/sdb1 bs=4096 count=100

2、格式化

mkfs.ext4 /dev/sdb1

3、掛載

mount -t ext4 -o loop,noatime,noexec /dev/sdb1 /mnt    特殊設備要用loop

4、查看

df –h

fstab出問題,修復:

1、開機提示,輸入密碼 修復。

2、救援模式,rescue

修改/etc/fstab只讀狀態,mount  -o rw,remout /

 

Mount掛載:和fstab問題

NFS網絡文件系統掛載時,網卡還沒起,就已經加載fstab,所以只能放進/etc/rc.local,因爲他是最後啓動的

 CentOS7已經不會出現這個問題

 

2.10 /etc/rc.local

讓一個程序開機啓動:

1)  chkconfig(/etc/init.d/sshd)

2)  放入/etc/rc.local

選擇建議:/etc/rc.local

我們把/etc/rc.local,服務器檔案文件。

所有程序開機啓動放入/etc/rc.local,註釋。

 

2.11 /etc/inittab

/etc/inittab 設定系統啓動時init進程將把系統設置成什麼樣的runlevel運行級別及加載相關級別對應啓動文件設置

 

口頭描述linux的開機到登錄界面的啓動過程:

1、開機BIOS自檢

2MBR引導

3grub引導菜單,選擇引導哪個操作系統

4、加載內核kernel

5、啓動init進程

6、讀取inittab文件,執行rc.sysinitrc等腳本

/etc/inittab

/etc/rc.d/rc.sysinit

/etc/rc.d/rc3.d <=====文本模式

7、啓動mingetty,進入系統登陸界面


2.12 chkconfig,runlevel

裝完系統後,希望讓網絡文件共享服務NFS,僅在3級別開機自啓動,該如何做?

[root@localhost ~]# chkconfig sshd on

[root@localhost ~]# chkconfig --list sshd

sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

[root@localhost ~]# chkconfig sshd off  

[root@localhost ~]# chkconfig --list sshd

sshd            0:off   1:off   2:off   3:off   4:off   5:off   6:off

[root@localhost ~]# chkconfig --level 35 sshd on

[root@localhost ~]# chkconfig --list sshd      

sshd            0:off   1:off   2:off   3:on    4:off   5:on    6:off

 

[root@localhost ~]# chkconfig --level 3 sshd off

[root@localhost ~]# ls -l /etc/rc3.d/|grep ssh

lrwxrwxrwx  1 root root 14 May 22 18:40 K25sshd -> ../init.d/sshd

[root@localhost ~]# chkconfig --level 3 sshd on

[root@localhost ~]# ls -l /etc/rc3.d/|grep ssh

lrwxrwxrwx  1 root root 14 May 22 18:40 S55sshd -> ../init.d/sshd

[root@localhost ~]# rm -f /etc/rc3.d/S55sshd

[root@localhost ~]# ln -s /etc/init.d/sshd  /etc/rc3.d/K25sshd

[root@localhost ~]# chkconfig --list sshd

sshd            0:off   1:off   2:off   3:off   4:off   5:on    6:off

chkconfig管理腳本的要求

1、執行 /etc/init.d/sshd restart 格式正常服務

2、腳本里開頭增加如下

#chkconfig:35 56 24

#description:yuehan linux test.

chkconfig管理腳本實例:

1)創建腳本,並放入/etc/init.d/

[root@localhost yuehan]# cd /etc/rc.d/rc3.d/

[root@localhost rc3.d]# vim /etc/init.d/test

# chkconfig: 2345 56 24              =====5624分別代表服務開關的執行編號

# description: test by wangxin              =====chkconfig管理,必須加這兩行

echo linux chkconfig test

2)給腳本增加權限

[root@localhost rc3.d]# /etc/init.d/test   

-bash: /etc/init.d/test: Permission denied

[root@localhost rc3.d]# chmod +x /etc/init.d/test  

[root@localhost rc3.d]# /etc/init.d/test        

linux chkconfig test

[root@localhost rc3.d]# /etc/init.d/test start

linux chkconfig test

3)添加到chkconfig管理列表

[root@localhost rc3.d]# chkconfig --add test 

[root@localhost rc3.d]# chkconfig --list test

test            0:off   1:off   2:on    3:on    4:on    5:on    6:off

[root@localhost rc3.d]# ll /etc/rc.d/rc3.d/|grep test

lrwxrwxrwx   1 root root   14 Mar  7 06:50 S56test -> ../init.d/test

[root@localhost rc3.d]# chkconfig test off          

[root@localhost rc3.d]# ll /etc/rc.d/rc3.d/|grep test

lrwxrwxrwx   1 root root   14 Mar  7 06:52 K24test -> ../init.d/test

特別注意:

/etc/init.d/sshd start 讓程序當前運行

chkconfig是管理程序是否開機啓動

兩者沒有什麼關係

 

linux系統運行級別一般爲0~6,請分別寫出每個級別的含義

0----關機模式

1----單用戶模式

2----NFS的多用戶模式

3----文本模式,完整的多用戶模式

4----未使用的

5----圖形模式

6----重啓模式


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章