關于linux:1. Linux 基礎運維

一、Linux 安裝與發行版選擇

關于操作系統種類:

1)基于 Linux 內核的操作系統

  • Ubuntu、Debian、Kali、CentOS、RHEL、Arch、Android、Alpine、OpenWRT 等

  • 特點:開源、穩定、安全、廣泛使用于服務器與開發領域

2)基于 Windows NT 內核

  • Windows 10/11、Windows Server 系列

  • 特點:兼容性強、圖形界面友好、廣泛用于辦公/日常

3)基于 Darwin(Unix)的系統

  • macOS、iOS、iPadOS

  • 特點:蘋果封閉生態,安全性強,用戶體驗佳

4)BSD 系統

  • FreeBSD、OpenBSD、NetBSD、TrueNAS

  • 特點:比 Linux 更接近傳統 UNIX,穩定性極高

5)基于 Microkernel 或自研內核

  • MINIX(教學用)、Redox OS(Rust 寫的)、Fuchsia(谷歌開發中)

  • 特點:多為科研或探索性系統

1.1?Linux發行版概述

Linux并非單一系統,而是由許多不同的“發行版”(Distribution,簡稱Distro)組成。每個發行版都是基于Linux內核的操作系統,但在軟件包管理、系統架構、默認配置和目標用戶群等方面有所不同。

1.2?三大常見發行版介紹

1)CentOS(Community ENTerprise Operating System)

  • 背景:CentOS 是基于 Red Hat Enterprise Linux (RHEL) 的免費版本,幾乎完全兼容RHEL,常被用于企業服務器。2020年末,Red Hat 宣布停止維護 CentOS 8,轉向 CentOS Stream,導致社區紛紛轉向Rocky Linux等替代品。

  • 特點

    • 穩定性極高,適合生產環境。

    • 版本更新緩慢,注重長期支持。

    • 默認使用 yum(CentOS 7)和 dnf(CentOS 8)包管理器。

    • 軟件版本偏舊,優先保證兼容性和穩定。

  • 適用場景

    • 傳統企業服務器環境。

    • 需要穩定、長期支持的環境。

    • 適合運行數據庫、Web服務器、大型應用。

2)Ubuntu

  • 背景:Ubuntu 基于 Debian,是目前使用最廣泛的 Linux 發行版之一,特別在桌面和云服務器領域。它有長期支持版本(LTS)和常規版本(通常每6個月發布一次)。

  • 特點

    • 社區活躍,文檔豐富,支持廣泛。

    • 軟件版本相對較新,適合快速迭代開發。

    • 使用 apt 包管理工具,命令簡潔。

    • LTS版本提供長達5年支持,適合服務器部署。

  • 適用場景

    • 初學者和開發者。

    • 服務器環境尤其是云服務器(AWS、Azure等云服務大多支持Ubuntu鏡像)。

    • 桌面操作系統。

3)Rocky Linux

  • 背景:Rocky Linux 由CentOS創始人之一Gregory Kurtzer發起,目的是接替CentOS成為免費的RHEL克隆版,定位企業級替代品。Rocky Linux 1.0 發布于2021年,迅速獲得企業和社區支持。

  • 特點

    • 與 RHEL 100%二進制兼容。

    • 穩定性和長期支持。

    • 包管理和命令與 CentOS 一致(yum/dnf)。

    • 適合遷移CentOS用戶。

  • 適用場景

    • 需要企業級穩定環境的用戶。

    • 希望免費獲得類似RHEL的系統支持。

    • 遷移自CentOS 7/8的用戶。

1.3?發行版對比總結

特性CentOSUbuntuRocky Linux
內核版本較舊,穩定較新,更新快與CentOS類似,穩定
包管理yum/dnfaptyum/dnf
社區支持穩定但較小活躍,資源豐富新興,逐漸擴大
目標用戶企業服務器桌面及云服務器企業服務器
版本更新頻率低,LTS支持長LTS(5年支持)和普通版本低,長期支持
適合初學者中等中等

1.4?在本機創建虛擬機安裝linux操作系統

一些定義:

現在用的是 Windows 電腦(物理機)
→ 安裝 VMware 軟件(虛擬機軟件)
→ 用 VMware 創建一個虛擬機
→ 在虛擬機中安裝 Ubuntu(Linux系統)
→ 然后就能用 Linux 系統了,而且不會影響本機系統
名稱Linux虛擬機
定義一種開源的操作系統(比如 Ubuntu、CentOS)一種用于模擬計算機系統的軟件環境(如 VMware、VirtualBox)
本質操作系統軟件模擬的計算機
運行位置安裝在物理機或虛擬機上運行安裝在物理機上的軟件,運行一個或多個虛擬的“計算機”
作用提供系統內核、Shell、驅動、應用支持模擬一臺或多臺計算機,讓你運行多個系統

