Linux基礎(存儲結構和磁盤劃分)

一切從“/”開始

在Linux系統中,目錄、字符設備、塊設備、套接字、打印機等都被抽象成了文件,一切皆為件

與windows操作系統不同,Linux系統內不存在C/D/E/F盤等,一切文件都是從根(/)目錄開始的

Linux系統中按照文件系統層次化標準(FHS)采用樹形結構存放文件,以及定義了常見目錄的用途

Linux系統中的文件和目錄名稱是嚴格區分大小寫的,文件名稱不能包含斜杠(/)

Linux系統的文件存儲結構

?前面提到的FHS是根據以往無數Linux系統用戶和開發者的經驗而總結出來的,是用戶在Linux系統中存儲文件時需要遵守的規則,用于指導我們應該把文件保存在什么位置,以及告訴用戶應該在何處找到所需的文件

Linux系統中常見的目錄名稱以及相應內容

目錄名稱應放置文件的內容
/boot開機所需的文件——內核、開機菜單以及所需配置文件等
/dev以文件形式存放任何設備與接口
/etc配置文件
/home用戶家目錄
/bin存放單用戶模式下還可以操作的命令
/lib開機時用到的函數庫,以及/bin與/sbin下面的命令需要調用的函數
/sbin開機過程中需要的命令
/media用于掛載設備文件的目錄
/opt放置第三方軟件
/root系統管理員的家目錄
/srv一些網絡服務的數據文件目錄
/tmp任何人均可使用的“共享”臨時目錄
/proc虛擬文件系統,例如系統內核、進程、外部設備及網絡狀態等
/usr/local用戶自行安裝的軟件
/usr/sbin

Linux系統開機時不會使用到的軟件/命令/腳本

/usr/share幫助與說明文件,也可放置共享文件
/var主要存放經常變化的文件
/lost+found當文件系統發生錯誤時,將一些丟失的文件片段存放在這里

Linux系統中還有一概念——路徑

路徑指的是如何定位到某個文件,分為:絕對路徑? 和?? 相對路徑

絕對路徑指的是從根目錄(/)開始寫起的文件或目錄名稱

相對路徑指的是相對于當前路徑的寫法

物理設備的命名規則

常見的硬件設備及其文件名稱

硬件設備文件名稱
IDE設備/dev/hd[a-d]
SCSI/SATA/U盤/dev/sd[a-p]
軟驅/dev/fd[0-1]
打印機/dev/lp[0-15]
光驅/dev/cdrom
鼠標/dev/mouse
磁帶機/dev/st0或/dev/ht0

現在的IDE設備很少見了,所以一般的硬盤設備都會是以“/dev/sd”開頭的。

一臺主機上可以有多塊硬盤,因此采用a~p來代表16塊不同的硬盤(默認從a開始分配)

硬盤的分區編號也有規則:

①主分區或擴展分區的編號從1開始,到4結束

②邏輯分區從編號5開始

首先,/dev/目錄中保存的應當是硬件設備文件;其次,sd表示是存儲設備;然后,a表示系統中同類接口中第一個被識別到設備,最后,5表示這個設備是一個邏輯分區。

所謂擴展分區,嚴格上講它不是一個實際意義的分區,它僅僅是一個指向下一個分區的指針,這種指針結構將形成一個單向鏈表

硬盤分區的規劃

文件系統

最常見的文件系統如下:

Ext3:是一款日志文件系統,能夠在系統異常死機時避免文件系統資料丟失,并能自動修復數據的不一致與錯誤

Ext4:Ext3的升級版,作為RHEL6系統中的默認文件管理系統,它支持的存儲容量高達1EB,且能夠有無限多的子目錄。另外,Ext4文件系統能夠批量分配block塊,從而極大地提高了讀寫效率

XFS:是一種高性能的日志文件系統,而且是RHEL7中默認的文件管理系統,它的優勢在發生意外死機后尤其明顯,即可以快速地恢復可能被破壞的文件,而且強大的日志功能只用花費極地的計算和存儲性能。最大可支持的存儲容量為18EB

掛載硬件設備

mount命令

mount命令用于掛載文件系統

格式為:mount 【文件系統】 掛載目錄

mount命令中可用的參數

參數作用
-a掛載所有在/etc/fstab中定義的文件系統
-t指定文件系統的類型

