第七節 Linux系統目錄結構介紹
標籤(空格分隔):Linux實戰教學筆記node
第1章 前言
- 這樣的linux目錄結構,那麼可能同窗們在初次接觸Linux的時候,每每會以爲目錄結構比較複雜,沒有windows那樣視窗簡單明瞭的展現,從而感受很迷茫。
- 其實,Linux系統的目錄結構知識一樣是很簡單的,只是Linux系統的應用場景多爲服務器應用且爲字符界面應用,並不像Windows系統的那種視窗的直觀展現,可是,Linux的系統的目錄結構確是頗有規律性的組織的,下面就給你們一一道來。
1.1 Linux系統目錄結構的基本特色介紹
- linux目錄:一切從「根」開始,「/」是全部目錄的起點(定點):相對路徑(目錄)和絕對路徑(目錄)?
- linux根下面的目錄是一個有層次的樹狀結構
- 倒掛的一棵樹
- linux每一個目錄能夠掛載在不一樣的設備(磁盤)上。windows不容易作到。
在邏輯上全部目錄(包括目錄下的子目錄)都在最高級別的目錄「/」下,根(「/」)目錄是linux系統中全部目錄的起始點(丁點),根下面的目錄及目錄的子目錄是一個有層次的樹狀結構,很像一顆倒掛着的一顆大樹,這和Windows系統按照硬盤分區(C:D:E:)分割的目錄結構是不一樣的(windows系統能夠理解爲多棵樹,每一個分區就是一顆獨立的小樹)。
linux系統中的這些不一樣的目錄也是很特別的,不一樣的目錄能夠分佈在不一樣的硬盤分區以及不一樣的硬盤設備上,這是windows的系統難以作到的,windows系統的不一樣分區都是獨立存在的。
nginx
- linux下面設備不掛載是看不到入口的,沒有窗口沒門的監獄,若是要設備被訪問就必須有一個入口,這個入口就是掛載點,掛載點實質就是目錄
以光驅設備====>/media/cdrom爲例sql
![屏幕快照 2017-01-02 下午12.54.56.png-872.5kB](http://static.javashuo.com/static/loading.gif)
![屏幕快照 2017-01-02 下午12.55.44.png-593.9kB](http://static.javashuo.com/static/loading.gif)
![屏幕快照 2017-01-02 下午12.56.53.png-811.4kB](http://static.javashuo.com/static/loading.gif)
/boot 等等開機自動掛載===>/etc/fstabapache
linux系統中的全部目錄內容按照類別組織。例如,Linux下的應用程序,它的可執行程序可能在/usr/bin,而它的數據文件和幫助在/usr/share下,運行時加載的配置文件和服務啓動命令卻在/etc/下。windows
若是同窗們理解了上述兩點,相信很快就能輕鬆的理解掌握Linux系統的目錄結構了,進而感覺Linux系統的獨特的魅力所在。centos
內容小結安全
- linux系統的全部目錄是一個有層次的倒着的樹狀目錄結構,「/」根是全部目錄的頂點。
- 不一樣的目錄數據能夠跨越不一樣的磁盤分區或不一樣的磁盤設備
- 全部的目錄都是按照必定的類別有規律的組織和命名的
- 相對路徑:相對於當前路徑下的路徑
![屏幕快照 2017-01-02 下午1.09.37.png-14.1kB](http://static.javashuo.com/static/loading.gif)
- 絕對路徑:從根爲起始點的路徑
![屏幕快照 2017-01-02 下午1.11.02.png-10.4kB](http://static.javashuo.com/static/loading.gif)
/etc/init.d/iptables stop
提示:學習的意義就是練習概括總結的能力,把書由厚變薄(先總結再擴展)bash
第2章 Unix系統目錄結構的歷史典故
提示:學習目錄結構的歷史典故,目的是讓你們可以清晰的瞭解linux的目錄結構。
發行版本==GNU/linux+GNU軟件+其餘的軟件
1969年,Ken Thompson和Dennis
Ritchie在小型機PDP-7上發明了Unix。1971年,他們將主機升級到了PDP-11.
![屏幕快照 2017-01-02 下午1.16.34.png-692kB](http://static.javashuo.com/static/loading.gif)
當時,他們使用一種叫作RK05的存儲盤,盤的容量大約是1.5MB。
![屏幕快照 2017-01-02 下午1.18.09.png-463.4kB](http://static.javashuo.com/static/loading.gif)
因爲硬盤的容量很小,所以沒多久,操做系統存儲盤數據(根目錄)變的愈來愈大了,致使一塊盤已經裝不下數據了。因而,他們加上了第二盤RK05,而且做了規定,第一塊盤專門用來存放系統程序相關,第二塊盤專門存放用戶本身的程序,所以,掛載的目錄點取名爲/usr。也就是說,根目錄「/」掛載在第一塊盤,「/usr」目錄掛載在第二塊盤。除此以外,兩塊盤裏面的其餘的目錄結構是徹底相同的,例如:第一塊盤的目錄(/bin,/sbin/lib/tmp...)都在/usr目錄下從新出現一次(/bin,/sbin,/lib)
![屏幕快照 2017-01-02 下午1.24.47.png-25.3kB](http://static.javashuo.com/static/loading.gif)
tmp 思想: 不要輕易刪除東西,能夠放在tmp目錄下面。過1個月後再刪除。
時間不長,第二塊存儲盤也滿了,他們只好又加了第三盤RK05,掛載的目錄取名爲/home,而且作了規定,/usr用於存放用戶的程序,/home用於存放用戶的數據。
此後,這種目錄結構起名和定義就這樣延續了下來。隨着設備的發展,硬盤的容量也愈來愈大,那麼,各個目錄的含義進一步獲得了明確。
![屏幕快照 2017-01-02 下午1.49.19.png-322.2kB](http://static.javashuo.com/static/loading.gif)
第3章 Linux 目錄結構
3.1 目錄層次標準FHS
- FHS全稱(Filesystem Hierarchy Standard),中文意思是目錄層次標準,是linux的目錄規範標準。
- 詳細點擊查看
- FHS定義了兩層規範:
- 第一層:「/」目錄下的各個目錄應該放什麼文件數據,例如:/etc目錄下放置系統的配置文件,例如:/etc/exports,/etc/hosts,而/bin和/sbin放置程序及系統命令。
- 第二層:是針對/usr(unix software resource|Secondary hierarchy)和/var(Variable data)這兩個目錄的子目錄來定義。例如:/var/log下放置系統日誌文件等
- 提示:/var分區單獨分出來,硬盤足夠大。咱們都有監控,剩餘20%報警。
3.2 根目錄結構
linux系統的目錄結構最頂端是「/」,一切目錄從根開始。 咱們能夠經過tree命令獲得根(/)下的目錄結構。
![QQ20170102-142547@2x.png-169.3kB](http://static.javashuo.com/static/loading.gif)
![屏幕快照 2017-01-02 下午5.25.47.png-1275.5kB](http://static.javashuo.com/static/loading.gif)
![屏幕快照 2017-01-02 下午5.26.34.png-776.9kB](http://static.javashuo.com/static/loading.gif)
3.3小結:重要目錄回顧
- /dev 設備目錄
- /etc/ 系統配置2及服務配置文件,服務啓動命令目錄/etc/init.d
- /proc 顯示內核及進程信息的虛擬文件系統
- /tmp 臨時文件目錄,
- /home 普通用戶家目錄
- /root 超級管理員家目錄
- /var 變化的目錄,通常是日誌文件(/var/log),cache目錄。/var/log/messages,/var/log/secure
- /usr 用戶程序及數據,幫助文件,二進制命令等目錄(usr/local/)
- /bin 普通用戶命令的目錄
- /sbin 和/usr/sbin/:超級用戶命令的目錄
第4章 重要子目錄說明
列舉一些常見且很重要的目錄。這些是你們必需要熟記的。
4.1 必需要掌握的linux目錄路徑知識
- 配置文件路徑:
/etc/sysconfig/network-scripts/ifcfg-eth0
(1)查看eth0(第二塊eth1)
(2)經過setup===>"network configuration"修改網卡配置就是再改這個文件
![屏幕快照 2017-01-02 下午5.56.18.png-39.8kB](http://static.javashuo.com/static/loading.gif)
![屏幕快照 2017-01-02 下午5.56.27.png-65.5kB](http://static.javashuo.com/static/loading.gif)
![屏幕快照 2017-01-02 下午5.57.25.png-858kB](http://static.javashuo.com/static/loading.gif)
(3)固定IP地址
(4)重啓網卡/etc/init.d/network restart(影響全部網卡)
(5)ifdown eth0 && ifup eth0只針對eth0網卡
注意
- 設置文件ifcfg-interface-name包含了初始化接口所須要的大部分周詳的信息。其中interface-name將根據網卡的類型和排序而不一樣,通常名字爲eth0,eth1,ppp0等,其中eth表示以太(eth0)類型網卡,0表示第一塊網卡,1表示第二塊網卡,而ppp0則表示第一個point-to-poirt protocol網絡接口。在ifcfg文件中定義
的各項目取決於接口類型。
下面的值較爲常見:
- DEVICE=name,其中,name是物理設備名
- IPADDR=addr,其中addr是IP地址
- NETMASK=mask,其中,mask是網絡掩碼值
- GATEWAY=addr,其中addr是網關地址
- ONBOOT=answer,其中answer是yes(引導時激活設備)或no(引導時不激活設備)
- USERCTL=answer,其中,answer是yes(非root用戶能控制該設備)或no
- BOOTPROTO=proto,其中,proto取下列值之一:none,引導時不使用協議;static靜態分配地址;bootp,使用BOOTP協議,或dhcp,使用DHCP協議
![屏幕快照 2017-01-02 下午6.17.02.png-1097.7kB](http://static.javashuo.com/static/loading.gif)
上圖配置實際上修改的是/etc/sysconfig/network-scripts/ifcfg-eth0文件
![屏幕快照 2017-01-02 下午6.55.28.png-590.2kB](http://static.javashuo.com/static/loading.gif)
上圖設置實際上修改的是/etc/resolv.conf這個文件
小結
1,linux客戶端DNS能夠在網卡配置文件裏設置(ifcfg-eth0)
2,linux客戶端DNS也能夠在/etc/resolv.conf裏設置
3,網卡里的設置DNS優先於/etc/resolv.conf,若是重啓網絡網卡的dns會覆蓋/etc/resolv.conf的設置
4,/etc/hosts:設定用戶IP與名字(域名)的對應解析表,至關於本地LAN局域網內的DNS解析文件
5,/etc/sysconfig/network:可修改主機名及網卡啓動,網關等配置。永久更改主機名,需同時修改如下兩項:
(1)vi /etc/sysconfig/network
(2)hostname 主機名
在開機時,linux會把/etc/rc.local裏的內容執行一遍
- /etc/inittab:設定系統啓動時init進程將把系統設置成什麼樣的,runlevel運行級別及加載相關的級別對應啓動文件設置
- /etc/exports:NFS網絡文件系統用的配置文件
- /etc/init.d:這個目錄是用來存放經過yum或rpm工具安裝的軟件的默認啓動程序(啓動腳本)的目錄
- /etc/xinit.d:若是服務器是經過xinetd模式運行的,它的腳本要放在這個目錄裏。有些系統沒有這個目錄,好比Slackware,(無人值守pxe+kickstart安裝系統時會用到/etc/xinit.d)
- /etc/profile:系統全局環境變量,永久生效的配置文件
(用戶的環境變量:~/.bash_profile,~/.bashrc)
4.2 /etc/目錄下的重要目錄和文件
- /etc/issue(/etc/issue.net):記錄用戶登陸前顯示的系統版本等信息
- /etc/motd:登陸提醒(裏面寫的任何東西都會在全部用戶登陸前顯示出來)
- /etc/redhat-release:包括一行聲明RedHat版本號和名稱的信息。
- /etc/group:設定用戶的組名與相關信息
- /etc/passwd:用戶帳號信息文件
- /etc/shadow:用戶密碼信息文件
- /etc/gshadow:組密碼文件
- /etc/sudoers:能夠執行使用sudo命令的配置文件(權限提高)
- /etc/securetty:設定哪些中斷可讓root登陸
- /etc/login.defs:全部用戶登錄時的缺省配置
- /etc/modprobe.conf:內核模塊額外參數設定
- /etc/rsyslog.conf:日誌設置文件(僅限centos6.x)
4.3 其餘目錄
- /lib:系統會使用到的函數庫
- /lib/modules:kernel的相關模塊
- /var/lib/rpm:rpm套件安裝處
- /usr/bin:這個目錄是可執行程序的目錄;當咱們從系統自帶的軟件包安裝一個程序時,他的可執行文件大多會放在這個目錄。
- lib64:庫文件存放目錄
- /usr/sbin:這個目錄也是可執行程序的目錄,但大多存放涉及系統管理的命令;類似目錄是/sbin或/usr/local/sbin或/usr/X11R6/sbin等;
- /usr/local:這個目錄通常用來存放用戶自編譯安裝軟件的存放目錄;通常是經過源碼包安裝的軟件,若是沒有特別指定安裝目錄的話,通常是安裝在這個目錄中。
- /usr/local/bin:用戶安裝的小的應用程序,和一些在/usr/local目錄下大應用程序的符號鏈接
- /usr/local/sbin:系統全局環境目錄,可放置一些不須要加路徑執行的腳本
- /usr/share:系統共用的東西存放地,好比/usr/share/doc和/usr/share/man幫助文件
- /usr/src:內核源碼存放目錄,好比下面有內核源碼目錄,好比linux,linux-2.xxx.xx目錄等。
1,rpm -ivh(存在rpm包,又沒法使用yum的時候)
2,yum install
(習慣:線上對外的服務器不多安裝apache,nginx,mysql,功能性軟件會用yum)
3,源碼(./configure,make,make install),定製。大中小企業重要服務。
門戶:源碼---定製RPM包---製做yum倉庫----yum安裝
- /usr/bin:使用者可執行的binary file目錄
- /usr/local/bin:使用者可執行的binary file目錄
- /usr/lib:系統會使用到的函數庫
- /usr/local/lib:系統會使用到的函數庫
4.4 /var目錄下的路徑知識
- /var:日誌文件
- /var/log:各類系統日誌存放地
- /var/log/messages:系統信息默認日誌文件,很是重要。按周自動輪循
- /var/log/secure:記錄登入系統存取信息的文件,按周自動輪循,例如:pop3,ssh,telnet,ftp都會記錄在此。系統安全的日誌文件。
- /var/spool:定時任務默認路徑,按用戶名命名的文件(/var/spool/cron/root)
- var/spool/clientmqueue:sendmail臨時郵件文件目錄,有不少緣由會致使這個目錄碎文件不少,好比crontab定時任務命令不加>/dev/null等。工做中偶爾會由於該目錄文件太多,致使/var所在的分區inode數量被消耗盡,沒法寫入文件的狀況(centos6.x不會裝sendmail,因此不會有這個問題)
4.5 /proc下的重要路徑知識
top:看cpu等
- /proc:虛擬目錄,是內存的映射,內核和進程的虛擬文件系統目錄
- /proc/version:內核版本
- /proc/sys/kernel:系統內核功能
- /proc/sys/net/ipv4:修改proc的配置時臨時生效。
(/etc/sysctl.conf內核參數裏配置纔是永久生效。兩個路徑的修改效果是同樣的。net.ipv4.tcp_tw_reuse=1實際上就是修改/proc/sys/net/ipv4/tcp_tw_reuse的內容)
- /proc/cpuinfo:關於處理器的信息,如類型,廠家,型號和性能等
- /proc/meminfo:系統內存信息,free -m
- /proc/devices:當前運行內核所配置的全部設備清單
- /proc/dma:當前正在使用的DMA通道
- /proc/filesystems:當前運行內核所配置的文件系統
- /proc/initerrupts:正在使用的中斷,和曾經有多少箇中斷。
- /proc/ioports:當前正在使用的I/O端口。
- /proc/loadavg:系統負載平均值信息(系統的繁忙狀況,比較準確,可是不夠細緻系統性能指標),uptime的結果。(負載值不要超過CPU的核數。看負載top,uptime,w)
![QQ20170102-220211@2x.png-62.5kB](http://static.javashuo.com/static/loading.gif)
- /proc/mounts:設備的掛載信息,df -h相似
4.6 必須掌握的路徑及文件
- /etc/sysconfig/network-scripts/ifcfg-eth0(第一塊網卡配置文件)
- /etc/resolv.conf(DNS的配置文件,網卡配置文件優先resolv.conf)
- /etc/hosts(ip與域名(主機名)解析表)
- /etc/sysconfig/network(主機)
- /etc/fstab(開機自動掛載列表)
- /etc/rc.local(開機自啓動文件,自啓動命令,腳本)
- /etc/inittab (Linux開機運行級別配置文件)
- /etc/init.d(服務啓動命令腳本目錄)
- /etc/profile(全局環境變量)
- /etc/bashrc(別名)
- /usr/local(編譯安裝軟件默認安裝目錄)
- /var/log/message(系統日誌)
- /var/log/secure(系統安全日誌)
- /var/spool/cron/root(定時任務,root目錄)
- /proc/cpuinfo(系統cpu信息)
- /proc/meminfo(系統內存信息)
- /proc/loadavg(系統cpu負載程度)
- /proc/mounts(系統掛載信息)
4.7討論:cpu什麼狀況下算是負載很繁忙?
當cpu平均負載率大於CPU的核數的時候,咱們就能夠說,服務器cpu的負載已經很繁忙了。