操作流程圖

[下載 VMware + ISO] ↓
[創建虛擬機] ↓
[加載 ISO 鏡像并安裝 Linux] ↓
[安裝后配置:VM Tools、軟件、用戶設置]

1.4.1?步驟一:準備材料

名稱說明
VMware Player免費虛擬機軟件,安裝于本機
Linux 鏡像 ISO推薦 Ubuntu 22.04 LTS 或 Rocky Linux 9

VMware Workstation Player 下載地址(免費版):

https://www.vmware.com/products/desktop-hypervisor/workstation-and-fusion

下載步驟:

  • 打開鏈接后點擊 Download Now

  • 選擇你的平臺(Windows 或 Linux)

  • 下載 .exe 安裝程序(Windows)或 .bundle 安裝程序(Linux)

常見 Linux 發行版 ISO 下載地址:

1. Ubuntu:https://ubuntu.com/download/desktop(推薦 LTS 穩定版)

????????推薦版本:Ubuntu 22.04 LTS

2. Debian:https://www.debian.org/distrib/

????????推薦版本:Debian 12 (Bookworm)

3. CentOS:https://www.centos.org/download/

4. Rocky Linux(兼容 RHEL):https://rockylinux.org/download

????????推薦版本:Rocky Linux 9.4

5.?AlmaLinux(兼容 RHEL):https://almalinux.org/download.html

6.?Kali Linux(用于安全測試):https://www.kali.org/get-kali/

7. Arch Linux(高級用戶):https://archlinux.org/download/

推薦下載鏡像網站(速度快):

  • 清華大學開源鏡像站(適合中國大陸用戶):https://mirrors.tuna.tsinghua.edu.cn/

  • 阿里云鏡像站:https://developer.aliyun.com/mirror/

1.4.2 步驟二:創建虛擬機并安裝 Linux 系統

1)打開 VMware Workstation Player

啟動軟件后點擊首頁的:Create a New Virtual Machine(創建新的虛擬機)

2)選擇安裝來源

選擇:

  • Installer disc image file (iso)
    并點擊 Browse 選擇你下載好的 .iso 鏡像文件(如 ubuntu-22.04.4-desktop-amd64.iso

3)選擇客戶機操作系統類型

  • 選擇:

    • Linux

    • 版本:Ubuntu 64-bitCentOS 64-bit

4)命名虛擬機 & 選擇位置

  • 名稱隨便填:例如 ubuntu_vm

  • 存儲路徑:可以默認,也可以放到 D:\VMs 這樣的專用目錄中

5)設置磁盤容量

  • 建議:

    • 大小 20 GB 以上

    • 勾選:Store virtual disk as a single file(也可以分多個文件)

6)自定義硬件(點擊 Customize Hardware)

  • 內存:建議至少 2048 MB(2GB)或更多

  • CPU:至少 2 個核心

  • 網絡:選擇 NAT 模式(默認)即可

  • 顯卡/USB等可以保持默認

7)創建完成,點擊 “Finish”

8)啟動虛擬機:點擊左側虛擬機,點擊“? 啟動此虛擬機”

1.4.3 步驟三:Linux 安裝過程(以 Ubuntu 為例)

1)語言選擇:選擇中文或英文,點擊 “安裝 Ubuntu”

2)配置鍵盤:默認即可(推薦:English(US))

3)網絡設置:可以連接網絡,也可以跳過,之后手動連接。

4)安裝類型選擇

  • 正常安裝

  • 安裝第三方軟件(勾選)

  • 磁盤選擇:“清除磁盤并安裝 Ubuntu” (注意:此處是虛擬磁盤,不影響你電腦本地磁盤)

5)創建賬戶

填寫:

  • 名字:隨便

  • 用戶名:如 hacker

  • 密碼:123456(你自己設置)

6)開始安裝:點擊繼續,安裝過程需要幾分鐘。

7)安裝完成 → 重啟系統:系統提示時選擇“重啟”,第一次啟動進入桌面系統?

1.5 linux系統安裝后的初始化操作

1.5.1?安裝 VMware Tools(增強鼠標支持、拖拽功能)

點擊 VMware 上菜單:

虛擬機 → 安裝 VMware Tools

然后在虛擬機中打開掛載的光盤:

cd /media/用戶名/VMware\ Tools/
cp VMwareTools-xxx.tar.gz ~/
tar -zxvf VMwareTools-xxx.tar.gz
cd vmware-tools-distrib
sudo ./vmware-install.pl

一路回車即可完成。

1.5.2?更新系統和安裝常用工具

sudo apt update && sudo apt upgrade -y           # Ubuntu
sudo yum update -y                               # CentOS/Rocky