掛載是在使用硬件設備前所執行的最后一步操作

只需要用mount命令把硬盤設備或分區與一個目錄文件進行關聯,然后就能在這個目錄中看到硬件設備中的數據了

對于比較新的Linux系統來講,一般不需要使用-t參數來指定文件系統的類型,Linux系統會自動進行判斷。

而mount命令中的-a參數,它會在執行后自動檢查/etc/fstab文件中有無疏漏被掛載的設備文件,如果有,則自動掛載操作

umount命令

umount命令用于撤銷已經掛載的設備文件

格式為:umount 【掛載點/設備文件】

添加硬盤設備

fdisk命令

在Linux系統中,管理硬盤設備最常用的方法當屬fdisk命令

格式為:fdisk 【磁盤名稱】

fdisk命令中的參數及其作用

參數作用
-m查看全部可用的參數
-n添加新的分區
-d刪除某個分區的信息
-l列出所有可用的分區類型
-t改變某個分區的類型
-p查看分區信息
-w保存并退出
-q不保存直接退出

我們先使用熟悉一下fdisk命令

fdisk -l?

fdisk /dev/nvme0n2? 分區

?我們輸入m,查看幫助

?輸入參數n嘗試添加新的分區。系統會要求您是選擇繼續輸入參數p,還是輸入參數e來創建擴展分區。我們這里輸入參數p來創建一個主分區。

在確認創建一個分區后,系統要求您先輸入主分區的編號。

主分區的編號:1-4

因此這里輸入默認的1就行了,不輸入任何數字,系統自動選擇默認值

接下來系統會提示定義起始的扇區位置,這不需要改動,我們直接回車鍵默認即可,系統會自動算出最靠前的空閑扇區的位置

最后,系統會要求定義分區的結束扇區,這其實就是要去定義整個分區的大小是多少

我們再次使用參數p來查看硬件設備中的分區信息

?我們設置好了以后,千萬記得輸入w參數進行保存

在上述步驟完成后,Linux系統會自動把這個硬盤主分區抽象成文件

我們可用file命令查看該文件的屬性

如果沒有同步的話可用使用partprobe手動同步到內核,輸入幾次后還沒同步,就重啟把

如果硬件存儲設備沒有進行格式化,則Linux系統無法得知這么在其上寫入數據。因此,在對存儲設備進行分區后還需進行格式化。

在Linux系統中用于格式化操作的命令是:mkfs

格式:mkfs.文件類型名稱? 硬盤文件

簡單掛載一下

du命令

既然存儲設備已經順利掛載,接下來就可嘗試通過掛載點目錄向存儲設備中寫入文件了

在寫入文件之前,先介紹用于查看文件數據占用量的du命令

格式為:du 【選項】【文件】

簡單來說就是查看硬盤空間的情況

我們先cp一些文件放入掛載目錄

命令行掛載后,設備文件會在下一次重啟的時候失效。如果想讓這個設備文件的掛載永久有效,則需要把掛載的信息寫入配置文件

?添加交換分區

SWAP(交換)分區是一種通過在硬盤中預先劃分一定發空間,然后將把內存中暫時不常用的數據臨時存放在硬盤中,以便騰出物理內存空間讓更活躍的程序服務來使用技術,其設計目的是為了解決真實物理內存不足的情況。但由于交換分區畢竟是通過硬盤設備讀寫數據的,速度肯定要比物理內存慢,所以只有當真實物理內存耗盡后才會調用交換分區的資源。

交換分區的建立與掛載并使用存儲設備的過程很像

在生產環境中:交換分區的大小一般是真實物理內存的1.5-2倍

使用SWAP分區專用的格式化命令? mkswap ,對新建的主分區進行格式化操作:

使用swapon命令把準備好的SWAP分區設備正式掛載到系統中。

我們可用free -m命令查看交換分區的大小

?為了能夠讓新的交換分區設備在重啟后依然生效,需要按照下面的格式將相關的信息寫入到配置文件中去,記得保存:

?磁盤容量配額

硬件資源是固定的有限的,如果某些用戶一直在Linux系統上創建文件或者存放電影,硬盤空間總有一天會被占滿。針對這種情況。root管理員就需要使用磁盤容量配額服務來限制某個用戶或者某個用戶組針對特定文件夾可使用的最大硬盤空間或最大文件個數,一旦達到這個最大值就不再允許繼續使用。

