一、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…