安裝一些工具:

sudo apt install -y vim curl net-tools git htop

1.5.3?安裝中文支持

sudo apt install language-pack-zh-hans

然后:

sudo dpkg-reconfigure locales

選擇 zh_CN.UTF-8 保存,重啟系統即可。

1.5.4?設置 root 用戶

sudo passwd root

然后設置密碼,即可用 su 切換到 root

1.5.5?設置靜態 IP

/etc/netplan/*.yaml 文件中修改:

network:version: 2ethernets:ens33:dhcp4: noaddresses: [192.168.1.100/24]gateway4: 192.168.1.1nameservers:addresses: [8.8.8.8, 114.114.114.114]

保存后執行:

sudo netplan apply

1.5.6?共享文件夾功能

VMware設置共享文件夾 → 安裝 open-vm-tools

sudo apt install open-vm-tools open-vm-tools-desktop
sudo reboot

二、基礎命令

2.1?文件操作命令詳解

命令功能示例
ls列出目錄內容ls -l /etc(長格式列出 /etc 下內容)
cd切換目錄cd /var/log(進入 /var/log)
pwd顯示當前目錄pwd(返回 /home/user
touch創建空文件touch a.txt
mkdir創建新目錄mkdir new_dir
rm刪除文件或目錄rm file.txtrm -rf dir/
cp復制文件或目錄cp a.txt b.txtcp -r dir1 dir2
mv移動/重命名文件mv a.txt /tmp/mv old.txt new.txt
cat顯示文件內容cat file.txt
more / less分頁查看內容less /var/log/syslog
head / tail顯示頭部/尾部行head -n 10 a.logtail -f a.log
file判斷文件類型file /bin/ls(返回 ELF 可執行文件)

2.2?通配符(通用匹配符)

通配符用于匹配多個文件名,是 bash 中文件操作和腳本批量處理的重要利器。

通配符說明示例
*匹配任意長度任意字符*.txt(所有 txt 文件)
?匹配單個任意字符a?.sh(如:a1.sh、ab.sh)
[]匹配指定范圍內任意單字符file[1-3].txt(file1、file2)
[^]匹配不在范圍內的任意字符file[^1-3].txt(排除1-3)

2.3?管道命令與重定向

管道和重定向是 Linux 強大的命令組合工具,可以實現“數據流傳遞”。

1)管道符 |

將前一個命令的輸出,作為下一個命令的輸入。

cat file.txt | grep "error"      # 讀取 file.txt 文件內容,并通過管道傳給 grep,篩選出包含 "error" 字符串的行
ps aux | grep nginx              # 查看當前系統所有進程信息,篩選出包含 "nginx" 的進程行,用于查找 nginx 是否在運行

第一個命令等價寫法可用 :

grep "error" < file.txt       # 等同于 grep "error" file.txt,查找 file.txt 中包含 "error" 的行

2)輸出重定向 >>>

符號含義示例
>覆蓋寫入echo Hello > a.txt
>>追加寫入echo World >> a.txt

3)輸入重定向 <

sort < unsorted.txt             # 使用輸入重定向將 unsorted.txt 文件內容傳遞給 sort 命令,對內容進行排序并輸出

4)錯誤重定向

command 2> err.log             # 執行 command, 將標準錯誤(stderr,文件描述符2)重定向到文件 err.log,標準輸出仍顯示在屏幕
command > out 2>&1             # 執行 command, 將標準輸出(stdout,文件描述符1)重定向到文件 out,標準錯誤(2)重定向到標準輸出(1)的位置,即兩個都寫入 out 文件

2.4?組合命令符號(進階命令流控制)

符號說明示例
;順序執行多個命令cd /tmp; ls; pwd
&&前一個成功才執行后一個命令mkdir test && cd test
``

2.5?文件查找相關命令

1)find 命令(查文件)

find /var -name "*.log"              # 按文件名查找
find . -type f -size +10M            # 找大于10MB的文件
find . -mtime -7                     # 最近7天修改的文件

2)locate 命令(系統索引)

locate nginx.conf                   # 快速查文件路徑(需更新索引:updatedb)

2.6?示例實戰組合命令

示例1:查找 /var/log 下最大的日志文件

find /var/log -type f -exec du -h {} + | sort -hr | head -n 10
# 在 /var/log 目錄下查找所有文件(不含目錄),對每個文件執行 du -h 顯示文件大小,
# 然后按文件大小倒序排序(-h 人類可讀,-r 逆序),取出前 10 個最大文件
# 每找到一個文件執行一次 echo:
find . -name "*.sh" -exec echo {} \;# 找到多個文件,一次性傳給 echo(更快):
find . -name "*.sh" -exec echo {} +

示例2:查看某關鍵詞頻次

cat access.log | grep "404" | wc -l
# 讀取 access.log 文件內容,通過管道傳給 grep,篩選包含 "404" 的行,再傳給 wc -l 統計總行數,表示出現 404 的次數

示例3:統計某目錄下所有 .sh 文件的總行數

cat *.sh | wc -l
# 將當前目錄下所有以 .sh 結尾的文件內容拼接在一起,通過管道傳給 wc -l,統計所有 .sh 腳本文件的總行數

三、用戶與權限管理

3.1?用戶賬戶管理(useradd / passwd)

1)創建用戶 useradd

useradd hacker

默認會在 /home/hacker/ 創建用戶目錄,且不會設置密碼,需要用 passwd 設置。

創建用戶并指定信息(推薦用法):

useradd -m -s /bin/bash -c "Hack Test" hacker

參數說明:

參數含義
-m自動創建 home 目錄
-s指定 shell(默認 bash)
-c添加備注信息

2)設置密碼 passwd

passwd hacker

系統將提示你輸入密碼并確認,密碼可用于終端或 SSH 登錄。

3)刪除用戶

userdel hacker              # 刪除用戶(保留文件)
userdel -r hacker           # 刪除用戶及其 home 目錄

4)查看當前用戶 / 所有用戶

whoami                      # 當前用戶名
id hacker                   # 查看用戶 ID、組
cat /etc/passwd             # 系統中所有用戶

3.2?權限管理(chmod)

Linux 中,每個文件都有三類用戶的訪問權限:

  • 所有者(owner)

  • 所屬組(group)

  • 其他人(others)

權限包括:

權限字母數值作用
r4查看文件內容
w2修改或刪除
執行x1執行腳本/程序

1)chmod 改權限(數值法)

chmod 755 script.sh

解釋:

7 = 4+2+1 = rwx(所有者)
5 = 4+0+1 = r-x(組)
5 = 4+0+1 = r-x(其他人)

也可以用符號法:

chmod u+x hello.sh     # 給擁有者加執行權限
chmod go-w hello.sh    # 去掉組和其他人的寫權限

3.3?屬主屬組管理(chown)

每個文件都有:

  • 一個屬主(user)

  • 一個屬組(group)

1)修改屬主屬組

chown root:root file.txt     # 同時改屬主和屬組
chown hacker file.txt        # 只改屬主
chown :staff file.txt        # 只改屬組

遞歸修改某目錄及下所有文件:

chown -R hacker:hacker /home/hacker

3.4?sudo 權限(普通用戶執行管理員命令)

1)讓用戶具備 sudo 權限

usermod -aG sudo hacker     # Ubuntu/Debian 系加入 sudo 組
usermod -aG wheel hacker    # CentOS/Rocky 中是 wheel 組

修改完后重新登錄用戶即生效。

2)使用 sudo 運行命令

sudo apt update
sudo systemctl restart nginx

首次使用會提示輸入當前用戶密碼。

3)配置 sudo 權限規則

編輯 sudoers 文件(慎重):

visudo

添加如下行給特定用戶全部權限(等價于 root):

hacker ALL=(ALL) ALL

3.5?文件權限實例解讀

ls -l
-rwxr-xr-- 1 root root 1234 Jan 1 12:00 run.sh

分解說明:

  • -rwxr-xr--

    • 所有者:rwx → 可讀、可寫、可執行

    • 所屬組:r-x → 只讀、可執行

    • 其他人:r-- → 只讀

  • 屬主:root,屬組:root

  • 大小:1234 字節

  • 最后修改時間:Jan 1 12:00

3.6?實戰練習

目標操作示例
創建用戶并賦予管理員權限useradd hacker && passwd hacker && usermod -aG sudo hacker
創建 test.sh 并設置僅用戶可執行touch test.sh && chmod 700 test.sh
修改文件屬主為 hacker:hackerchown hacker:hacker test.sh
限制腳本只能由屬主運行chmod 700 script.sh

3.6?小結

功能常用命令
添加用戶useradd / passwd
權限控制chmod / chown
用戶授權usermod -aG sudo / visudo
用戶查看id / whoami / /etc/passwd

四、軟件包管理

4.1?Linux 軟件包管理兩大陣營

發行版包管理器類型使用的命令包后綴
CentOS / RHEL / RockyRPM 系yum / dnf / rpm.rpm
Ubuntu / DebianDPKG 系apt / dpkg.deb

4.2?YUM(基于 RPM 的高級管理器)

1)安裝軟件包

yum install nginx -y

說明:

  • yum 會自動解析依賴、聯網安裝

  • -y 表示自動確認(無交互)

2)卸載軟件包

yum remove nginx -y

3)搜索軟件包

yum search nginx
yum list | grep nginx

4)更新與升級

yum update                 # 更新所有
yum update nginx           # 更新指定

5)查看已安裝包信息

yum info nginx

6)列出已安裝的包

yum list installed

7)設置源(重要)

YUM 默認從 /etc/yum.repos.d/*.repo 中讀取源配置。

比如阿里云 CentOS 源配置:

# 備份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak# 下載阿里源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo# 生成緩存
yum clean all && yum makecache

4.3?RPM(RedHat Package Manager)

RPM 是 .rpm 包的底層安裝命令,不負責依賴處理,適合離線環境。

1)安裝 .rpm

rpm -ivh nginx.rpm
參數含義
-i安裝
-v顯示詳細信息
-h顯示進度條

2)卸載 .rpm

rpm -e nginx

注意:必須使用包名,不能寫文件路徑。

3)查詢與驗證

rpm -qa                     # 查詢所有已安裝包
rpm -q nginx                # 是否安裝
rpm -ql nginx               # 包安裝了哪些文件
rpm -qc nginx               # 查看配置文件位置

4.4 APT(Debian 系高級包管理器)

Ubuntu 常用,功能等價于 yum。

1)安裝包

sudo apt update && sudo apt install nginx -y

2)卸載包

sudo apt remove nginx
sudo apt purge nginx    # 連配置文件一起刪

3)升級系統

sudo apt upgrade        # 升級已安裝軟件
sudo apt full-upgrade   # 升級并處理依賴變動

4)搜索與查看

apt search nginx
apt show nginx

5)查看已安裝軟件

dpkg -l | grep nginx

4.5?DPKG(底層 .deb 安裝工具)

類似于 rpm:

1)安裝 .deb

sudo dpkg -i xxx.deb

若缺依賴,執行:

sudo apt install -f

2)卸載 .deb

sudo dpkg -r nginx

3)查詢與列表

dpkg -l                 # 所有包
dpkg -L nginx           # 某包的文件列表
dpkg -S /usr/bin/nginx  # 哪個包安裝了某文件

4.6?實戰練習

練習目標建議命令
搜索一個軟件并安裝yum search vsftpd && yum install vsftpd -y
卸載軟件并清理配置apt purge nginx && apt autoremove
.rpm / .deb 離線裝包rpm -ivh xxx.rpm / dpkg -i xxx.deb
換國內源Ubuntu:換 /etc/apt/sources.list 為阿里、清華

4.7 小結對比表

功能YUM(CentOS)APT(Ubuntu)RPM / DPKG(底層)
安裝yum install xxxapt install xxxrpm -ivh xxx.rpm / dpkg -i xxx.deb
卸載yum remove xxxapt remove xxxrpm -e xxx / dpkg -r xxx
更新yum updateapt update && upgradeN/A
搜索包yum search xxxapt search xxx`rpm -qa
查詢已安裝yum list installeddpkg -lrpm -qa
查看包內容yum info xxxapt show xxxrpm -ql xxx / dpkg -L xxx

五、計劃任務

5.1?Linux 計劃任務工具概覽

工具作用場景示例
crontab周期性執行(分鐘、天、月)每天 2 點備份數據庫
at執行一次的定時任務明天下午 3 點發通知腳本

5.2?Crontab(周期性計劃任務)

1)基本語法

crontab -e     # 編輯當前用戶的計劃任務
crontab -l     # 查看任務
crontab -r     # 刪除任務

2)時間格式(最關鍵)

* * * * * command-to-run
│ │ │ │ │
│ │ │ │ └── 星期幾 (0 - 7)(0 和 7 都是星期日)
│ │ │ └──── 月份 (1 - 12)
│ │ └─────── 日 (1 - 31)
│ └───────── 時 (0 - 23)
└─────────── 分鐘 (0 - 59)

示例:

時間字段含義
* * * * *每分鐘
0 0 * * *每天凌晨 00:00
0 2 * * 1-5每周一到周五 02:00
*/5 * * * *每 5 分鐘
30 6 1 * *每月 1 日 6:30