可用使用quota命令來進行管理,從而限制用戶的硬盤可用容量或所能創建的最大文件個數。

quora命令有兩種功能:

①軟限制:當達到軟限制時會提示用戶,但仍允許用戶在限定的額度內繼續使用

②硬限制:當達到硬限制時會提示用戶,且強制終止用戶的操作

reboot之后

?接下來創建一個用于檢查quota磁盤容量配額效果的用戶tom,并針對/boot目錄增加其他人的寫權限,保證用戶能夠正常寫入數據:

xfs-quota命令

xfs-quota命令是專門針對XFS文件系統來管理quota磁盤容量配額服務而設計的命令

格式: xfs-quota 【參數】配額 文件系統

當配置好上述的各種軟硬限制后,嘗試切換到這個普通用戶,然后分別嘗試創建一個體積為5MB和8MB的文件,可發現,在創建8MB的文件時受到了限制:

edquota命令

edquota命令用于編輯用戶的quota配額限制

格式為:edquota 【參數】【用戶】

在用戶設置了quota磁盤配額限制后,可用使用edquota命令按需修改限額的數值

其中

-u 參數表示要針對那個用戶

-g 參數表示要針對那個用戶組

edquota命令會調用Vi或Vim編輯器來讓root管理員修改要限制的具體細節

下面我們把tom的限額從5提到8MB

?軟硬方式鏈接

鏈接就像windows系統中的快捷方式一樣

①硬鏈接:硬鏈接文件與原始文件其實是同一個文件,只是名字不一樣。我們每添加一個硬鏈接,該文件的inode連接數就會加1,而且只有當該文件inode連接數為0時,才能徹底刪除它。

②軟鏈接(符號鏈接):僅僅包含所鏈接文件的路徑名,因此能鏈接目錄。也可用跨越文件系統進行鏈接,但是,當原始文件刪除后,鏈接文件也將失效。這點和windows上的快捷方式一樣的性質。

ln命令

ln命令用于創建鏈接文件

格式為:ln 【選項】目標

Usage: ln [OPTION]... [-T] TARGET LINK_NAMEor:  ln [OPTION]... TARGETor:  ln [OPTION]... TARGET... DIRECTORYor:  ln [OPTION]... -t DIRECTORY TARGET...
In the 1st form, create a link to TARGET with the name LINK_NAME.
In the 2nd form, create a link to TARGET in the current directory.
In the 3rd and 4th forms, create links to each TARGET in DIRECTORY.
Create hard links by default, symbolic links with --symbolic.
By default, each destination (name of new link) should not already exist.
When creating hard links, each TARGET must exist.  Symbolic links
can hold arbitrary text; if later resolved, a relative link is
interpreted in relation to its parent directory.必選參數對長短選項同時適用。--backup[=CONTROL]	為每個已存在的目標文件創建備份文件-b				類似--backup,但不接受任何參數-d, -F, --directory		創建指向目錄的硬鏈接(只適用于超級用戶)-f, --force			強行刪除任何已存在的目標文件-i, --interactive           prompt whether to remove destinations-L, --logical               dereference TARGETs that are symbolic links-n, --no-dereference        treat LINK_NAME as a normal file ifit is a symbolic link to a directory-P, --physical              make hard links directly to symbolic links-r, --relative              create symbolic links relative to link location-s, --symbolic              make symbolic links instead of hard links-S, --suffix=SUFFIX         override the usual backup suffix-t, --target-directory=DIRECTORY  specify the DIRECTORY in which to createthe links-T, --no-target-directory   treat LINK_NAME as a normal file always-v, --verbose               print name of each linked file--help		顯示此幫助信息并退出--version		顯示版本信息并退出The backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
The version control method may be selected via the --backup option or through
the VERSION_CONTROL environment variable.  Here are the values:none, off       不進行備份(即使使用了--backup 選項)numbered, t     備份文件加上數字進行排序existing, nil   若有數字的備份文件已經存在則使用數字,否則使用普通方式備份simple, never   永遠使用普通方式備份Using -s ignores -L and -P.  Otherwise, the last option specified controls
behavior when a TARGET is a symbolic link, defaulting to -P.GNU coreutils 在線幫助:<https://www.gnu.org/software/coreutils/>
請向 <http://translationproject.org/team/zh_CN.html> 報告 ln 的翻譯錯誤
完整文檔請見:<https://www.gnu.org/software/coreutils/ln>

