linux 學習筆記

# 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 輸出重定向和 &gt;&gt; 追加
- ls -l &gt; a.txt (功能描述:列表的內容寫入文件 a.txt 中(**覆蓋寫**))- ls -al &gt;&gt; aa.txt (功能描述:列表的內容**追加**到文件 aa.txt 的末尾)- cat 文件 1 &gt; 文件 2 (功能描述:將文件 1 的內容覆蓋到文件 2)- echo “內容” &gt;&gt; 文件
#### 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 -&gt; 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: 多線程 +:前臺顯示 &lt;:高優先級 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 &lt;端口號&gt;
# 示例
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 &lt;pid&gt; ?| 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" &gt;&gt; /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
? ? ?```
?

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

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

相關文章

Python個人學習筆記(14):函數(匿名函數、內置函數(下)、三元表達式)

九、匿名函數 lambda表達式 語法規則&#xff1a; 變量 lambda 參數1,參數2,…:返回值 例&#xff1a;用lambda簡化下述操作 def func(a,b):return ab ret func(1, 2) print(ret)代碼&#xff1a; fn lambda a,b:ab print(fn) print(fn(12,13))結果&#xff1a; <fun…

dns劫持是什么?常見的劫持類型有哪些?如何預防?

DNS劫持的定義 DNS劫持&#xff08;Domain Name System Hijacking&#xff09;是一種網絡攻擊手段&#xff0c;攻擊者通過篡改域名解析的過程&#xff0c;將用戶對某個域名的訪問請求重定向到錯誤或惡意的IP地址。這種攻擊可能導致用戶訪問到釣魚網站、惡意廣告頁面&#xff0…

prompt大師高效提示詞解析

Prompt大師李繼剛高效提示詞示例解析 一、「漢語新解」提示詞 核心結構 采用Lisp語言框架嵌套中文語義&#xff0c;通過(defun 新漢語老師 ()...)定義角色風格&#xff08;融合奧斯卡王爾德、魯迅的批判性語言&#xff09;&#xff0c;用(隱喻 (一針見血...))構建解釋邏輯鏈。…

基于 Vue 的Deepseek流式加載對話Demo

目錄 引言組件概述核心組件與功能實現1. 消息顯示組件&#xff08;Message.vue&#xff09;2. 輸入組件&#xff08;Input.vue&#xff09;3. 流式請求處理&#xff08;useDeepseek.ts&#xff09;4. 語音處理模塊&#xff08;Voice.vue&#xff09; 總結Demo Github 地址 引言…

RK3588 編譯 openssl

在編譯 OpenSSL 時,你需要確保你的系統環境已經配置好了所有必要的依賴和編譯工具。下面是一般步驟和一些常見問題的解決方案,特別是在使用 RK3588 這類的 ARM 處理器上。 1. 安裝依賴 首先,你需要安裝編譯 OpenSSL 所需的依賴。這通常包括編譯器(如 GCC)、make 工具、Per…

常見JVM命令

1. java -XX:PrintCommandLineFlags HelloGC 作用&#xff1a;打印 JVM 啟動時的命令行參數&#xff0c;包括用戶顯式設置的參數和 JVM 自動默認設置的參數。用于確認 JVM 實際使用的配置。 2. java -Xmn10M -Xms40M -Xmx60M -XX:PrintCommandLineFlags -XX:PrintGC -XX:Prin…

easy-poi導出and導入一對多數據excel

easy-poi導出and導入一對多數據excel 一、導入jar包 <!-- easy-poi --><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><version>4.4.0</version></dependency> 二…

c#如何直接獲取json中的某個值

在 C# 中直接獲取 JSON 中的某個值,通常可以通過以下方法實現(以 Newtonsoft.Json 和 .NET 內置的 System.Text.Json 為例): 方法 1:使用 System.Text.Json(.NET 內置庫) using System.Text.Json;// 示例 JSON 字符串 string json = @"{""name"&qu…

WPS二次開發系列:Android 第三方應用如何獲取WPS端內文檔

1.需求場景 在項目開發中碰到這種情況&#xff0c;我們需要利用WPS的文檔管理能力&#xff0c;比如需要調用WPS的文件選擇器&#xff0c;來選擇文檔&#xff0c;同時需要得到WPS選擇的文檔結果返回給我們的應用。之前在網上找到了很久都沒有找到WPS移動端有相關的API接口文檔和…

Pytesseract識別圖片

1. Pytesseract識別圖片原理 1.1 Tesseract引擎工作原理 Tesseract OCR 引擎是一個功能強大的開源文字識別工具&#xff0c;其工作原理可以分為以下幾個關鍵步驟&#xff1a; 圖像預處理&#xff1a;Tesseract 首先對輸入的圖像進行預處理&#xff0c;包括灰度化、二值化、去…

Flutter 基礎組件 Text 詳解

目錄 1. 引言 2. 基本使用 3. 自定義樣式 4. 文本對齊與溢出控制 5. 外邊距 5.1 使用 Container 包裹 5.2 使用 Padding 組件 5.3 在 Row/Column 中使用 5.4 動態邊距調整 5.5 關鍵區別說明 5.6 設置 margin 無效 6. 結論 相關推薦 1. 引言 Text 組件是 Flutter 中…

Acknowledgment.nack方法重試消費kafka消息異常

文章目錄 問題示例異常 原因nack方法Acknowledgment接口實現類&#xff1a;ConsumerAcknowledgment實現類&#xff1a;ConsumerBatchAcknowledgment 解決方案1 批量消費指定index示例 2 單條消費示例 問題 使用BatchAcknowledgingMessageListener 批量消費Kafka消息&#xff0…

Java 反序列化 - commons collection 之困(一)

#01多余的碎碎念 說到 java 反序列化&#xff0c;去搜索的話能看到網上有很多分析關于 commons collection 利用鏈的文章&#xff0c;emm 我一開始看不懂&#xff0c;看到很多代碼的圖頭暈。 這篇文章的話其實是我跟著 p 神的文章一路走下來的&#xff0c;所以整個邏輯會按照…

python LLM工具包

阿里云鏡像pypi http://mirrors.aliyun.com/pypi/simple/ modelscope魔塔 pip install modelscope https://modelscope.cn/docs/models/download Sentence-transformers pip install -U sentence-transformers pip3 install torch -i https://pypi.tuna.tsinghua.edu.cn/sim…

Linux賬號和權限管理

用戶賬戶管理 理論 /etc/passwd 該目錄用于保存用戶名&#xff0c;宿主目錄&#xff0c;登錄shel等基本信息 /etc/shadow 該目錄用于保存 用戶密碼&#xff0c;賬戶有效期等信息 圖上每一行中都有用“&#xff1a;”隔斷的字段 字段含義&#xff1a; 第1字段:用戶賬號的名…

晉升系列4:學習方法

每一個成功的人&#xff0c;都是從底層開始打怪&#xff0c;不斷的總結經驗&#xff0c;一步一步打上來的。在這個過程中需要堅持、總結方法論。 對一件事情長久堅持的人其實比較少&#xff0c;在堅持的人中&#xff0c;不斷的總結優化的更少&#xff0c;所以最終達到高級別的…

win32匯編環境,對話框中使用樹形視圖示例四

;運行效果,當點擊張遼時,展示張遼的圖像 ;當點擊曹仁時,展示曹仁的圖像 ;win32匯編環境,對話框中使用樹形視圖示例四 ;當點擊樹形視圖treeview控件中的某項時,展示某些功能。這里展示的是當點到某個將領時,顯示某個將領的圖像 ;直接抄進RadAsm可編譯運行。重要部分加備注。…

智慧停車小程序:實時車位查詢、導航與費用結算一體化

智慧停車小程序:實時車位查詢、導航與費用結算一體化 一、城市停車困境的數字化突圍 中國機動車保有量突破4.3億輛,但車位供給缺口達8000萬。傳統停車管理模式存在三大致命傷: 盲盒式尋位:62%的車主遭遇"地圖顯示有位,到場已滿員"的窘境迷宮式導航:商場停車場…

Windows server網絡安全

摘要 安全策略 IP安全策略&#xff0c;簡單的來說就是可以通過做相應的策略來達到放行、阻止相關的端口&#xff1b;放行、阻止相關的IP&#xff0c;如何做安全策略&#xff0c;小編為大家詳細的寫了相關的步驟&#xff1a; 解說步驟&#xff1a; 阻止所有&#xff1a; 打…

充電樁快速搭建springcloud(微服務)+前后端分離(vue),客戶端實現微信小程序+ios+app使用uniapp(一處編寫,處處編譯)

充電樁管理系統是專為中小型充電樁運營商、企業和個人開發者設計的一套高效、靈活的管理平臺。系統基于Spring Cloud微服務架構開發&#xff0c;采用模塊化設計&#xff0c;支持單機部署與集群部署&#xff0c;能夠根據業務需求動態擴展。系統前端使用uniapp框架&#xff0c;可…