Linux實戰教學筆記07:Linux系統目錄結構介紹

来源:http://www.cnblogs.com/chensiqiqi/archive/2017/01/02/6243549.html
-Advertisement-
Play Games

第七節 Linux系統目錄結構介紹 標簽(空格分隔):Linux實戰教學筆記 第1章 前言 windows目錄結構 C:\windows D:\Program Files E:\你懂的\精品 F:\你懂的\動態圖 linux 目錄結構 一切從根開始 ===== ![屏幕快照 2017 01 02 下 ...


第七節 Linux系統目錄結構介紹

標簽(空格分隔):Linux實戰教學筆記


第1章 前言

  • windows目錄結構
    C:\windows
    D:\Program Files
    E:\你懂的\精品
    F:\你懂的\動態圖

  • linux 目錄結構
    一切從根開始=====>
    屏幕快照 2017-01-02 下午12.26.16.png-442.4kB

  • 這樣的linux目錄結構,那麼可能同學們在初次接觸Linux的時候,往往會覺得目錄結構比較複雜,沒有windows那樣視窗簡單明瞭的展示,從而感覺很迷茫。
  • 其實,Linux系統的目錄結構知識同樣是很簡單的,只是Linux系統的應用場景多為伺服器應用且為字元界面應用,並不像Windows系統的那種視窗的直觀展示,但是,Linux的系統的目錄結構確是很有規律性的組織的,下麵就給大家一一道來。

1.1 Linux系統目錄結構的基本特點介紹

  • linux目錄:一切從“根”開始,“/”是所有目錄的起點(定點):相對路徑(目錄)和絕對路徑(目錄)?
  • linux根下麵的目錄是一個有層次樹狀結構
  • 倒掛的一棵樹
  • linux每個目錄可以掛載在不同的設備(磁碟)上。windows不容易做到。

邏輯上所有目錄(包括目錄下的子目錄)都在最高級別的目錄“/”下,根(“/”)目錄是linux系統中所有目錄的起始點(丁點),根下麵的目錄及目錄的子目錄是一個有層次的樹狀結構,很像一顆倒掛著的一顆大樹,這和Windows系統按照硬碟分區(C:D:E:)分割的目錄結構是不同的(windows系統可以理解為多棵樹,每個分區就是一顆獨立的小樹)。
linux系統中的這些不同的目錄也是很特別的,不同的目錄可以分佈在不同的硬碟分區以及不同的硬碟設備上,這是windows的系統難以做到的,windows系統的不同分區都是獨立存在的。
屏幕快照 2017-01-02 下午12.41.21.png-1297.2kB

  • linux下麵設備不掛載是看不到入口的,沒有視窗沒門的監獄,如果要設備被訪問就必須有一個入口,這個入口就是掛載點,掛載點實質就是目錄

以光碟機設備====>/media/cdrom為例

屏幕快照 2017-01-02 下午12.54.56.png-872.5kB

屏幕快照 2017-01-02 下午12.55.44.png-593.9kB

屏幕快照 2017-01-02 下午12.56.53.png-811.4kB

/boot 等等開機自動掛載===>/etc/fstab

  • linux系統中的所有目錄內容按照類別組織。例如,Linux下的應用程式,它的可執行程式可能在/usr/bin,而它的數據文件和幫助在/usr/share下,運行時載入的配置文件和服務啟動命令卻在/etc/下。

  • 如果同學們理解了上述兩點,相信很快就能輕鬆的理解掌握Linux系統的目錄結構了,進而感受Linux系統的獨特的魅力所在。

內容小結

  1. linux系統的所有目錄是一個有層次的倒著的樹狀目錄結構,“/”根是所有目錄的頂點。
  2. 不同的目錄數據可以跨越不同的磁碟分區或不同的磁碟設備
  3. 所有的目錄都是按照一定的類別有規律的組織和命名
  4. 相對路徑:相對於當前路徑下的路徑

屏幕快照 2017-01-02 下午1.09.37.png-14.1kB

  1. 絕對路徑:從根為起始點的路徑
    屏幕快照 2017-01-02 下午1.11.02.png-10.4kB
    /etc/init.d/iptables stop

提示:學習的意義就是練習歸納總結的能力,把書由厚變薄(先總結再擴展)

第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

當時,他們使用一種叫做RK05的存儲盤,盤的容量大約是1.5MB

屏幕快照 2017-01-02 下午1.18.09.png-463.4kB

由於硬碟的容量很小,因此沒多久,操作系統存儲盤數據(根目錄)變的越來越大了,導致一塊盤已經裝不下數據了。於是,他們加上了第二盤RK05,並且作了規定,第一塊盤專門用來存放系統程式相關,第二塊盤專門存放用戶自己的程式,因此,掛載的目錄點取名為/usr。也就是說,根目錄“/”掛載在第一塊盤,“/usr”目錄掛載在第二塊盤。除此之外,兩塊盤裡面的其他的目錄結構是完全相同的,例如:第一塊盤的目錄(/bin,/sbin/lib/tmp...)都在/usr目錄下重新出現一次(/bin,/sbin,/lib)

屏幕快照 2017-01-02 下午1.24.47.png-25.3kB

tmp 思想: 不要輕易刪除東西,可以放在tmp目錄下麵。過1個月後再刪除。

時間不長,第二塊存儲盤也滿了,他們只好又加了第三盤RK05,掛載的目錄取名為/home,並且做了規定,/usr用於存放用戶的程式,/home用於存放用戶的數據。
此後,這種目錄結構起名和定義就這樣延續了下來。隨著設備的發展,硬碟的容量也越來越大,那麼,各個目錄的含義進一步得到了明確。

屏幕快照 2017-01-02 下午1.49.19.png-322.2kB

第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

屏幕快照 2017-01-02 下午5.25.47.png-1275.5kB
屏幕快照 2017-01-02 下午5.26.34.png-776.9kB

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
    屏幕快照 2017-01-02 下午5.56.27.png-65.5kB
    屏幕快照 2017-01-02 下午5.57.25.png-858kB
    (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
上圖配置實際上修改的是/etc/sysconfig/network-scripts/ifcfg-eth0文件

屏幕快照 2017-01-02 下午6.55.28.png-590.2kB
上圖設置實際上修改的是/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 主機名

  • /etc/fstab:開機自動掛載文件系統的一個列表(具體配置以後詳說)

    思考: fstab一旦配置錯誤,會導致伺服器無法啟動。如何修複?

  • /etc/rc.local:用於存放開機自啟動程式命令的文件(chkconfig 常用來管理yum/rpm安裝的程式的服務的開機自啟動/etc/init.d)

在開機時,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
  • /proc/mounts:設備的掛載信息,df -h類似

4.6 必須掌握的路徑及文件

  1. /etc/sysconfig/network-scripts/ifcfg-eth0(第一塊網卡配置文件)
  2. /etc/resolv.conf(DNS的配置文件,網卡配置文件優先resolv.conf)
  3. /etc/hosts(ip與功能變數名稱(主機名)解析表)
  4. /etc/sysconfig/network(主機)
  5. /etc/fstab(開機自動掛載列表)
  6. /etc/rc.local(開機自啟動文件,自啟動命令,腳本)
  7. /etc/inittab (Linux開機運行級別配置文件)
  8. /etc/init.d(服務啟動命令腳本目錄)
  9. /etc/profile(全局環境變數)
  10. /etc/bashrc(別名)
  11. /usr/local(編譯安裝軟體預設安裝目錄)
  12. /var/log/message(系統日誌)
  13. /var/log/secure(系統安全日誌)
  14. /var/spool/cron/root(定時任務,root目錄)
  15. /proc/cpuinfo(系統cpu信息)
  16. /proc/meminfo(系統記憶體信息)
  17. /proc/loadavg(系統cpu負載程度)
  18. /proc/mounts(系統掛載信息)

4.7討論:cpu什麼情況下算是負載很繁忙?

當cpu平均負載率大於CPU的核數的時候,我們就可以說,伺服器cpu的負載已經很繁忙了。




您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 首先什麼是全表掃描和索引掃描?全表掃描所有數據過一遍才能顯示數據結果,索引掃描就是索引,只需要掃描一部分數據就可以得到結果。如果數據沒建立索引。 無索引的情況下搜索數據的速度和占用記憶體就會比用索引的檢索慢和高。下麵是一個例子 1:無索引的情況 Product表,裡面沒有任何索引,如下圖: 從上圖中, ...
  • 1、在C盤新建MYSQL文件夾;2、將mysql-5.7.16-winx64拷貝到C:\MYSQL文件夾下,更名為mysql-5.7.16;3、在mysql-5.7.16目錄下,建my.ini文件,內容如下:[mysql]# 設置mysql客戶端預設字元集default-character-set= ...
  • 1.前言 相比高級語言的調試如C# , 調試SQL是件痛苦的事 . 特別是那些上千行的存儲過程, 更是我等碼農的噩夢. 在將上千行存儲過程的SQL 分解到 C# 管理後, 也存在調試的不通暢, 如何讓調試流暢些呢, 請看後續 2.常見調試 2.1 通常在Dapper 裡面一個斷點下去, 抓到類似如下 ...
  • 說起去除字元串首尾空格大家肯定第一個想到trim()函數,不過在sqlserver中是沒有這個函數的,卻而代之的是ltrim()和rtrim()兩個函數。看到名字所有人都 知道做什麼用的了,ltrim()去除字元串左邊的空格,rtrim()去除字元串右邊的空格,要去除首尾空格同時使用這個兩個函數就好 ...
  • Red Hat Enterprise Linux Server(RHEL) yum安裝軟體時This system is not registered with RHN. RHN support will be disabled. Red Hat Enterprise Linux Server(RH ...
  • 1.Cron的啟動與關閉 由於Cron是Linux的內置服務,可以用以下的方法啟動.關閉這個服務: /sbin/service crond start //啟動服務/sbin/service crond stop //關閉服務/sbin/service crond restart //重啟服務/sb ...
  • 目錄 IP地址分類 如何將Linux主機接入到網路中 網路介面的命名方式 ifcfg系列命令 如何配置主機名 如何配置DNS伺服器指向 iproute2系列命令 Linux管理網路服務 永久生效配置路由條目 如何為介面配置多個IP地址 19.1、IP地址分類 IP地址分為5類,A,B,C,D,E,其 ...
  • 1.安裝Oracle Oracle軟體是免費的,可以去官網下載相應的安裝包。但是如果用於商業用途需要購買License。官網上針對各種平臺,32位和64位都有,如果在Windows一般會下載到兩個文件。以Oracle 11g為例,有兩個zip壓縮文件,註意安裝前將兩個壓縮文件的內容解壓後合併。安裝提... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...