?

?

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534314.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534314.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534314.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

軟件工程(需求分析)

需求分析 為了開發出真正滿足用戶需求的軟件產品&#xff0c;首先必須知道用戶的需求。對軟件需求的深人理解是軟件開發工作獲得成功的前提條件&#xff0c;不論人們把設計和編碼工作做得如何出色,不能真正滿足用戶需求的程序只會令用戶失望.給開發者帶來煩惱。 需求分析是軟…

TensorFlow構建二維數據擬合模型(1)

知識圖譜 TensorFlow運行機制 TensorFlow是基于計算圖的深度學習編程模型 Tensor表示張量&#xff0c;其實質上是某種類型的多維數組 Flow表示基于數據流圖的計算&#xff0c;實質上是張量在不同節點間的轉化過程。 在TensorFlow中&#xff0c;計算圖中的節點稱為OP&…

Qt圖形界面編程入門(標簽與槽機制習題分享)

標簽對象初始顯示0&#xff0c;每次單擊標簽對象后&#xff0c;其顯示內容就加1&#xff0c;依次變為1、2、3等。 #ifndef DIALOG_H #define DIALOG_H#include <QDialog> #include <QPushButton> //包含命令按鈕類 #include "MyLabel.h"class Dialo…

js中執行到一個if就停止的代碼_Node 中如何引入一個模塊及其細節

在 node 環境中&#xff0c;有兩個內置的全局變量無需引入即可直接使用&#xff0c;并且無處不見&#xff0c;它們構成了 nodejs 的模塊體系: module 與 require。以下是一個簡單的示例const fs require(fs)const add (x, y) > x ymodule.exports add雖然它們在平常使用…

二級MS Office公共基礎知識錯題本(1)

1&#xff0c;順序程序具有順序性、封閉性和可再現性的特點&#xff0c;不具備并發性 2&#xff0c;為了降低算法的空間復雜度&#xff0c;主要應減少輸入數據所占的存儲空間以及額外空間&#xff0c;通常采用壓編存儲技術。 3&#xff0c;樹的總的結點數為樹中所有結點的度數…

c++ file* 句柄泄漏_C++核心指南:P.8 勿泄漏任務資源

P.8: 勿泄漏任務資源原因隨著時間的推移&#xff0c;即使是資源的緩慢增長也會耗盡這些資源的可用性&#xff0c;這對于長時間運行的程序特別重要&#xff0c;但也是負責任的編程行為的基本部分。糟糕的例子void f(char* name){ FILE* input fopen(name, "r"); // .…

數據規范化、實體-聯系圖、狀態轉換圖、層次方框圖、Warnier圖、IPO圖及驗證軟件需求

數據規范化 軟件系統經常使用各種長期保存的信息&#xff0c;這些信息通常以一定方式組織并存儲在數據庫或文件中&#xff0c;為減少數據冗余&#xff0c;避免出現插入異常或刪除異常&#xff0c;簡化修改數據的過程,通常需要把數據結構規范化。 通常用“范式(normal forms)”…

python和c混合編程 gil,如何在python中使用C擴展來解決GIL

I want to run a cpu intensive program in Python across multiple cores and am trying to figure out how to write C extensions to do this. Are there any code samples or tutorials on this?解決方案You can already break a Python program into multiple processes.…

Linux基礎(iptables與firewalld防火墻)

iptables 在早期的Linux系統中&#xff0c;默認使用的是iptables防火墻管理服務來配置防火墻。盡管新型的fierwalld防火墻管理服務已經被投入使用多年&#xff0c;但是大量的企業在生產環境中依然出于各種原因而繼續使用iptables。 策略與規則鏈 防火墻會從上至下的順序來讀…

虛擬跳線軟件干什么用的_瘋狂刷單!用違法軟件生成虛擬手機號,“騎手”半年“刷單”牟利60余萬,百米內竟有萬筆訂單 | 申晨間...