3)示例任務配置

# 每天 2 點自動執行備份腳本
0 2 * * * /home/hacker/backup.sh# 每隔 10 分鐘清理臨時目錄
*/10 * * * * rm -rf /tmp/*# 每周六中午 12 點執行日志歸檔
0 12 * * 6 tar -czf /backup/logs.tar.gz /var/log/

4)查看 /var/spool/cron/ 目錄

cat /var/spool/cron/用戶名

系統級任務在 /etc/crontab 中,也可以寫入 /etc/cron.d/ 目錄。

5)cron 輸出重定向

避免任務出錯看不到結果:

0 2 * * * /home/hacker/backup.sh >> /home/hacker/backup.log 2>&1

6)定時執行腳本注意點

  • 腳本中使用絕對路徑(/usr/bin/python3

  • 文件要有可執行權限(chmod +x

  • 定義 PATH 變量或使用全路徑

5.3?at(一次性計劃任務)

1)安裝 at

# Ubuntu/Debian
sudo apt install at# CentOS/Rocky
sudo yum install at# 啟動 at 服務
sudo systemctl start atd
sudo systemctl enable atd

2)使用 at 添加一次性任務

at 15:30         # 今天下午 3 點半
at now + 1 minute

然后進入交互界面,輸入命令:

echo "hello world" > /tmp/test.log
<Ctrl + D>      # 輸入完成后按 Ctrl+D 結束

3)查看任務隊列

atq      # 顯示當前用戶的所有 at 任務

4)刪除任務

atrm 3   # 刪除任務編號為 3 的任務

5)執行腳本

at now + 2 minutes <<EOF
/home/hacker/task.sh >> /home/hacker/log.txt
EOF

5.4?系統級計劃任務位置

路徑作用
/etc/crontab系統級 cron 表
/etc/cron.d/存放系統 cron 文件
/etc/cron.daily/每天執行的腳本
/etc/cron.hourly/每小時執行的腳本

腳本直接丟進去,系統會自動執行(需可執行權限)。

5.5?實戰練習

目標操作命令或配置
每晚備份數據庫0 1 * * * /opt/scripts/mysql_backup.sh
每周清理日志0 3 * * 0 rm -rf /var/log/*
設置一次性 5 分鐘后關機at now + 5 minutes 然后輸入 shutdown -h now
每 10 分鐘檢測某服務是否掛掉并重啟*/10 * * * * /opt/scripts/monitor_nginx.sh

