Linux之文檔與目錄結構

来源:https://www.cnblogs.com/fengqiang626/archive/2019/10/20/11709092.html
-Advertisement-
Play Games

[TOC] 1.Linux文件系統結構 Linux目錄結構的組織形式和Windows有很大的不同。首先Linux沒有“盤(C盤、D盤、E盤)”的概念。已經建立文件系統的硬碟分區被掛載到某一個目錄下,用戶通過操作目錄來實現磁碟讀寫。 Linux不像Windows那樣的系統目錄,Linux使用正斜杠"/ ...


目錄

1.Linux文件系統結構

Linux目錄結構的組織形式和Windows有很大的不同。首先Linux沒有“盤(C盤、D盤、E盤)”的概念。已經建立文件系統的硬碟分區被掛載到某一個目錄下,用戶通過操作目錄來實現磁碟讀寫。

Linux不像Windows那樣的系統目錄,Linux使用正斜杠"/"而不是反斜杠""來標識目錄。

Windows目錄:

Linux目錄:

Linux首先是建立一個根"/"文件系統,所有的目錄也都是由根目錄衍生出來。

登錄系統後,在當前命令視窗輸入命令:

ls /

查看結果如下圖:

在Linux底下,所有的文件與目錄都是由根目錄開始,是目錄與文件的源頭,然後一個個的分支下來,如同樹枝狀,因此稱為這種目錄配置為:目錄樹。

目錄樹的特點是什麼呢?

  • 目錄樹的起始點是根目錄(/,root);
  • 每一個目錄不止能使用本地的文件系統,也可以使用網路上的文件系統,可以利用NFS伺服器掛載特定目錄。
  • 每一個文件在此目錄樹中的文件名,包含完整路徑都是獨一無二的。

2.目錄樹架構示意圖

以下是對這些目錄的解釋:

  • /bin
    bin是Binary的縮寫, 這個目錄存放著最經常使用的命令。

  • /boot:
    這裡存放的是啟動Linux時使用的一些核心文件,包括一些連接文件以及鏡像文件。

  • /dev :
    dev是Device(設備)的縮寫, 該目錄下存放的是Linux的外部設備,在Linux中訪問設備的方式和訪問文件的方式是相同的。

  • /etc:
    這個目錄用來存放所有的系統管理所需要的配置文件和子目錄。

  • /home
    用戶的主目錄,在Linux中,每個用戶都有一個自己的目錄,一般該目錄名是以用戶的賬號命名的。

  • /lib
    這個目錄里存放著系統最基本的動態連接共用庫,其作用類似於Windows里的DLL文件。幾乎所有的應用程式都需要用到這些共用庫。

  • /lost+found
    這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些文件。

  • /media
    linux系統會自動識別一些設備,例如U盤、光碟機等等,當識別後,linux會把識別的設備掛載到這個目錄下。

  • /mnt
    系統提供該目錄是為了讓用戶臨時掛載別的文件系統的,我們可以將光碟機掛載在/mnt/上,然後進入該目錄就可以查看光碟機里的內容了。

  • /opt
    這是給主機額外安裝軟體所擺放的目錄。比如你安裝一個ORACLE資料庫則就可以放到這個目錄下。預設是空的。

  • /proc
    這個目錄是一個虛擬的目錄,它是系統記憶體的映射,我們可以通過直接訪問這個目錄來獲取系統信息。
    這個目錄的內容不在硬碟上而是在記憶體里,我們也可以直接修改裡面的某些文件,比如可以通過下麵的命令來屏蔽主機的ping命令,使別人無法ping你的機器:

    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  • /root
    該目錄為系統管理員,也稱作超級許可權者的用戶主目錄。

  • /sbin
    s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式。

  • /selinux
    這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似於windows的防火牆,但是這套機制比較複雜,這個目錄就是存放selinux相關的文件的。

  • /srv
    該目錄存放一些服務啟動之後需要提取的數據。

  • /sys
    這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs 。

    sysfs文件系統集成了下麵3種文件系統的信息:針對進程信息的proc文件系統、針對設備的devfs文件系統以及針對偽終端的devpts文件系統。

    該文件系統是內核設備樹的一個直觀反映。

    當一個內核對象被創建的時候,對應的文件和目錄也在內核對象子系統中被創建。

  • /tmp
    這個目錄是用來存放一些臨時文件的。

  • /usr
    這是一個非常重要的目錄,用戶的很多應用程式和文件都放在這個目錄下,類似於windows下的program files目錄。

  • /usr/bin:
    系統用戶使用的應用程式。

  • /usr/sbin:
    超級用戶使用的比較高級的管理程式和系統守護程式。

  • /usr/src:內核源代碼預設的放置目錄。

  • /var
    這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌文件。