來源&#xff1a;新聞晨報 記者&#xff1a;吳藝璇借助違法軟件生成虛擬手機號碼&#xff0c;利用平臺審核漏洞大量注冊用戶&#xff0c;大量“刷單”騙取平臺的返現和購物補貼&#xff0c;半年內瘋狂刷1.8萬余單&#xff0c;累計牟利60余萬元。近日&#xff0c;在市公安局刑偵…

軟件工程(總體設計①設計過程)

經過需求分析&#xff08;https://blog.csdn.net/weixin_45626468/article/details/115324885&#xff09;階段的工作&#xff0c;系統必選“做什么”已經清楚了&#xff0c;現在是決定“怎樣做”的時候了。 總體設計的基本目的就是回答“概況地說&#xff0c;系統應該如何實現…

ygo游戲王卡組_ACG大科普(7)游戲王

大家是否在小時候接觸過一種卡片類似這種的 這就是今天的主角游戲王。 背景 1996年&#xff0c;《游戲王》漫畫開始在集英社《周刊少年Jump》連載。 1998年&#xff0c;Bandai推出以《游戲王》原作中登場的集換卡牌游戲“M&W”為題材的集換卡牌。 采用Bandai的卡片自動販賣…

Qt圖形界面編程入門(基本窗口及控件)

基本窗口類QWidget QWidget是所有窗體部件的基類&#xff0c;例如對話框類&#xff0c;主窗體類&#xff0c;以及其他諸如按鈕&#xff0c;編輯框&#xff0c;標簽等等都是由QWidget派生得到&#xff0c;QWidget擁有的方法往往都可以在其他子類中使用。 窗體的幾何尺寸分為包…

背景se_盤點那些RPG手游中主角的背景故事,越悲情越強大

RPG游戲一直以代入感超強的游戲方式來吸引玩家&#xff0c;用超越現實的藝術手段把玩家帶入到虛擬的游戲世界&#xff0c;讓玩家擔任不同的社會角色來去經歷不同的虛擬故事&#xff0c;體驗多種人生經歷&#xff0c;想要扮演任何角色都是有可能的。當然在RPG游戲中也有好壞之分…

TensorFlow構建二維數據擬合模型(2)

變量的定義和使用 變量的定義與初始化 TensorFlow中&#xff0c;變量是一種特殊的張量&#xff0c;其值可以是一個任意類型的形狀的張量。 與其他張量不同&#xff0c;變量存在于單個回話調用的上下文之外&#xff0c;主要作用是保存和更新模型中的參數。 聲明變量通常使用…

c++用牛頓法開多次根_望遠鏡的歷史之三:大神出世,改變望遠鏡歷史的竟然是牛頓...

上次我們說到格里高利望遠鏡有點畫蛇添足&#xff0c;那么格里高利望遠鏡添了什么呢&#xff1f;格里高利望遠鏡格里高利望遠鏡觀測的圖像都是正立的&#xff0c;這就意味著要采用多個凹面反射鏡&#xff0c;而當時凹面反射鏡磨制不易&#xff0c;無論是多大的科學家都要親自動…

python浮點型精度損失問題_解決float型數據精度損失問題

問題&#xff1a;浮點型數據存儲方式會導致數據精度損失&#xff0c;增大計算誤差。float fval 0.45;  // 單步調試發現其真實值為&#xff1a;0.449999988double dval 0.45; // 單步調試發現其真實值為&#xff1a;0.45000000000000001當很多個這樣的單精度浮點型數據進行…

Linux配置本地yum源(RHEL8)

https://www.cnblogs.com/itwangqiang/p/13391401.html

如何把照片正面變成反面_各國簽證照片要求大全 (含模板)

對于不是很熟悉簽證的小伙伴來說&#xff0c;面對全球那么多國家的簽證而且每張簽證照片的規格不同為此我們為您整理了各國簽證照片要求大全 東南亞國家的簽證照要求基本相同&#xff0c;就以泰國為例&#xff0c;告訴大家簽證照的注意事項。“泰國&#xff0c;新加坡&#xff…

TensorFlow實驗(3)

模型的保存與恢復 我們來簡單實現一下模型的保存與恢復 訓練完TensorFlow模型后&#xff0c;可將其保存為文件&#xff0c;以便于預測新數據時直接加載使用。 TensorFlow模型主要包含網絡的設計或者圖以及已經訓練好的網絡參數的值。 TensorFlow提供的tf.train.Saver()函數…