5.6 小結對比

工具是否周期性執行時間粒度推薦用途
crontab?周期性到分鐘級日常備份、清理、腳本運行
at?僅一次到分鐘級臨時自動執行、測試腳本

六、文件系統與磁盤管理

6.1?文件系統基礎概念

Linux 把一切設備都看作文件,包括磁盤。
你插入的硬盤、U盤、分區都必須掛載(mount)后才能訪問。

常見設備路徑:

  • /dev/sda第一塊 SATA 磁盤

  • /dev/sda1該磁盤的第一個分區

  • /dev/nvme0n1p1NVMe 固態磁盤分區

  • /mnt /media掛載點

6.2?掛載管理(mount & umount)

1)臨時掛載(不修改配置文件)

sudo mount /dev/sdb1 /mnt

掛載 /dev/sdb1 /mnt 目錄

2)卸載掛載點

sudo umount /mnt

3)查看當前所有掛載情況

mount
findmnt

4)開機自動掛載(修改 /etc/fstab

添加行到 /etc/fstab

/dev/sdb1   /data   ext4    defaults    0  2

然后運行:

mount -a   # 檢查是否有語法錯誤并立即生效

6.3?磁盤使用情況查看(df、du)

1)查看磁盤整體使用情況(df)

df -h
字段含義
Filesystem分區/掛載的設備路徑
Size分區總大小
Used已使用空間
Avail剩余空間
Mounted on掛載點(路徑)