在linux系統中,有幾個目錄是比較重要的,平時需要註意不要誤刪除或者隨意更改內部文件。

/etc: 上邊也提到了,這個是系統中的配置文件,如果你更改了該目錄下的某個文件可能會導致系統不能啟動。

/bin, /sbin, /usr/bin, /usr/sbin: 這是系統預設的執行文件的放置目錄,比如 ls 就是在/bin/ls 目錄下的。

值得提出的是,/bin, /usr/bin 是給系統用戶使用的指令(除root外的通用戶),而/sbin, /usr/sbin 則是給root使用的指令。

/var: 這是一個非常重要的目錄,系統上跑了很多程式,那麼每個程式都會有相應的日誌產生,而這些日誌就被記錄到這個目錄下,具體在/var/log 目錄下,另外mail的預設放置也是在這裡。

3.目錄的相關操作

我們知道切換目錄的指令是cd,那麼首先得知道如何切換目錄,這個得用心記呀!

.    當前目錄
..    上一層目錄
-    前一個工作目錄
~    當前【用戶】所在的家目錄

需要註意的是,在所有目錄底下都存在兩個目錄,分別是【.】和【..】,分別代表當前目錄,上層目錄!那麼如何證明它的存在呢?

命令: ls -la /查看命令解釋:man ls  (Linux下的幫助指令)結論:ls - list directory contens (列出目錄內容)ls -la /  以豎狀格式化顯示列出/目錄所有內容

接下來看一下常用的目錄處理指令:

cd : (change directory,更改目錄)
pwd:(顯示當前目錄)
mkdir:(建立一個新目錄)
rmdir:(刪除一個空目錄)

3.1cd命令,變換目錄

cd是change directory的縮寫,這是用來變換工作目錄的命令,註意命令和目錄之間有一個空格。

3.2mkdir,建立新目錄

mkdir是make directory的縮寫,用來建立新目錄,在預設情況下,目錄得一級一級的建立。

例如我要建立/home/oldboy/python目錄,我就必須有/home,然後/home/oldboy,最後/home/oldboy/python,如果沒有/home/oldboy,則不能建立python目錄!

可見高效的創建目錄用上-p參數,可以直接執行命令【mkdir -p /home/oldboy/python】,系統會自動添加上/home,/home/oldboy,/home/oldboy/python依次建立目錄,是不是很方便,^ ^

3.3rmdir,刪除空目錄

當我想刪除一個空目錄時,就用rmdir吧,例如我想刪除剛纔建立的oldboy目錄,以及/tmp/oldboy/python,那麼可以使用【rmdir oldboy】,但是註意rmdir只能刪除空目錄。

刪除命令可以正確使用【rm -rf】

3.4Linux的路徑PATH

同學們應該都會配置windows下的環境變數(PATH),都知道系統會按照PATH的設定,去每個PATH定義的目錄下搜索可執行文件。

那麼如何查看Linux下的PATH環境變數呢?

執行命令:
echo $PATH
echo命令是有列印的意思
$符號後面跟上PATH,表示輸出PATH的變數

PATH(一定是大寫的)這個變數是由一堆目錄組成,分隔符是":"號,而不同於windows的";"號。

4.絕對路徑與相對路徑

Linux中非常重要的概念--路徑,路徑用來定位如何找到某個文件。

這裡超哥先講個例子,到底什麼是相對路徑,絕對路徑

比如一個老外,要來老男孩教育學習python,但是他找不到地點,因此向你問路,你可以告訴他:

​ 1.先坐飛機來中國北京,從北京機場坐地鐵到沙河地鐵站,然後走路800米到沙河匯德商廈,上四樓,找到超哥,結束尋路。

​ 2. 超哥就在匯德商廈403辦公室,武佩奇後面坐著呢!!!

Linux下特別註意文件名/路徑的寫法,可以將所謂的路徑(path)定義為絕對路徑(absolute)和相對路徑(relative)。這兩種文件名/路徑的寫法依據是這樣的:

  • 絕對路徑:由根目錄(/)為開始寫起的文件名或者目錄名稱,如/home/oldboy/test.py;
  • 相對路徑:相對於目前路徑的文件名寫法。例如./home/oldboy/exam.py或../../home/oldboy/exam.py,簡單來說只要開頭不是/,就是屬於相對路徑

因此你必須瞭解,相對路徑是:以你當前所在路徑的相對路徑來表示的。

例如你現在在/home 這個目錄下,如要進入/var/log這個路徑,如何寫呢?

  1. cd /var/log (絕對路徑)
  2. cd ../var/log(相對路徑)

結果如圖:

因為你在/home底下,因此你要回到上一層(../)之後,才能繼續前往/var,特別註意:

  • . :代表當前的目錄,也可以用./ 來表示
  • .. :代表上一層的目錄,也可以用../來表示

分割線----

這個.與..目錄概念非常重要,平時經常會看到cd ..或者python ../home/oldboy/exam.py 就是代表進入上一層與執行相對路徑的python代碼!

1.linux是以 / 開始的樹狀目錄結構,tree查看
2.常用文件目錄操作命令是ls,cd,mkdir,rmdir
3.Linux的PATH查看是 echo $PATH,可以修改/etc/profile文件永久生效,以冒號分割4.絕對路徑,相對路徑的查看5.文件許可權chmod chgrp chown

5.Linux的文件系統

用戶在硬體存儲設備中執行的文件建立,寫入,讀取,修改,轉存與控制等操作都是依賴文件系統完成的。文件系統的作用是合理規劃硬碟,保證用戶正常使用。

Linux系統支持數十種文件系統,常見文件系統如下。

  • Ext3 是一款日誌文件系統,能夠在系統異常宕機時避免文件系統資料丟失,並能 自動修複數據的不一致與錯誤。
  • Ext4 Ext3 的改進版本,作為 RHEL 6 系統中的預設文件管理系統,它支持的存儲容 量高達 1EB(1EB=1,073,741,824GB),且能夠有無限多的子目錄。另外,Ext4 文件系統能夠批量分配 block 塊,從而極大地提高了讀寫效率。
  • XFS 是一種高性能的日誌文件系統,而且是 RHEL 7 中預設的文件管理系統,它的優勢在發生意外宕機後尤其明顯,即可以快速地恢復可能被破壞的文件,而且強大的 日誌功能只用花費極低的計算和存儲性能。並且它最大可支持的存儲容量為 18EB, 這幾乎滿足了所有需求。
/etc/fstab是用來存放文件系統的靜態信息的文件cat /etc/fstab #檢查linux的文件系統

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

-Advertisement-
Play Games
更多相關文章
  • 前言:該系列為爬蟲基礎,適合沒有接觸過python或剛剛起步的同學,如有錯誤,歡迎指出。 --爬蟲的定義: 通過編寫程式,模擬瀏覽器行為瀏覽網頁,獲取互聯網上的數據,也稱為蜘蛛,如:百度;谷歌,都是爬蟲。 註意: 爬蟲是python的一個分支或者說方向,個人自學python(爬蟲)兩年,從0-1,一 ...
  • 基本數據類型 數值型 整數類型 byte short int long 浮點類型 float double 字元型 char 布爾型 boolean 引用數據類型 類 class 介面 interface 數組 枚舉enum 註解annotion ...
  • 前面寫過兩篇關於“保存信息修改記錄”的內容,分別如下: JeeSite | 保存信息修改記錄 JeeSite | 保存信息修改記錄續 回顧 第一篇文章通過類欄位的比較返回一個有欄位值不同的 List,然後自己構造表欄位和字典的 Map 來生成修改前和修改後的差異字元串。從而實現“信息”修改“前”和修 ...
  • 問題 為什麼開發web項目,spring boot starter web 一個jar就搞定了?這個jar做了什麼? 通過 spring boot 工程可以看到所有開箱即用的的引導模塊 spring boot starter xxx 都在 子模塊中, 且所有的 spring boot starter ...
  • API 應用程式編程介面 Scanner類 將鍵盤輸入的數據到程式中 1.導包 2.創建 Scanner 對象名 = new Scanner(); 3.使用 int num = 對象名.nextInt(); String str = 對象名.next(); 匿名對象 new 類名稱(); 使用 ne ...
  • 2018年5月份開始在JZ2440上陸續移植了u-boot-2016.11、u-boot-spl-2016.11、linux-4.17和busybox-1.28.4,其中linux-4.17和busybox-1.28.4是當時官方最新的版本,以此作為學習linux兩年來的總結。 遺憾的是,當時在移植 ...
  • Linux/Unix下非常有用的find命令的用法 功能簡述:find(查找)主要沿著文件層次(目錄)結構依次向下遍歷,匹配符合條件的文件,可以附帶執行相應的操作選項,預設的操作結果是列印出符合條件的文件與目錄(也可通過使用-print來指定,強調命令的結果是列印出來,不加此選項也可以)。 主要功能 ...
  • [TOC] 1.前言 Linux命令行的組成結構 2.Linux系統命令操作語法格式 | 命令 | 空格 | 參數 | 空格 | 【文件或路徑】需要處理的內容 | | | | | | | | rm | | rf | | /tmp/ | | ls | | la | | /home | | 結婚 | | ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...