示例系统 centos7
1. 概览与下载
- 发行版:CentOS 等 RHEL 系(已进入停更阶段,生产建议迁移至 Rocky Linux / AlmaLinux 或 RHEL)
- 下载:请从对应发行版官网或权威镜像站获取 ISO 镜像
https://mirrors.aliyun.com/centos/7/isos/x86_64/
2. 文件系统与目录结构
2.1 顶层目录释义
| 目录简写 | 全称(英文) | 核心含义 |
|---|---|---|
/bin |
Binary | 普通用户常用的可执行二进制命令(如 ls、cp)。 |
/boot |
--- | 系统启动核心文件(内核、引导加载器配置、initramfs)。 |
/dev |
Device | 设备文件,将硬件抽象为文件(如 /dev/sda、/dev/tty)。 |
/etc |
Etcetera | 系统与应用配置文件(网络、服务、用户权限等)。 |
/home |
--- | 普通用户家目录(如 /home/username)。 |
/lib |
Library | 共享库文件(类似 Windows .dll)。 |
/lib64 |
--- | 64 位程序的共享库。 |
/media |
--- | 可移动介质的自动挂载点(U 盘、光盘)。 |
/mnt |
Mount | 临时手动挂载点(分区、网络共享等)。 |
/opt |
Optional | 第三方或可选软件包。 |
/proc |
Process | 虚拟文件系统,反映内核与进程状态(如 /proc/cpuinfo)。 |
/root |
--- | root 用户的家目录。 |
/run |
--- | 运行时信息(PID 等),重启后清空。 |
/sbin |
System Binaries | 系统管理命令(如 fdisk、systemctl,通常需 root)。 |
/srv |
Service | 服务数据(如 Web 站点文件)。 |
/sys |
System | 虚拟文件系统,暴露硬件与内核对象信息。 |
/tmp |
Temporary | 临时文件,系统或定期任务会清理。 |
/usr |
Unix System Resources | 用户级核心资源(程序、库、文档、头文件等)。 |
/var |
Variable | 动态变化数据(日志 /var/log、队列、缓存)。 |
3. 常用命令速查
3.1 系统信息
uname -a显示全部系统信息cat /etc/redhat-release查看 CentOS 版本hostname显示主机名free -h查看内存使用情况df -h查看磁盘使用情况top或htop实时显示资源占用
3.2 文件操作
- 列出与查看
ls列出目录内容cat 文件查看文件内容pwd显示当前工作目录more 文件分页输出less 文件上下翻页浏览head 文件前 10 行,tail 文件后 10 行
- 创建
touch 文件创建空文件mkdir 目录创建目录,-p递归创建多级目录
- 删除
rm 文件删除文件rm -rf 目录递归删除目录及其内容rmdir 目录仅删除空目录
- 移动与重命名
cd 目录切换目录cp 源 目标复制文件或目录mv 源 目标移动或重命名(移动到路径则为移动)
3.3 文件查找与搜索
find 路径 -name "文件名"按名称查找grep 模式 文件在文件中查找文本grep -r 模式 目录递归搜索locate 文件名快速定位(依赖数据库)
3.4 压缩与解压
tar -czvf 文件.tar.gz 目录打包 gziptar -xzvf 文件.tar.gz解包 gziptar -cjvf [文件.tar.bz](http://文件.tar.bz)2 目录打包 bzip2tar -xjvf [文件.tar.bz](http://文件.tar.bz)2解包 bzip2zip -r [文件.zip](http://文件.zip) 目录创建 zipunzip [文件.zip](http://文件.zip)解压 zip
3.5 进程管理
ps aux查看所有进程kill PID终止指定 PIDkillall 进程名按名称终止pgrep 进程名查找 PIDnohup 命令 &后台运行并忽略挂起
3.6 网络
ifconfig或ip addr查看网卡与 IPping 主机测试连通性netstat -tulpn或ss -tulpn查看监听端口firewall-cmd --state防火墙状态firewall-cmd --list-all查看规则firewall-cmd --add-port=端口/协议临时开放端口
3.7 软件包管理(YUM / RPM)
yum update更新所有包yum install 包名安装yum remove 包名卸载yum search 关键词搜索rpm -qa列出已安装包rpm -qi 包名查看包信息
3.8 服务管理(systemd)
systemctl start 服务启动systemctl stop 服务停止systemctl restart 服务重启systemctl status 服务状态systemctl enable 服务开机自启systemctl disable 服务取消自启
4. 权限与身份
4.1 权限位说明
| 权限符号 | 英文 | 数字 | 对文件 | 对目录 |
|---|---|---|---|---|
r |
Read | 4 | 读取内容(cat、less) |
列出目录(ls) |
w |
Write | 2 | 修改内容(vim、echo) |
在目录内创建/删除/重命名(touch、rm、mv) |
x |
Execute | 1 | 执行文件(脚本/二进制) | 进入目录(cd) |
- 所有者 Owner(u):对应前 3 位
- 所属组 Group(g):对应中 3 位
- 其他人 Others(o):对应后 3 位
- UID:0--999 多为系统账号,从 1000 起为普通用户(不同发行版策略可能略有差异)
- 示例管道:
ls /dev | grep sd列出设备并筛选包含 sd 的条目 - 身份与权限相关命令:
useradd 用户新建用户passwd 用户设置密码userdel 用户删除用户groupadd 组新建组chmod 权限 文件改权限chown 用户:组 文件改所有者su 用户切换用户sudo 命令提升权限执行
5. 磁盘与分区
5.1 MBR 与 GPT 对比
| 维度 | MBR | GPT |
|---|---|---|
| 分区数量 | 最多 4 个主分区,或 3 主 + 1 扩展分区 | 默认支持 128 个分区 |
| 逻辑分区 | 扩展分区内可建多个逻辑分区 | 不区分逻辑分区 |
| 单分区容量 | ≤ 2TB(传统 32 位 LBA 限制) | 最高可至 16EB |
| 总容量 | ≤ 2TB(典型实现) | 可达 8ZB |
| 固件支持 | BIOS | UEFI |
| 地址空间 | 32 位 LBA | 64 位 LBA |
| 备份/校验 | 无 | 有备份分区表与 CRC32 校验 |
| 常用工具 | fdisk |
parted |
- 磁盘命名:
/dev/sda、/dev/sdb... 最多到sdz - 分区命名:
/dev/sda1、/dev/sda2... - 提示:通常起始扇区在 2048 以确保 4K 对齐;U 盘"快速格式化"多只重建分区表与文件系统元数据,数据可能可通过专业工具恢复
5.2 常用命令
fdisk -l列出磁盘与分区(MBR 为主)parted -l查看 GPT 详情lsblk -f以树形展示设备与文件系统blkid查看 UUID 与类型
6. LVM(逻辑卷管理)
LVM 三层结构:PV(物理卷)→ VG(卷组)→ LV(逻辑卷)。
- PV:在物理磁盘上初始化得到,划分为 PE(Physical Extent)最小分配单元
- VG:聚合多个 PV 形成容量池
- LV:从 VG 中按需切割逻辑卷,支持在线扩容/缩容(在确保文件系统支持的情况下)
6.1 示例操作记录
bash
# 初始化 PV
pvcreate /dev/sdc1
# 创建 VG(将 /dev/sdb 与 /dev/sdc1 聚合)
vgcreate vg1 /dev/sdb /dev/sdc1
vgs
# 创建 LV
lvcreate -L 8G -n lv1 vg1
lvs
# 创建文件系统并挂载
mkfs.ext4 /dev/vg1/lv1
mount /dev/vg1/lv1 /path/to/Test
原始日志节选:
刘洋(教师) 2025/10/21 14:34:10
... commands output ...
7. 启动流程与固件
- BIOS:传统固件,通电自检后按启动顺序查找引导设备
- UEFI:新一代固件,配合 GPT,支持更大磁盘与图形化配置
- 引导过程要点:固件 → 引导加载器(如 GRUB)→ 内核与 initramfs → systemd
8. 磁盘健康与坏块检测
- SMART 信息:
smartctl -a /dev/sda - 坏块扫描:
badblocks -v /dev/sda(谨慎使用,避免写入破坏数据)
9. Shell 常用提示
- 命令行提示符:账户名@主机名
- 提权与切换:
sudo、sudo su、exit - 帮助与历史:
man、--help、history - 屏幕管理:
clear
附:示例与片段
- 管道符号:
|将前一命令输出作为后一命令输入 - 示例:
ls /dev | grep sd