# Linux學習筆記?
## 1 Linux入門
### 1.1 概述
?Linux內核最初只是芬蘭人在赫爾辛基大學上學時處于個人愛好而編寫的。
?Linux是一套免費使用和自 由傳播的類Unix操作系統,是一個基于POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。Linux能運行主要的UNIX工具軟件、應用程序和網絡協議。它支持32位和64位硬件。Linux繼承 了Unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。
?目前市面上較指明的發行版有:Ubunta、RedHat、CentOS,Debain、Fedora、SuSE、OpenSUSE。
### 1.2 Linux和Windows區別
#### 1.3 CentOs下載地址
官方鏡像: [The CentOS Project](https://www.centos.org/)
搜狐鏡像:https://mirrors.sohu.com/centos/7/isos/
## 2 VM與Linux的安裝
具體安裝步驟參考其他文章
## 3 Linux文件與目錄
### 3.1 Linux文件
Linux系統中一切皆文件
### 3.2 Linux目錄結構
|目錄|含義
|------
|/bin|Binary的縮寫,用來存二進制可執行文件,并且比較特殊的是/bin存放的是所有一般用戶都能使用的可執行文件,如:cat、chmod、mv、mkdir、cd等常用指令
|/sbin|Super User的意思,存放一些只有root用戶才有權限執行的可執行文件,如init,ip,mount等命令
|/boot|主要存放開機時用到的引導文件,如linux內核文件和開機菜單與開機所有需要的配置文件
|/dev|device,任何設備都以文件的形式存放再這個目錄中。例如硬盤、鍵盤、鼠標、光驅等各種設備文件。只要通過訪問該目錄的某個文件就相當于訪問了對應的設備
|/etc|配置文件、啟動腳本等(etc)包含所有程序所需的配置文件以及系統的配置文件,如用戶的賬號密碼文件,各個服務的起始文件等。也包含了用于啟動/停止單個程序的啟動和關閉shell腳本。一般來說,該目錄下的文件屬性是可以讓用戶查閱,但只有root管理員有權利修改
|/home|系統默認的用戶的家目錄,每當新建一個用戶系統都會在這個目錄下創建以該用戶名為名稱的目錄作為該用戶的家目錄。
|/lib|library,存放著系統開機時所需的函數庫以及/bin和/sbin目錄下的命令會調用的函數庫
|/lib64|存放相對于/lib中支持64位格式的函數庫
|/media|存放可移除的媒體設備、如光盤,DVD等
|/mnt|mount,臨時掛載的設備文件,臨時安裝目錄,系統管理員可以掛載文件系統。時系統管理員臨時安裝文件的系統安裝點。
|/opt|optional,可選的軟件包,即第三方文件軟件。我們可以將除了系統自帶軟件之外的其他軟件安裝到這個目錄。
|/proc|特殊的動態目錄,用以 維護系統的信息和狀態,包括當前運行中進程(processes)信息。包含系統進程的相關信息,是一個虛擬的文件系統,包含有關正在運行的進程的信息,系統資源以文本信息形式存在。
|/root|系統管理員root的主目錄
|/run|最近一次開機后所產生的各項信息,如當前的用戶和正在運行中的守護進程等。
|/srv|service,存放一些服務啟動后所需的數據
|/sys|system,與/proc類似也是虛擬文件系統,存放系統核心與硬件相關信息管理設備文件。不占用硬件容量。
|/tmp|temporary, 存放系統運行過程中使用的一些臨時文件,可以被所有就用戶訪問,系統重啟時會清空該目錄。
|/usr|包含絕大部分所有用戶(users)都能訪問的應用程序和文件包含二進制文件,庫文件。文檔和二級程序的源代碼。
|/var|經常變化的(variable)文件,諸如日志或數據庫等代表變量文件。在這個目錄下可以找到內容可能增長的文件
## 4.VI/VIM 編輯器
### 4.1 VIM是什么
?VI是Unix操作系統和類Unix操作系統中最通用的文本編輯器。
?VIM編輯器是從V1從發展出來的一個性能更強大的文本編輯器。可以主動的以文字顏色辨別語法的正確性,方便程序設計。VIM與VI編輯器完全兼容。
### 4.2 模式轉換
vim的界面分為一般模式(快速編輯、光標跳轉)、插入模式(編輯文本)、指令模式(搜索、替換)
### 4.3 一般模式
|語法|功能描述
|------
|yy|復制光標當前一行
|y數字y|復制一段(從第幾行到第幾行)
|y (shift + 4)|復制當前光標到結尾的字符串
|p|箭頭移動到目的行粘貼
|u|撤銷上一步
|dd|刪除光標當前行
|d數字d|刪除光標(含)后多少行
|x|剪切一個字母,相當于del
|X|剪切一個字母,相當于Backspace
|w|切換到下一個詞
|e|快速到下一個詞尾
|d|跳轉到上一個詞
|yw|復制一個詞
|dw|刪除一個詞
|shift+6|移動到行頭
|shift+4|移動到行尾
|gg|移動到頁頭
|G/L|移動到頁尾
|數字+shift+g|移動到目標行
|b|跳轉到上一個詞
|數字b|跳轉到上n個詞
**顯示行號** :set nu
不顯示行號 :set nonu
### 4.4 插入模式
?在一般模式中可以進行刪除、復制、粘貼等的動作,但是卻無法編輯文件內容的!要 等到你按下『i, I, o, O, a, A』等任何一個字母之后才會進入編輯模式。
?注意了!通常在Linux中,按下這些按鍵時,在畫面的左下方會出現『INSERT或 REPLACE』的字樣,此時才可以進行編輯。而如果要回到一般模式時, 則必須要按下 『Esc』這個按鍵即可退出編輯模式。
**1)進入編輯模式**
|按鈕|功能
|------
|i|當前光標前
|a|當前光標后
|o|當前光標行的下一行
|I|光標所在行最前
|A|光標所在行租后
|O|當前光標行的上一行
2)退出編輯
?按【ESC】鍵退出編輯弄濕,之后所在的模式為一般模式
### 4.5 指令模式
?在一般模式當中,輸入【`:/?`】3個中的任何一個按鈕,就可以將光標移動到最底下的一行
?在這個模式當中,可以提供【搜索】資料的動作,讀取、淳樸、大量取代字符、離開vi、顯示行號等動作是在此模式中達成的。
#### 1)基本語法
|命令|功能
|------
|:w|保存
|:q|退出
|:wq|保存并退出
|:q!|不保存強制退出
|/要查找的詞|n查找下一個,N往上查找
|:noh|取消高亮顯示
|:set nu|顯示行號
|:set nonu|關閉顯示行號
|`:s /old/new `|替換當前行匹配到第一個old為new
|`:s /lod/new/g`|替換當前行匹配到所有old為new
|:%s/old/new|替換文檔中每一行匹配到的第一個old為new
|:%s/old/new/g|替換文檔中的所有的old為new 比較常用
<img src="https://i-blog.csdnimg.cn/blog_migrate/6625ee204a27b95b2fe45f52500d6742.png" alt="image-20220512234008290">
### 4.6 模式之間轉換
<img src="https://i-blog.csdnimg.cn/blog_migrate/303a1101fda7c2a64975e2cfb29232c2.png" alt="image-20220512160155965">
## 5. 網絡配置和系統管理操作
### 5.1 查看網絡IP和網關
#### 1)查看虛擬網絡編輯
windows查看ip
```
ipconfig
```
#### 2)虛擬機網卡配置
##### 橋接模式
?虛擬機直接連接外部物理網絡的模式,主機起到了網橋的作用。這個模式下直接訪問外部網絡,并且對外部網絡是可見的。(同一個路由器內都可見,占用局域網的ip)
##### NAT模式(Network Address Translation)
?虛擬機和主機構建一個專用網絡,并通過虛擬網絡地址轉換(NAT)設備對IP進行轉換。虛擬機通過該共享IP可以訪問外部網絡,但外部網絡無法訪問虛擬機。
##### 僅主機模式
?虛擬機只與主機共享一個專用網絡,與外部網絡無法通信。
#### 3)查看網關
```
ifconfig
```
### 5.2 配置網絡ip
修改為靜態IP
```
?cd /etc/sysconfig/network-scripts
?vim ifcfg-#按tab鍵補充
```
> ?
?說明:`ifcfg-`前綴的文件的可能會有好幾種情況,例如:`ifcfg-eth0`、`ifcfg-ens33`、`ifcfg-ens192`?
```
BOOTPROTO="dhcp"
修改為?
BOOTPROTO="static"
#IP地址
IPADDR=192.162.202.100
# 網關
GATEWAY=192.168.202.2
# 域名解析器
DBS1=192.168.202.2
```
重啟網絡服務
```
server network restart
```
<img src="https://i-blog.csdnimg.cn/blog_migrate/48bc0cc29c4050bbf567586016b16f2c.png" alt="image-20220513234505448">
### 5.3 配置主機名
#### 5.3.1 修改主機名稱
```
# 查看主機名
hostname
vim /ect/hostname ?
修改里面的值
# 重啟服務器
# 查看主機相關信息
hostnamectl
# 修改主機名為lys
hostnamectl set-hostname lys
```
#### 5.3.2 修改hosts映射文件
1)修改linux的主機映射文件(hosts文件)
?說明:后續在虛擬機多的情況時,配置時通暢會采用主機名的方式配置
```
vim /etc/hosts
```
windows
```
C:\Windows\System32\drivers\etc\hosts
```
## 6. 遠程登錄
windows 命令行連接
```
ssh root@11.212.33.44?
# 或
ssh zhangsan@11.212.33.44 -p Port
```
或者使用Xshell
## 7. 系統管理
### 7.1 Linux中的進程和服務
?計算機中,一個正在執行的程序或命令,被叫做"進程"(process)
?啟動之后一直存在、常駐內存的進程,一般被稱做“服務”(service)
### 7.2 service 服務管理 (CentOS 6 版本了解)
```
ls /usr/sbin/ | grep service
```
1) 基本語法
?service 服務名 start | stop | restart | status
2)經驗技巧
?查看服務的方法:`ls /etc/init.d/`
3)案例實操
(1)查看網絡服務的狀態
```
service network status
```
(2)停止網絡服務
```
service network stop
```
(3)啟動網絡服務
```
service network start
```
(4)重啟網絡服務
```
service network restart
```
### 7.3 chkconfig 設置后臺服務的自啟配置(CentOS 6版本)
1) 基本語法
```
chkconfig (功能描述:查看所有服務器自啟配置)?
chkconfig 服務名 off (功能描述:關掉指定服務的自動啟動)?
chkconfig 服務名 on (功能描述:開啟指定服務的自動啟動)?
chkconfig 服務名 --list (功能描述:查看服務開機啟動狀態)
```
2)案例實操
(1)開啟/關閉 network(網絡)服務的自動啟動
```
chkconfig network on
chkconfig network off
```
(2)開啟/關閉 network 服務指定級別的自動啟動
```
chkconfig --level 指定級別 network on
chkconfig --level 指定級別 network off
```
### 7.4 systemctl CentOS 7 版本-重點掌握)
1) 基本語法
?systemctl start | stop | restart | status 服務名
2) 經驗技巧
?查看服務的方法:`ls - al /usr/lib/systemd/system`
3)案例實操
(1)查看防火墻服務的狀態
```
systemctl status firewalld
```
(2)停止防火墻服務
```
systemctl stop firewalld
```
(3)啟動防火墻服務
```
systemctl start firewalld
```
(4)重啟防火墻服務
```
systemctl restart firewalld
```
### 7.5 systemctl設置后臺服務的自啟配置
1)基本語法
systemctl list-unit-files (功能描述:查看服務開機啟動狀態)
systemctl disable service_name (功能描述:關掉指定服務的自動啟動)
systemctl enable service_name (功能描述:開啟指定服務的自動啟動)
2)案例實操
(1)開啟/關閉iptables(防火墻)服務的自動啟動
```
systemctl enable firewalld.service
systemctl disable firewalld.service
```
### 7.6 系統運行級別
#### 1. linux運行級別
Linux系統有7種運行級別(runlevel) 常用的級別3和5
- 0:系統停機狀態,系統默認運行級別不能設為0,否則不能正常啟動- 1:單用戶工作狀態,root權限,用于系統維護,禁止遠程登錄- 2:多用戶狀態(沒有NFS),不支持網絡- 3:安全的多用戶狀態(有NFS),登錄后進入控制臺命令行模式- 4:系統未使用,保留- 5:X11控制臺,登陸后進入圖形GUI模式- 6:系統正常關閉并重啟,默認運行級別不能設為6,否則不能正常啟動
#### 2. CentOS7的運行級別簡化為:
multi-user.target 等價于原運行級別3(多用戶有網,無圖形界面)
graphical.target 等價于原運行級別5(多用戶有網,有圖形界面)
#### 3. 查看當前運行級別:
systemctl get-default
vim /etc/inittab
#### 4. 修改當前運行級別:
system set-default TARGET.target (這里的TARGET取 multi-user 或者graphical)
### 7.7 關閉防火墻
#### 1. 臨時關閉防火墻
```
# 查看防火墻狀態
systemctl status firewalld
systemctl stop firewalld
```
#### 2. 開機啟動時關閉防火墻
```
# 查看防火墻開機啟動狀態
systemctl enable firewalld.service
# 設置開機時關閉防火墻
systemctl disable firewalld.service
```
查看服務是否開機自啟動
```
systemctl list-unit-files
```
### 7.8 關機重啟命令
```
# 一分鐘后關機
shutdown
# 三分鐘后關機
shutdown 3
# 某個時間關機
shutdown 15:00
# 取消關機
shutdown -c?
# 立刻關機
shutdown now
```
<li> 基本語法?
? <ol>1. sync 將數據由內存同步到硬盤中1. halt 停機,關閉系統,但不斷電1. poweroff 關機,斷電1. reboot 重啟,等同于 shutdown-r now1. shutdown 【選項】 時間
經驗技巧
> ?
?Linux系統中為了提高磁盤的讀寫效率,對磁盤采取了 “預讀遲寫’'操作方式。當用戶 保存文件時,Linux核心并不一定立即將保存數據寫入物理磁盤中,而是將數據保存在緩 沖區中,等緩沖區滿時再寫入磁盤,這種方式可以極大的提高磁盤寫入數據的效率。但是, 也帶來了安全隱患,如果數據還未寫入磁盤時,系統掉電或者其他嚴重問題出現,則將導 致數據丟失。使用sync指令可以立即將緩沖區的數據寫入磁盤。?
1. ?案例實操 1. ?將數據由內存同步到硬盤中?
```
sync
```
1. 重啟
```
reboot
```
1. 停機(不斷電)
```
halt
```
1. 計算機在1分鐘后關機,并且會顯示在登錄用戶的當前屏幕中
```
shutdown -h 1
```
1. 立馬關機
```
shutdown -h now
```
1. 系統立馬重啟(等同于reboot)
```
shutdown -r now
```
## 8 常用基本命令
?Shell可以看做是一個命令解釋器,為我們提供了交互式的文本控制臺界面,我們可以通過終端控制臺來輸入命令,由shell進行解釋并最終交給內核執行
### 8.1 幫助命令
#### 8.1.1 man 獲取幫助信息
<li> 基本語法 man [命令或配置文件] 獲取幫助信息 <pre><code class="prism language-bash">man -f cd
cd (1) ? ? ? ? ? ? ? - bash built-in commands, see bash(1)
cd (n) ? ? ? ? ? ? ? - Change working directory
[root@lys ~]# man 1 cd # 1為上面的括號顯示
</code></pre> </li>1. ?顯示說明?
|信息|功能
|------
|NAME|命令的名稱和單行描述
|SYNOPSIS|怎樣使用命令
|DESCRIPTION|命令功能的深入討論
|EXAMPLES|怎樣使用命令的例子
|SEE ALSO|相關主題(通常是手冊頁)
#### 8.1.2 help 獲取shell內置命令的幫助信息
?一部門基礎功能的系統命令是直接內嵌在shell中,系統加載啟動之后會隨著shell一起加載,常駐系統內存中。這部門命令被稱為“內置(built-in)命令”;相應的其他命令被稱為“外部命令”
判斷是否內置命令
```
type cd
cd is a shell builtin
```
1. ?基本語法 help 命令 獲得shell內置命令的幫助信息 <li> 案例實操?
? 1. 查看cd命令的幫助信息 `help cd` </li>
#### 8.1.3 常用快捷鍵
|常用快捷鍵|功能
|------
|ctrl + c|停止進程
|ctrl + l|清屏,等同于clear;徹底清屏是: reset
|tab|提示(更重要的是可以防止敲錯)
|上下鍵|查找執行過的命令
### 8.2 文件目錄類
#### 8.2.1 pwd顯示當前工作目錄的絕對路徑
pwd: print working directory 打印工作目錄
##### 1. 基本語法
?pwd 顯示當前工作目錄的絕對路徑
#### 8.2.2 ls 列出目錄的內容
ls: list 列出目錄內容
1)基本語法
?ls [選項] [文件或目錄]
1. 選項說明
|選項|功能
|------
|-a|全部的文件,連同隱藏文檔(開頭為.的文件) 一起
|-l|長數據串列出,包含文件的屬性與權限等等數據(常用)等價于“ll”
|-lh|文件大小比較好看
3)顯示說明
?每行列出的信息依次是:文件類型與權限 鏈接戶 文件屬性 文件大小用byte來標識 建立或最近修改的時間 名字
#### 8.2.3 cd 切換目錄
cd Change Directory 切換目錄
|參數|功能
|------
|cd 絕對路徑|切換路徑
|cd 相對路徑|切換路徑
|cd ~ 或 cd|回到自己的家目錄
|cd -|回到上一次所在目錄
|cd …|回到當前沐浴露的上一級目錄
|cd -P|跳轉到實際物理路徑,而非快捷方式路徑
#### 8.2.4 mkdir創建一個新的目錄
```
# 創建目錄
mkdir a?
# 一次創建多級
mkdir a a/b a/b/c
mkdir -p a/b/c
```
#### 8.2.5 rmdir刪除一個空的目錄
```
# 刪除目錄
rmdir a
# 刪除多級目錄
rmdir a/b/c
```
#### 8.2.6 創建空文件
1) 基本語法
?touch 文件名稱
#### 8.2.7 cp復制文件或目錄
```
cp [選項] source dest
cp nginx.conf nginx.conf2
# 遞歸復制整個文件夾
cp -r logs logs2
# 不強制覆蓋使用 ?
\cp
# 查看別名
alias
```
#### 8.2.8 rm 刪除文件或目錄
rm [選項] deleteFile 遞歸刪除目錄中所有內從
|選項|功能
|------
|-r|遞歸刪除目錄中所有內容
|-f|強制執行刪除操作,而不提示用于進行確認
|-v|顯示指令的詳細執行過程
```
#刪除文件
rm test.txt
# 遞歸刪除
rm -r dir
# 強制刪除
rm -f dir
```
#### 8.2.9 mv 移動文件或目錄或重命名
mv oldNameFile newNameFile 重命名
mv /tmp/moveFile /targerFolder 移動文件
#### 8.2.10 cat 查看文件內容
cat [選項] 要查看的文件
cat -n 文件名 顯示所有行的行號,包括空行
#### 8.2.11 more 文件內容分屏查看器
?more指令是一個基于VI編輯器的文本過濾器,它以全屏幕的方式按頁顯示文本文件的內容,more指令中內置若干快捷鍵
|操作|功能說
|------
|空白鍵(space)|代表向下翻一頁
|Enter|代表向下翻一行
|q|立刻離開 more
|ctrl + F|向下滾動一屏
|ctrl + B|返回上一屏
|=|輸出當前行的行號
|:f|輸出文件名和當前行行號
#### 8.2.12 less 分屏顯示文件內容 (查看大文件)
?less指令永愛分屏查看文件內容,它的功能與more指令類似,但是比more指令更加強大,支持各種顯示終端。less指令在顯示文件內容時,不是一次將整個文件加載之后才顯示,而是根據顯示需要加載內容,對于顯示大型文件具有較高的效率。
```
less 文件名
```
|操作|功能說明
|------
|空白鍵|向下翻動一頁
|pagedown|向下翻動一頁
|pageup|向上翻動一頁
|/字符串|向下搜尋【字符串】的功能:n:向下查找 N:向上查找
|?字符串|向上搜尋【字符串】的功能:n 向上查找 N 向下查找
|q|離開less這個程序
#### 8.2.13 echo
?echo 輸出內容到控制臺
?echo 【選項】【輸出內容】
?-e: 支持反斜線控制的字符轉換
|控制字符|作業
|------
|\|輸出\本身
|\n|換行符
|\t|制表符,也就是Tab鍵
查看系統環境變量
```
echo $ + Tab鍵
```
#### 8.2.14 head 顯示文件頭部內容
head用于顯示文件的開頭部門內容,默認情況下 head指令顯示文件的前10行內容。
1)基本語法
?head 文件名 查看文件頭10行內容
?head -n 5 文件 查看文件頭5行內容
#### 8.2.15 tail 輸出文件尾部
tail -n 5 文件名
tail -f 文件
- ?按Ctrl + S 可以暫停監聽 - ?按Ctrl + Q 可以繼續監聽?
查看文件索引
ls -i web.log
#### 8.2.16 輸出重定向和 >> 追加
- ls -l > a.txt (功能描述:列表的內容寫入文件 a.txt 中(**覆蓋寫**))- ls -al >> aa.txt (功能描述:列表的內容**追加**到文件 aa.txt 的末尾)- cat 文件 1 > 文件 2 (功能描述:將文件 1 的內容覆蓋到文件 2)- echo “內容” >> 文件
#### 8.2.17 ln 軟連接
?軟連接(link)也稱為符號鏈接,類似于windows里的快捷方式,有自己的數據塊,主要存放了連接其他文件的路徑
創建軟連接
```
[root@lys logs]# ln -s web.log web
[root@lys logs]# ll
total 7988
-rw-r--r-- 1 root root ?115498 May 13 11:04 gateway.log
lrwxrwxrwx 1 root root ? ? ? 7 May 16 00:36 web -> web.log # 軟連接的前綴為l
-rw-r--r-- 1 root root 8048944 May 16 00:36 web.log
```
直接進入軟連接對應的地址
```
cd -P 軟連接?
```
刪除軟連接: rm -rf 軟連接名,而不是rm -rf 軟連接名/
**!!! 如果使用rm -rf 軟連接/ 刪除,會把軟連接對應的真實目錄下內容刪掉**
硬連接 (相當于)
```
ln 文件名 鏈接名
```
#### 8.2.18 history 查看已經執行過歷史命令
```
# 查看歷史命令
history
# 清空歷史命令
history -c
```
### 8.3 時間日期類
1. 基本語法
date [option] + [format]
date -s 日期時間 設置日期時間
date + “日期時間格式” 指定顯示時使用的日期
#### 8.3.1 date顯示當前時間
- date- date + %Y- date + %m- date + %d- date “+%Y-%m-%d %H:%m:%S”- date +%Y-%m-%d %H:%m:%S- date +%s 查看時間戳- date -d “-1 hours ago” 一個小時后的時間
設置系統當前時間
```
date -s "2022-06-19 20:52:22"
```
同步時間
```
ntpdate -u ntp1.aliyun.com
```
#### 8.3.4 cal查看日歷
cal [選項] 不加選項,顯示本月日歷
- cal -3 查看3個月的時間- cal -m 周一放在第一天- cal 2022 查看2022年日歷- cal 查看本年度日歷
### 8.4 用戶管理命令
```
# useradd 用戶名 添加新用戶
useradd lys
# 可以在home目錄看到創建的用戶文件夾
cd /home
# 創建時修改主文件夾名稱
useradd -d /home/dave david
# 設置密碼
passwd lys
# 查看用戶信息,可以驗證是否存在
id lys
uid=1005(lys) gid=1005(lys) groups=1005(lys)
# 查看系統用戶
less /etc/passwd
# 切換用戶 su: switch user
su lys
# 在lys用戶退出可回到root用戶
exit
# 查看當前用戶
who am i
# 刪除用戶
userdel lys
# 刪除用戶以及文件夾
userdel -r lys
# sudo設置普通用戶具有root權限
vim /etc/sudoers
# 添加
lys ? ? ALL=(ALL) ? ? ? ALL
# 使用超級管理員權限
sudo lys
# 將用戶添加入某個組
usermod -g 組名 用戶名
```
### 8.5 用戶組管理命令
?每個用戶都有一個用戶組,系統可以對一個用戶組中的所有用戶進行集中管理。不同Linux系統對用戶組的規則有所不同,
?如Linux下的用戶屬于與它同名的用戶組,這個用戶在和創建用戶時同時創建。
?用戶組的管理設計用戶組的添加、刪除和修改。組的增加、刪除和修改實際上就是對/etc/group文件的更新
```
# 新增組
groupadd 組名
# 修改組名
groupmod -n 新組名 舊組名
# 刪除用戶組
groupdel 組名
```
### 8.6 文件權限類
#### 7.6.1 文件屬性
?Linux系統是一種典型的多用戶系統,不同的用戶處于不同的地位,擁有不同的權限。為了保護系統的安全性,Linux系統對不同的用戶訪問同一文件(包括目錄文件)的權限做了不同的規定。在Linux中我們可以使用ll 或者ls -l來顯示一個文件的屬性以及文件所屬的用戶和組
1. 從左到有的10個字符標識
<img src="https://i-blog.csdnimg.cn/blog_migrate/d29ddbff29b4ed5c76c7b2c97be35def.png" alt="image-20220517231040047">
如果沒有權限,就會出現減號[-]而已,從左至右用0-9這些數字賴標師
(1)0首位表示類型
?在Linux中第一個字符代表這個文件是目錄、文件或鏈接文件
```
- ?- 代表文件
- ?d 代表目錄
- l ?鏈接文檔 (link file)
```
(2) 第1-3位確定屬主(該文件的所有者)擁有該文件的權限。User
(3)第4-6位確定屬組(所有者的同組用戶)擁有該文件的權限。Group
(4) 第7-9位確定其他用戶擁有該文件的權限 Other
1. ?rwx作用文件和目錄的不同解釋 作用到文件: 【r】: 代表可讀(read) 可以讀取,查看 【w】:代表可寫(write) 可以修改,但是不代表可以刪除該文件,刪除一個文件的前提條件是對該文件所在的目錄有寫權限,才能刪除該文件 【x】:代表可執行(execute) 可以被系統執行 作用到目錄: 【r】: 代表可讀(read) 可以讀取,ls查看目錄內容 【w】:代表可寫(write) 可以修改,目錄內創建+刪除+重命名目錄 【x】:代表可執行(execute) 可以進入該目錄?
文件基本屬性介紹
<img src="https://i-blog.csdnimg.cn/blog_migrate/6ad69e1cc12db4ee1bc5563a8d97aa97.png" alt="image-20220517232953855">
(1)如果查看到是文件:鏈接數指的是硬鏈接個數。
(2)如果查看的是文件夾:鏈接數指的是子文件夾個數。
#### 8.6.2 chmod 改變權限
示例
```
# 增加執行權限
chmod +x nginx.conf
# chmod [u|g|o|a] +-= {rwx} 文件或目錄
chmod u+x nginx.conf
chmod u-x nginx.conf
chmod u=x nginx.conf
chmod a+x nginx.conf
chmod a=rwx nginx.conf
# r=4 w=2 x=1
# 直接用數字修改權限
chmod 777 nginx.conf
# 修改整個文件夾的所有這,所屬組,其他用戶都具有可讀可寫可執行權限
chmod -R 777 nginx.conf
```
#### 8.6.3 chown 改變所有者
chown 改變所有者
chown [選項] [最終用戶] [文件或目錄]
```
chown lys a.txt
# 獲取遞歸改變文件所有者和所有組
chown -R lys dir
```
#### 8.6.4 charp 改變所有組
chgrp [最終用戶組] [文件或目錄]
chgrp root a.txt
### 8.7 搜索查找類
#### 8.7.1 find 查找文件或目錄
?find 指令將從指定目錄向下遞歸地遍歷其各個子目錄
find [搜索范圍] [選項]
|選項|功能
|------
|-name 查詢方式|按照指定文件名查找模式查找文件
|-user 用戶名|查找屬于指定用戶名所有文件
|-size 文件大小|按照指定文件大小查找文件,單位為 b-塊 (512字節) c- 字節 w-字 2字節 k - 千字節 M -兆字節 G-吉字節
```
# 按名稱查找
find -name nginx.conf
# 按路徑加名稱查找
find /root -name nginx.conf
# 按照后綴查找
# "*"匹配多個字段,"?"匹配單個字符
find -name "*.txt"
# 按用戶查找
find -user lys
# 按大小查找 +大于 -小于
find -size +1M
find -size +1M
```
#### 8.7.2 locate 快速定位文件路徑
?local指令利用事先簡歷的系統中所有文件名稱及路徑的locate數據庫事先快速定位給定的文件。Locate指令無需遍歷整個文件系統,查詢速度較快。為了保證查詢結果的準確度,管理員必須定期更新locate時時刻。
?locate 搜索文件
?由于locate指令基于數據庫進行查詢,所以第一此運行前,必須使用updatedb指令創建locate數據庫
```
updatedb
locate nginx.conf
# 查看指令所在位置
which ls
whereis locate
```
#### 8.7.3 grep過濾查找及"|"管道符
?管道符,|,表示將前一個命令的處理結果輸出傳遞給后面的命令處理
grep 選項 查找內容 源文件
- -n 顯示匹配行及行號
```
# 顯示location在nginx.conf的哪幾行
grep -n location nginx.conf?
# 查找某文件在該目錄的第一個
ls | grep -n test
```
wc 查看單詞數量
```
wc nginx.conf
136 ?302 3022 nginx.conf
行數 ?單詞數量 字節數
```
### 8.8 壓縮和壓縮類
#### 8.8.1 gzip/gunip 壓縮
gzip 文件
gunzip 文件.gz (解壓縮文件命令)
- 只能壓縮文件不能壓縮目錄- 不保留原來的文件- 同時多個文件會產生多個壓縮包
示例
```
gzip nginx.conf
gunzip nginx.conf
gzip nginx.conf nginx.conf2
```
#### 8.8.2 zip/unzip壓縮
?zip壓縮命令在window/linux都通用,可以壓縮目錄且保留源文件
zip [選項] XXX.zip 壓縮文件和目錄命令
unzip [選項] XXX.zip 解壓縮文件
- zip -r 壓縮目錄- unzip -d 指定解壓后文件的存放目錄
```
# 將logs壓縮成logs.zip
zip -r logs.zip logs/
# 解壓logs.zip
unzip -d ./tmp logs.zip?
```
#### 8.8.3 tar打包
tar [選項] XXX.tar.gz 打包目錄,壓縮后的文件格式 .tar.gz
|選項|功能
|------
|-c|產生.tar打包文件
|-v|顯示詳細信息
|-f|執行壓縮后的文件名
|-z|打包同時壓縮
|-x|解壓.tar文件
|-C|解壓到指定目錄
```
# 壓縮單個文件
tar -zcvf nginx.tar.gz nginx.conf
# 壓縮多個文件
tar -zcvf nginx.tar.gz nginx.conf nginx.conf2
# 解壓文件
mkdir tmp
tar -zxvf nginx.tar.gz -C tmp/
```
### 8.9 磁盤查看和分區類
新加磁盤:
**確定SCSI主機編號** 查看現有磁盤的SCSI主機路徑,例如:
```
ls -l /sys/block/sda ? # 輸出示例:host32
```
使用腳本批量掃描所有主機:
```
for host in /sys/class/scsi_host/host*/scan; do echo "- - -" > $host; done
```
方法2:?
### **通過設備路徑添加(適用于高級場景)**
若已知新磁盤的SCSI控制器號、通道號等參數,可通過以下命令直接添加設備:
```
echo "scsi add-single-device X Y Z U" > /proc/scsi/scsi
```
Linux磁盤管理常用三個命令為df、du和fdisk。
#### 8.9.1 du 查看文件和目錄占用的磁盤空間
?du: disk usage 磁盤占用情況
du 目錄/文件 顯示目錄下每個子目錄的磁盤使用情況
|選項|功能
|------
|-h|以人們較易預讀的G,M、k等格式自行顯示
|-a|不進查看子目錄大小,還要包括文件
|-c|顯示所有的文件和子目錄大小后,顯示總和
|-s|只顯示總和
|-max-depth=n|指定統計子目錄的深度為第nc層
tree 工具
示例
查看當前用戶主目錄占用的磁盤空間大小
```
du -sh # 查看當前路徑文件大小
# 子查看一級子目錄
du --max-depth=1 -ah
```
#### 8.9.2 df查看磁盤空間使用情況
df: disk free 空余磁盤
df 選項 列出文件系統的整體磁盤使用量,檢查文件系統的磁盤空間占用情況
df -h 以人們較閱讀的格式自行顯示
#### 8.9.3 lsblk 查看設備掛載情況
- ?lsblk - ?lsblk -f 查看詳細的設備故障情況,顯示文件系統信息?
#### 8.9.4 **mount/umount** 掛載/卸載
?對于Linux用戶來講,不論有幾個分區,分別分給哪一個目錄使用,它總歸就是一個根目錄、一個獨立且唯一的文件結構。
?Linux中每個分區都是用來組成整個文件系統的一部門,它在用一種叫掛載的處理方法,它整個文件系統中包含了一整套的文件和目錄,并將一個分區和一個目錄聯系起來,要載入的那個文件將它的存儲空間在這個目錄獲得,
一、`mount` 命令使用
1. 基本語法
```
mount [-t <文件系統類型>] [-o <選項>] <設備名> <掛載點>
```
核心參數
| 參數 ? ? ? ?| 說明 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
| ----------- | ------------------------------------------------------------ |
| `-t <類型>` | 指定文件系統類型(如 `ext4`, `vfat`, `nfs`, `iso9660`)。若省略,系統自動檢測 |
| `-o <選項>` | 掛載選項,支持多個逗號分隔值(如 `rw` 讀寫、`ro` 只讀、`noexec` 禁止執行) |
| `-a` ? ? ? ?| 掛載 `/etc/fstab` 中定義的所有設備 ? ? ? ? ? ? ? ? ? ? ? ? ? |
| `-r` ? ? ? ?| 以只讀模式掛載 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
設置開機自啟動
vi /etc/fstab
#### 8.9.5 fdisk分區
fdisk -l 查看磁盤分區詳情
fdisk 硬盤設備名 (顯示所有硬盤的分區列表)
(1)Linux 分區
Device:分區序列
Boot:引導
Start:從X磁柱開始
End:到Y磁柱結束
Blocks:容量
Id:分區類型ID
System:分區類型
(2)分區操作按鍵說明
m:顯示命令列表
p:顯示當前磁盤分區
n:新增分區
w:寫入分區信息并退出
q:不保存分區信息直接退出
### 8.10 進程管理類
?進程是正在執行的一個程序或命令,每一個進程都是一個運行的實體,都有自己的地址空間,并占用著一定的系統資源
#### 8.10.1 ps 查看當前系統進程狀態
?ps: process status 進程狀態
- ps aux | grep XXX 查看系統中帶XXX的進程- ps -ef | grep XXX 可以查看子父今后進程之間的關系
|選項|功能
|------
|a|列出帶有終端的所有用戶的進程
|x|列出當前用戶的所有今后進程,包括沒有終端的進程
|u|面向用戶友好的顯示風格
|-e|列出所有進程
|-u|列出某個用戶關聯的所有進程
|-f|顯示完整格式的進程列表
```
ls /usr/lib/systemd/system
# 帶d.service的為守護進程
ls /usr/lib/systemd/system | grep d.service
```
```
ps aux | less
ps -ef | less
```
##### 1. ps aux顯示信息說明
USER:該進程是由哪個用戶產生的
PID: 進程的ID號
%CPU: 該進程占用CPU資源的百分比,占用越高,進程越耗費資源;
%MEM: 該進程占用物理內存的百分比,占用越高,進程越耗費資源;
VSZ: 該進程占用虛擬內存的大小,單位KB;
RSS: 該進程占用實際物理內存的大小,單位KB;
TTY: 該進程是哪個終端中運行的。對于CentOS來說,tty1是圖形化終端,tty2-tty5是本地的字符界面終端。pts/0-255代表虛擬終端。
STAT: 進程狀態。常見的狀態有:
?R:運行狀態 S:睡眠狀態 T: 暫停狀態 Z:僵尸狀態 s:包含子進程 l: 多線程 +:前臺顯示 <:高優先級 N:低優先級
START: 該進程的啟動時間
TIME:該進程占用CPU的運算時間,注意不是系統時間
COMMAND:產生此進程的命令名
##### 2. ps -ef 顯示信息說明
UID: 用戶ID
PID: 進程ID
PPID: 父進程ID
C: CPU用于計算執行優先級的因子。數字越大,表明進程是CPU密集型運算,執行優先級會降低;數字越小,表明進程是I/O密級型運算,執行優先級會提高
STIME:進程啟動的時間
TIY:完成的終端名稱
TIME: CPU時間
CMD: 啟動進程所用的命令和參數
> ?
?如果是想查看進程CPU占用率和內存占用率,可以使用aux?
?如果想查看進程的父進程ID可以使用ef;?
#### 8.10.2 kill 終止進程
kill [選項] 進程號 通過進程號殺死進程
killall 進程名稱 通過進程名稱殺死進程,也支持通配符,這在系統因負載過大而變得很慢時很有用
|選項|功能
|------
|-9|表示強迫進程立即停止
kill -l 查看各個號碼代表的意思
#### 8.10.3 pstree 查看進程樹
pstree [選項]
|選項|功能
|------
|-p|顯示進程PID
|-u|顯示進程的所屬用戶
- pstree- pstree -p- pstree -u
#### 8.10.4 top實施監控系統進程狀態
top [選項]
|選項|功能
|------
|-d 秒數|指定top命令每隔幾秒更新。默認是3秒在top命令的交互模式當中可以執行
|-i|使top不顯示任何閑置或者僵死進程。
|-p|通過指定進程ID來僅僅監控某個進程的狀態
|操作|功能
|------
|P|以CPU使用率排序,默認就是此項
|M|以內存的使用率排序
|N|以PID排序
|q|退出top
|u|根據指定用戶進行過濾
|k|直接殺死
> ?
?top詳細內容,參考文章?
#### 8.10.5 netstat 顯示網絡狀態和端口占用信息
|選項|功能
|------
|-a|顯示所有正在監聽(listen)和未監聽的套接字(socket)
|-n|拒絕顯示別名,能顯示數字的全部轉化為數字
|-l|僅列出在監聽的服務狀態
|-p|表示顯示哪個進程在調用
- netstat -anp | grep 進程號 查看該進程網絡信息- netstat -nlp | grep 端口號 查看網絡端口號占用情況- netstat -atnp 查看連接
<font color="red">根據端口號查進程ID</font>
```
netstat -tlnp | grep <端口號>
# 示例
netstat -tlnp | grep 3658
tcp6 ? ? ? 0 ? ? ?0 127.0.0.1:3658 ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?20753/java ?
# 20753就為進程id
```
<font color="red">根據進程id查占用端口</font>
```
netstat -nlp | grep <pid> ?| grep LISTEN
# 示例
netstat -nlp | grep 12564 | grep LISTEN
tcp6 ? ? ? 0 ? ? ?0 :::49999 ? ? ? ? ? ? ? ?:::* ? ? ? ? ? ? ? ? ? ?LISTEN ? ? ?12564/java ? ? ? ? ?
unix ?2 ? ? ?[ ACC ] ? ? STREAM ? ? LISTENING ? ? 572295240 12564/java ? ? ? ? ? /tmp/.java_pid12564.tmp
# 說明該進程占用的端口號為49999
```
### 8.11 crontab 系統定時任務
#### 8.11.1 crontab服務管理
重啟cornd服務管理
```
systemctl restart crond
```
選項說明
|選項|功能
|------
|-e|編輯crontab定時任務
|-l|查詢crontab任務
|-r|刪除當前用戶所有的crontab任務
進入編輯界面
```
crontab -e
# 小例子 每分鐘往hello文件追加一個"hello world"
*/1 * * * * echo "hello world" >> /root/hello
```
|項目|含義|范圍
|------
|第1個“*"|一個小時當中的第幾分鐘|0-59
|第2個“*"|一天當中的第幾個小時|0-23
|第3個“*"|一個月當中的第幾天|1-31
|第4個“*"|一年當中的第幾月|1-12
|第5個“*"|一周當中的星期幾|0-7 (0和7都代表星期日)
符號說明
|特殊符號|含義
|------
|*|代表任何時間,比如第一個“*”就代表一小時中每分鐘都執行一次的意思
|,|代表不連續的時間。比如“0 8,12,16 * * *” 就代表在每天的8點0分,,12點0分,16點0分都執行一次命令
|-|代表連續的時間訪問。比如“0 5 * * 1-6" 代表在周一到周六的凌晨5點0分執行命令
|*/n|代表每隔多久執行一次,比如”*/10 * * * *" 命令,代表每隔10分鐘就執行一邊命令
||
示例
|45 22 * * *|每天22點45分執行命令
|------
|0 17 * * 1|每周1的17點0分執行命令
|0 5 1,15 * *|每月1號 15號的凌晨5點0分執行命令
|40 4 * * 1-5 命令|每周一到周五 4點40分執行命令
|*/10 4 * * *|每天的凌晨4點,每隔10分鐘執行一次命令
|0 0 1,15 * 1 命令|每月1號和15號,每周1的0點0分都會執行命令。注意:星期幾和幾號最好不要同時出現,因為他們定義的都是天。非常容易讓管理員混亂
## 9 軟件包管理
### 9.1 RPM
#### 9.1.1 RPM概述
?RPM(RedHat Package Manager),RedHat軟件包管理工具,類似于windows里面的setup.exe,是Linux這系列操作系統的打包安裝工具,它雖然是RedHat的標志,但理念是通用的。
?RPM包的名稱格式
?Apache-1.3.23-11.i386.rpm
?“apache” 軟件名稱
?“1.3.23-11”軟件的版本號,主版本和此版本
?“i386”是軟件所運行的硬件平臺,Intel 32位處理器的統稱
?“rpm”文件擴展名,代表RPM包
#### 9.1.2 RPM查詢命令 (rpm -qa)
rpm -qa 查詢所安裝的所有rpm軟件包
由于軟件包比較多,一般都會才去過濾 rpm -qa | grep 名稱
查詢具體信息
```
rpm -qi unzip-6.0-24.el7_9.x86_64
```
#### 9.1.3 RPM 卸載命令 (rpm -e)
rpm -e 名稱 卸載軟件包
rpm -e --nodeps 名稱 卸載軟件時,不檢查依賴。這樣的話,那些使用該軟件包的軟件在此之后可能就不能正常工作
卸載firefox
```
rpm -e firefox
```
#### 9.1.4 安裝命令 (rpm -ivh)
rpm -ivh 包全名
|選項|功能
|------
|-i|install 安裝
|-v|–verbose 顯示詳細信息
|-h|–hase,進度條
|–nodeps|安裝前不檢查依賴
安裝firefox
```
rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm
```
### 9.2 倉庫配置
#### 9.2.1 YUM概述
?YUM(全稱為 Yellow dog Updater, Modified)是一個在Fedora和RedHat以及CentOS中的Shell前端軟件包管理。基于RPM包管理,能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次 安裝所有依賴的軟件包,無須繁瑣地一次一次下載,安裝。
#### 9.2.2 YUM的常用命令
yum [選項] [參數]
|選項|功能
|------
|-y|對所有提問都回答“yes"
|參數|功能
|------
|install|安裝rpm 軟件包
|update|更新rpm軟件包
|check-update|檢查是否有可用的更新rpm軟件包
|remove|刪除指定的rpm軟件包
|list|顯示軟件包信息
|clean|清楚yum過期的緩存
|deplist|顯示yum軟件包的所有依賴關系
yum方式安裝firefox
```
yum list | grep firefox
# 卸載老版本
yum remove firefox
yum -y install firefox
```
#### 9.2.3 修改網絡YUM源 (默認會自己搜索最近的)
?默認的系統 YUM 源,需要連接國外 apache 網站,網速比較慢,可以修改關聯的網絡 YUM 源為國內鏡像的網站,比如網易 163,aliyun 等
(1)安裝 wget, wget 用來從指定的 URL 下載文件
```
yum install wget
```
(2)在/etc/yum.repos.d/目錄下,備份默認的 repos 文件
```
cd /etc/yum.repos.d
cp CentOS-Base.repo CentOS-Base.repo.backup
```
(3)下載網易 163 或者是 aliyun 的 repos 文件,任選其一
```
wget http://mirrors.aliyun.com/repo/Centos-7.repo # 阿里云
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo # 網易
```
(4)使用下載好的 repos 文件替換默認的 repos 文件 例如:用 CentOS7-Base-163.repo 替換 CentOS-Base.repo
```
mv CentOS7-Base-163.repo CentOS-Base.repo
```
(5)清理舊緩存數據,緩存新數據
```
yum clean all
yum makecache
```
yum makecache 就是把服務器的包信息下載到本地電腦緩存起來
(6)測試
```
yum list | grep firefox
yum -y install firefox
```
### 10磁盤和文件系統管理?
#### 10.1.1 ? 磁盤和文件系統管理?
1.mkfs 的使用 ?
**一基本語法**
```
?mkfs [選項] [-t 文件系統類型] [設備名] [大小]
```
`-t`:指定文件系統類型(如 ext4、xfs、vfat 等),默認值為 ext2?
`-V`:顯示詳細操作過程
`-c`:在創建文件系統前檢查壞塊
`-L`:設置文件系統標簽(如 `-L "DATA"`)
`-f`:強制格式化,即使設備已存在文件系統
**二典型使用場景與示例**
1. ###### **創建 ext4 文件系統**
? ?```
? ?sudo mkfs -t ext4 /dev/sdb1 ? ?# 通用寫法
? ?sudo mkfs.ext4 /dev/sdb1 ? ? ? # 直接調用工具(效果相同)
? ?```
#### 10.2.1 LVM 邏輯卷管理
**一、物理卷(PV)管理**?
**創建物理卷**
```
pvcreate /dev/sdb1 ? ? ? ?# 將分區/dev/sdb1初始化為PV
pvcreate /dev/sdc ? ? ? ? # 將整個磁盤/dev/sdc初始化為PV
```
**查看物理卷信息**
```
Bashpvs ? ? ? ? ? ? ? ? ? ? ?# 簡要查看所有PV
pvdisplay /dev/sdb1 ? ? ?# 顯示指定PV的詳細信息
```
**刪除物理卷**
```
pvremove /dev/sdb1 ? ? ? # 刪除PV的元數據
```
**二、卷組(VG)管理**
1. **創建卷組**
? ?```
? ?vgcreate myvg /dev/sdb1 /dev/sdc1 ?# 將多個PV組合為卷組myvg
? ?```
2. **擴展卷組**
? ?```
? ?vgextend myvg /dev/sdd1 ? ? ? ? ? # 添加新PV到卷組
? ?```
3. **縮減卷組**
? ?```
? ?vgreduce myvg /dev/sdb1 ? ? ? ? ? # 從卷組移除指定PV(需確保PV未被使用)
? ?```
4. **查看卷組信息**
? ?```
? ?vgs ? ? ? ? ? ? ? ? ? ? ?# 簡要查看所有VG
? ?vgdisplay myvg ? ? ? ? ? # 顯示卷組詳細信息
? ?```
**三、邏輯卷(LV)管理**
1. **創建邏輯卷**
? ?```
? ?lvcreate -L 10G -n mylv myvg ? ? # 在myvg中創建10G的邏輯卷mylv
? ?lvcreate -l 100%FREE -n data_lv myvg ?# 占用卷組全部剩余空間
? ?```
2. **擴展邏輯卷**
? ?```
? ?lvextend -L +5G /dev/myvg/mylv ? ?# 增加5G容量
? ?lvextend -l +100%FREE /dev/myvg/mylv ?# 占用全部剩余空間
? ?```
3. **縮減邏輯卷**(需卸載且謹慎操作)
? ?```
? ?lvreduce -L 15G /dev/myvg/mylv ? ?# 縮減至15G
? ?```
4. **刪除邏輯卷**
? ?```
? ?lvremove /dev/myvg/mylv ? ? ? ? ?# 刪除邏輯卷
? ?```
**四、文件系統操作**
1. **格式化邏輯卷**
? ?```
? ?mkfs.ext4 /dev/myvg/mylv ? ? ? ? # 格式化為ext4文件系統
? ?mkfs.xfs /dev/myvg/mylv ? ? ? ? ?# 格式化為XFS文件系統
? ?```
2. **擴展文件系統**(擴容后必須執行)
? ?```
? ?resize2fs /dev/myvg/mylv ? ? ? ? ?# ext4文件系統調整
? ?xfs_growfs /dev/myvg/mylv ? ? ? ? # XFS文件系統調整
? ?```
**五、查看與掃描命令**
- **掃描存儲結構**
? ```
? pvscan ? ? ? ? ?# 掃描所有物理卷
? vgscan ? ? ? ? ?# 掃描所有卷組
? lvscan ? ? ? ? ?# 掃描所有邏輯卷
? ```
- **查看詳細信息**
? ```
? pvdisplay ? ? ? # 顯示所有PV的詳細信息
? vgdisplay ? ? ? # 顯示所有VG的詳細信息
? lvdisplay ? ? ? # 顯示所有LV的詳細信息
? ```
#### 10.3.1 磁盤配額
**永久生效**: 編輯 `/etc/fstab`,在對應分區的掛載選項中添加 `usrquota,grpquota`(EXT4)或 `prjquota`(XFS目錄配額)
1. - ```
? ? ? /dev/sdb1 ?/mnt/data ?ext4 ?defaults,usrquota,grpquota ?0 0
? ? ?```
?