2)查看某個目錄空間占用(du)

du -sh /var/log
  • -s:總計

  • -h:人類可讀(如 1G、5M)

查看子目錄大小:

du -h --max-depth=1 /home

6.4?LVM(邏輯卷管理器)

LVM 讓我們可以靈活地 擴容、縮容、快照磁盤空間,適合生產環境。

1)基本概念:

概念說明
PV (Physical Volume)物理卷,即物理硬盤/分區
VG (Volume Group)卷組,把多個 PV 組合成一組
LV (Logical Volume)邏輯卷,相當于“虛擬分區”可掛載

2)創建 LVM 示例

假設 /dev/sdb 是一塊新硬盤:

# 1. 創建物理卷
pvcreate /dev/sdb# 2. 創建卷組
vgcreate myvg /dev/sdb# 3. 創建邏輯卷(10G 大小)
lvcreate -L 10G -n mylv myvg# 4. 格式化
mkfs.ext4 /dev/myvg/mylv# 5. 掛載
mkdir /mnt/lvdata
mount /dev/myvg/mylv /mnt/lvdata

3)LVM 擴容操作

擴容邏輯卷(在線擴容):

# 1. 擴容 5G
lvextend -L +5G /dev/myvg/mylv# 2. 通知文件系統擴展
resize2fs /dev/myvg/mylv   # ext4

如果是 XFS 文件系統,使用:

xfs_growfs /mnt/lvdata

4)LVM 查看命令

