Linux目錄解析說明

来源:http://www.cnblogs.com/sunhongleibibi/archive/2017/11/08/7802084.html
-Advertisement-
Play Games

一、Linux的根”/ 處於Linux文件系統樹形結構的最頂端,我們稱它為Linux文件系統的root,它是Linux文件系統的入口。所有的目錄、文件、設備都在/之下,它是Linux文件系統最頂層的唯一的目錄; 一般建議在根目錄下麵只有目錄,不要直接存放文件;根目錄是linux系統啟動時系統第一個載 ...


一、Linux的根”/

         處於Linux文件系統樹形結構的最頂端,我們稱它為Linux文件系統的root,它是Linux文件系統的入口。所有的目錄、文件、設備都在/之下,它是Linux文件系統最頂層的唯一的目錄;          一般建議在根目錄下麵只有目錄,不要直接存放文件;根目錄是linux系統啟動時系統第一個載入的分區,所以啟動過程中用到的文件應該都放在這個分區中,其中/etc、/bin、/dev、/lib、/sbin這5個子目錄都應該要與根目錄連在一起,不可獨立成為某個分區;

二、目錄樹: 

三、重要目錄介紹:

/etc:

        這個目錄相當重要,如前所述,你的開機與系統數據文件均在這個目錄之下,因此當這個目錄被破壞,那你的系統大概也就差不多該死掉了!而在往後的文件中,你會發現我們常常使用這個目錄下的 /etc/rc.d/init.d 這個子目錄,因為這個 init.d 子目錄是開啟一些 Linux 系統服務的 scripts 的地方。而在 /etc/rc.d/rc.local 這個文件是開機的執行檔。 

/bin, /sbin, /usr/bin, /usr/sbin:

        這是系統預設的執行文件的放置目錄,例如 root 常常使用的 userconf, netconf, perl, gcc, c++ 等等的數據都放在這幾個目錄中,所以如果你在提示字元下找不到某個執行檔時,可以在這四個目錄中查一查!其中, /bin, /usr/bin 是給系統使用者使用的指令,而 /sbin, /usr/sbin 則是給系統管理員使用的指令!   

/usr/local:

        這是系統預設的讓你安裝你後來升級的套件的目錄。例如,當你發現有更新的 Web 套件(如 Apache )可以安裝,而你又不想以 rpm 的方式升級你的套件,則你可以將 apache 這個套件安裝在 /usr/local 底下。安裝在這裡有個好處,因為目前大家的系統都是差不多的,所以如果你的系統要讓別人接管的話,比較容易上手!也比較容易找的到數據!因此,如果有需要的話,通常都會將 /usr/local/bin 這個路徑加到 path 中。 

/home:

        這個是所有用戶的家目錄設置的地方。相應的許可權有相應的home目錄。  

/var:

       極其重要!不論是登入、各類服務的問題發生時的記錄、以及常態性的服務記錄等等的記錄目錄,所以當你的系統有問題時,就需要來這個目錄記錄的文件數據日誌中查看問題的所在!而 mail 的預設放置也是在這裡,要十分熟悉!     

/usr/share/man, /usr/local/man:

        這兩個目錄為放置各類套件說明檔的地方,例如你如果執行 man man,則系統會自動去找這兩個目錄下的所有說明文件

四、 重要目錄下的子目錄詳解:

/dev:

  dev是設備(device)的英文縮寫。/dev這個目錄對所有的用戶都十分重要。因為在這個目錄中包含了所有Linux系統中使用的外部設備。但是這裡並不是放的外部設備的驅動程式,這一點和windows,dos操作系統不一樣。它實際上是一個訪問這些外部設備的埠。我們可以非常方便地去訪問這些外部設備,和訪問一個文件,一個目錄沒有任何區別。   Linux沿襲Unix的風格,將所有設備認成是一個文件。設備文件分為兩種:塊設備文件(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:隨機數設備   /dev目錄下的節點是devf或者udev會自動幫你創建得。kobject是sysfs文件系統的基礎,udev通過監測、檢測sysfs來獲取新創建的設備的。   ------------------------------------------

/etc:

  包含很多文件.許多網路配置文件也在/etc 中. /etc/rc   or /etc/rc.d   or /etc/rc*.d    啟動、或改變運行級時運行的scripts或scripts的目錄,關於自啟動可以參考這篇文章 /etc/passwd    用戶資料庫,其中的域給出了用戶名、真實姓名、家目錄、加密的口令和用戶的其他信息. /etc/fstab    啟動時mount -a命令(在/etc/rc 或等效的啟動文件中)自動mount的文件系統列表. Linux下,也包括用swapon -a啟用的swap區的信息.比如需要擴充虛擬機硬碟空間的話,最後件擴充過的空間格式化以後修改這個文件的內容。 /etc/group    類似/etc/passwd ,但說明的不是用戶而是組. cat /etc/group 可以看到所有的用戶(在root許可權下) /etc/inittab    init 的配置文件. (在ubuntu下有的沒有這個文件) /etc/issue    getty 在登錄提示符前的輸出信息.通常包括系統的一段短說明或歡迎信息.內容由系統管理員確定. cat /etc/issue可以查看版本的基本信息、 /etc/motd    Message Of The Day,成功登錄後自動輸出.內容由系統管理員確定.經常用於通告信息,如計劃關機時間的警告. /etc/mtab    當前安裝的文件系統列表.由scripts初始化,並由mount 命令自動更新.需要一個當前安裝的文件系統的列表時使用,例如df 命令. /etc/shadow    在安裝了影子口令軟體的系統上的影子口令文件.影子口令文件將/etc/passwd 文件中的加密口令移動到/etc/shadow 中,而後者只對root可讀.這使破譯口令更困難. /etc/login.defs    login 命令的配置文件. /etc/printcap    類似/etc/termcap ,但針對印表機.語法不同. /etc/profile , /etc/csh.login , /etc/csh.cshrc   登錄或啟動時Bourne或C shells執行的文件.這允許系統管理員為所有用戶建立全局預設環境. 同時如果需要添加環境變數可以在/etc/profile文件中添加,可以在任何終端下使用。 /etc/securetty    確認安全終端,即哪個終端允許root登錄.一般只列出虛擬控制台,這樣就不可能(至少很困難)通過modem或網路闖入系統並得到超級用戶特權. /etc/shells    列出可信任的shell.chsh 命令允許用戶在本文件指定範圍內改變登錄shell.提供一臺機器FTP服務的服務進程ftpd 檢查用戶shell是否列在 /etc/shells 文件中,如果不是將不允許該用戶登錄. /etc/sysconfig   網路配置相關目錄 ------------------------------------------

/proc: 

/proc/cmdline     載入 kernel 時所下達的相關參數!查閱此文件,可瞭解系統是如何啟動的! /proc/cpuinfo      本機的 CPU 的相關資訊,包含時脈、類型與運算功能等 /proc/devices      這個文件記錄了系統各個主要裝置的主要裝置代號,與 mknod 有關呢! /proc/filesystems 目前系統已經載入的文件系統羅! /proc/interrupts   目前系統上面的 IRQ 分配狀態。 /proc/ioports       目前系統上面各個裝置所配置的 I/O 位址。 /proc/kcore          這個就是記憶體的大小啦!好大對吧!但是不要讀他啦! /proc/loadavg      還記得 top 以及 uptime 吧?沒錯!上頭的三個平均數值就是記錄在此! /proc/meminfo    使用 free 列出的記憶體資訊,嘿嘿!在這裡也能夠查閱到! /proc/modules    目前我們的 Linux 已經載入的模塊列表,也可以想成是驅動程式啦! /proc/mounts      系統已經掛載的數據,就是用 mount 這個命令呼叫出來的數據啦! /proc/swaps        到底系統掛載入的記憶體在哪裡?呵呵!使用掉的 partition 就記錄在此啦! /proc/partitions   使用 fdisk -l 會出現目前所有的 partition 吧?在這個文件當中也有紀錄喔! /proc/pci             在 PCI 匯流排上面,每個裝置的詳細情況!可用 lspci 來查閱! /proc/uptime       就是用 uptime 的時候,會出現的資訊啦! /proc/version      核心的版本,就是用 uname -a 顯示的內容啦! /proc/bus/*          一些匯流排的裝置,還有 U盤 的裝置也記錄在此喔! ------------------------------------------

/usr:

  /usr 文件系統經常很大,因為所有程式安裝在這裡. /usr 里的所有文件一般來自Linux distribution;本地安裝的程式和其他東西在/usr/local 下.這樣可能在升級新版系統或新distribution時無須重新安裝全部程式. /usr/etc           存放設置文件 /usr/games     存放游戲和教學文件 /usr/include     存放C開發工具的頭文件 /usr/share        存放結構獨立的數據 /usr/bin    幾乎所有用戶命令.有些命令在/bin 或/usr/local/bin 中. /usr/sbin    根文件系統不必要的系統管理命令,例如多數服務程式.  /usr/share/man , /usr/share/info , /usr/share/doc   手冊頁、GNU信息文檔和各種其他文檔文件.  /usr/include    C編程語言的頭文件.為了一致性這實際上應該在/usr/lib 下,但傳統上支持這個名字. /usr/lib    程式或子系統的不變的數據文件,包括一些site-wide配置文件.名字lib來源於庫(library); 編程的原始庫存在/usr/lib 里.  /usr/local    本地安裝的軟體和其他文件放在這裡.  /usr/src            存放程式的源代碼 ------------------------------------------

/var:

  /var 包括系統一般運行時要改變的數據.每個系統是特定的,即不通過網路與其他電腦共用.  /var/catman    當要求格式化時的man頁的cache.man頁的源文件一般存在/usr/man/man* 中;有些man頁可能有預格式化的版本,存在/usr/man/cat* 中.而其他的man頁在第一次看時需要格式化,格式化完的版本存在/var/man 中,這樣其他人再看相同的頁時就無須等待格式化了. (/var/catman 經常被清除,就象清除臨時目錄一樣.) /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/spool    mail, news, 列印隊列和其他隊列工作的目錄.每個不同的spool在/var/spool 下有自己的子目錄,例如,用戶的郵箱在/var/spool/mail 中. /var/tmp    比/tmp 允許的大或需要存在較長時間的臨時文件. (雖然系統管理員可能不允許/var/tmp 有很舊的文件.)  /var/www         如果安裝了apache(apt-get install apache2),可以看到存放網頁的目錄 ------------------------------------------                              
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 安裝docker 檢查curl包是否安裝? which curl 如果curl沒有安裝的話,則先更新apt源,並安裝curl,如下: apt-get updateapt-get install curlapt-get updatewget -qO- https://get.docker.com/ | ...
  • 在linux系統下開發C 程式卻會遇到系統不支持conio.h頭文件,無法使用getch()不回顯函數。下麵就演示如何構建函數實現數值輸入不回顯。 運行結果: 說明:Linux下C編程遇到要輸入密碼的問題,可輸入的時候密碼總不能讓人看見吧,本來想用getch()來解決輸入密碼無回顯的問題的,不料Li ...
  • 起始: 待寫…… ...
  • Centos 7 使用firewalld代替了原來的iptables,使用方法如下: >>>關閉防火牆 systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall開機啟動 >> ...
  • 前言 本文主要介紹如何使用Grafana和Prometheus以及node_exporter對Linux伺服器性能進行監控。下麵兩張圖分別是兩台伺服器監控信息: 伺服器A 伺服器B 概述 Prometheus是一個開源的服務監控系統,它通過HTTP協議從遠程的機器收集數據並存儲在本地的時序資料庫上。 ...
  • Makefilen內容1. 顯示規則:顯示規則說明瞭,如何生成一個或多個目標。這是由Makefile指出要生成的文件和文件依賴的文件。2. 隱晦規則:基於Makefile的自動推導功能3. 變數的定義:一般是字元串4. 文件指示:一般是在Makefile中引用另外一個makefile文件;根據某些規 ...
  • 前些天,Windows系統出現了故障,需要重新安裝,由於之前在硬碟上同時安裝了Windows 7和centos 7,在安裝了Windows後Windows系統重寫了MBR導致centos無法引導,因為centos裡面有資料,不願意重裝,於是決定自己動手修複MBR和grub。 1、系統環境 Windo ...
  • 簡介 MongoDB[1] 是一個基於分散式文件存儲的資料庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。 mongoDB mongoDB MongoDB[2] 是一個介於關係資料庫和非關係資料庫之間的產品,是非關係資料庫當中功能最豐富,最像關係資料庫的。他支持的數據結構非 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...