pvs     # 查看所有物理卷
vgs     # 查看卷組信息
lvs     # 查看邏輯卷信息

6.5?磁盤擴容實戰流程(物理/虛擬機)

情景:VMware 或云服務器中添加了新磁盤 /dev/sdc

1)添加新磁盤后識別:

lsblk      # 查看是否識別
fdisk -l   # 磁盤分區工具

2)分區:

fdisk /dev/sdc
# n:創建新分區
# w:寫入

3)格式化:

mkfs.ext4 /dev/sdc1

4)掛載:

mkdir /mnt/newdisk
mount /dev/sdc1 /mnt/newdisk

5)加入 /etc/fstab 實現永久掛載:

echo "/dev/sdc1 /mnt/newdisk ext4 defaults 0 0" >> /etc/fstab
mount -a

6.6?實戰練習

目標命令
查看當前磁盤掛載情況df -h / mount
檢查某目錄占用最大du -h --max-depth=1 /var
掛載 ISO 文件為光盤mount -o loop file.iso /mnt/iso
創建一個 5G 的 LVM 卷pvcreate + vgcreate + lvcreate 三連
擴容邏輯卷并生效lvextend + resize2fs

6.7 小結

工具/命令功能
mount / umount掛載/卸載磁盤或目錄
df -h查看磁盤總體使用情況
du -sh查看目錄空間使用情況
pvcreate/vgcreate/lvcreate創建 LVM 各層級
lvextend + resize2fsLVM 在線擴容

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

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

相關文章

(LeetCode 每日一題) 2016. 增量元素之間的最大差值 (數組)

題目&#xff1a;2016. 增量元素之間的最大差值 思路&#xff1a;維護已遍歷過的最小值&#xff0c;時間復雜度0(n)。 C版本&#xff1a; class Solution { public:int maximumDifference(vector<int>& nums) {int mnnums[0];int ans0;for(int i1;i<nums.size()…

MySQL基礎與常用數據類型淺析

一.MySQL數據類型分類 二.數值類型 2.1int類型 我們使用TINYINT作為例子進行實驗驗證: 越界插入會直接報錯,跟我們當時學習語言的時候不太一樣,語言會進行隱式類型轉換或截斷.一般不會直接報錯.其他的int類型也是同理. 說明: 在MySQL中&#xff0c;整型可以指定是有符號的…

Ubuntu 20.04離線安裝Nvidia-docker

服務器因系統故障重裝&#xff0c;安裝docker容器時發現幾年前的在線安裝步驟不好使了&#xff0c;只好嘗試離線安裝。為了下次不卡殼&#xff0c;記錄一下安裝步驟。 先確定自己的操作系統&#xff0c;并確保已經安裝了nvidia driver。我的操作系統是Ubuntu 20.04。 1. 下載…

6,TCP客戶端

1,創建一個新的項目 2,界面設計

【dify更新問題】如何更新dify且低成本解決git pull 443問題

我的dify部署在mini server上&#xff0c;掛不了TZ&#xff0c;所以采用了如下辦法 更新origin (.git/config) 地址為&#xff1a;https://gitee.com/dify_ai/dify.git 順序執行 &#xff08;https://docs.dify.ai/en/getting-started/install-self-hosted/docker-compose#upg…

即時通訊消息推送技術深度解析:從底層原理到行業實踐-優雅草卓伊凡|片翼|擱淺

即時通訊消息推送技術深度解析&#xff1a;從底層原理到行業實踐-優雅草卓伊凡|片翼|擱淺 引言&#xff1a;重新啟程的即時通訊項目 優雅草科技的卓伊凡最近重啟了即時通訊項目的二次開發工作&#xff0c;在這個萬物互聯的時代&#xff0c;消息推送通知作為IM系統的核心功能之…

Joomla jdoc 語法使用介紹

jdoc 語句包含在每個 Joomla 模板中&#xff0c;用于指示 Joomla 或其擴展的其他部分輸出內容在整個網頁中的位置。本文將簡單的介紹一下Joomla模板開發中常用到的<jdoc>標簽語法&#xff0c;并且介紹不同類型的<jdoc>標簽元素的功能。 JDoc語句 一個典型的 jdoc…

Linux history 命令

Linux history 命令詳解 history 是 Linux 系統中一個非常實用的命令&#xff0c;用于查看、管理和操作當前 Shell 會話中執行過的命令歷史記錄。它可以幫助用戶快速重復執行命令、搜索歷史記錄、清除敏感命令等&#xff0c;極大地提高了命令行操作的效率。 一、基本用法 顯示…

側信道分析中的簡單模板攻擊(TA)Python實現(帶測試)

一、模板攻擊原理 模板攻擊&#xff08;Template Attacks, TA&#xff09;是一種高效的側信道分析方法&#xff0c;利用密碼設備運行時的物理泄漏信息&#xff08;如功耗&#xff09;恢復密鑰。其核心思想是通過建模密鑰相關中間值的泄漏特征&#xff0c;構建攻擊模板。模板攻…

AI集群全光交換網絡技術原理與發展趨勢研究

? 引言 隨著人工智能技術的飛速發展&#xff0c;AI訓練集群對網絡互連的帶寬、延遲和能效提出了前所未有的挑戰。全光交換網絡作為一種新興技術&#xff0c;正在成為解決這些挑戰的關鍵方案。 全光交換網絡的基本概念 全光交換網絡(Optical Circuit Switch, OCS)是一種利用…

PHP Swoft2 框架精華系列:Validator 校驗器詳解

文章目錄 校驗器校驗器類型@Validate 注解屬性說明校驗器校驗主要流程系統校驗器每個屬性存儲結構校驗器規則定義,注解、注解解析器定義校驗器注解使用實現一個自定義的校驗器校驗器注解校驗器注解解析器校驗器規則系統校驗器Controller/Action 綁定校驗器校驗器 校驗器是 sw…

MySQL 類型轉換與加密函數深度解析

MySQL 類型轉換與加密函數深度解析 一、類型轉換函數詳解 1. 顯式類型轉換 CAST 函數 CAST(expression AS type)支持類型&#xff1a;BINARY, CHAR, DATE, DATETIME, TIME, DECIMAL, SIGNED [INTEGER], UNSIGNED [INTEGER]示例&#xff1a;SELECT CAST(2023-08-15 AS DATE);…

FPGA基礎 -- Verilog 行為級建模之條件語句

Verilog 的行為級建模&#xff08;Behavioral Modeling&#xff09;中的條件語句&#xff08;Conditional Statements&#xff09;&#xff0c;逐步從基礎到實際工程應用&#xff0c;適合有RTL開發基礎但希望深入行為建模的人。 一、行為級建模簡介 行為級建模&#xff08;Beh…

linux618 NFS web.cn NFS.cn backup.cn

權限問題 推測 ssh root登錄失敗 root192.168.235.100s password: ???????? root192.168.235.100s password: ???????? root192.168.235.100s password: ???????? root192.168.235.100s password: ???????? root192.168.235.100s password: …

氧化鐿:稀土科技的“夜視高手”

氧化鐿&#xff08;Yb?O?&#xff09;是一種重要的稀土氧化物&#xff0c;這種略帶黃色的粉末&#xff0c;既不像黃金那樣耀眼&#xff0c;也不像稀土家族里的“明星”如釹、鋱那樣廣為人知&#xff0c;卻在背后默默支撐著許多高科技產業&#xff0c;特別是在紅外技術領域&am…

class對象【C#】2025復習

對象 西方思想是&#xff1a;復雜的事讓秘書去做就行。老板只需簡單的下達命令。 代碼格式如下 秘書類型 秘書A new 秘書類型(); . 秘書A.開始工作(); // 調用實例對象的方法。 特別注意的是&#xff0c;程序只會用到 秘書A&#xff0c;秘書B&…

Qt程序啟動動畫

一、Qt有3種方式實現程序啟動動畫&#xff08;介紹&#xff09; 1、QSplashScreen 靜態圖片(png、jpg等格式) 2、QMovie 動態圖片(gif格式) 3、QAxWidget 視頻(swf格式) 1.QSplashScreen 靜態圖片(png、jpg等格式) //創建啟動動畫類實例 QSplashScreen splash(QPixmap(&qu…

貪心算法經典問題

目錄 貪心思想 一、Dijkstra最短路問題 問題描述&#xff1a; 貪心策略&#xff1a; 二、Prim 和 Kruskal 最小生成樹問題 Prim 算法&#xff1a; Kruskal 算法&#xff1a; 三、Huffman樹問題 問題描述&#xff1a; 貪心策略&#xff1a; 四、背包問題 問題描述&a…

零知開源——STM32F4實現ILI9486顯示屏UI界面系列教程(一):電子書閱讀器功能

本教程將詳細介紹如何在零知增強板上使用3.5寸ILI9486顯示屏實現電子書閱讀器功能。我們將使用LVGL庫構建用戶界面&#xff0c;并實現翻頁、進度顯示等核心功能。 目錄 一、硬件連接 二、軟件UI組件實現 三、零知IDE配置 四、演示效果 五、常見問題解決 六、總結與擴展 一…

支持selenium的chrome driver更新到137.0.7151.119

最近chrome釋放新版本&#xff1a;137.0.7151.119 如果運行selenium自動化測試出現以下問題&#xff0c;是需要升級chromedriver才可以解決的。 selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only s…