Linux 常用命令模块一 · 专题二
Linux 智能运维与管理 · 2026—2027 学年第一学期

Linux 常用命令

模块一 · 专题二 —— 从文件操作到组合命令,逐步构建命令行基础。
4 次课 · 8 学时 · 理实一体,每课均有操作演示与验证闭环。

第 5—8 次课 任课教师:张娜
ls -lh ~ chmod 755 systemctl grep -i
student@centos7: ~ — 终端
# 本专题你将学会 $ ls -lh ~/linux-course drwxr-xr-x docs scripts notes $ id bob uid=1001(bob) gid=1001(bob) groups=1001(bob),1002(dev) $ systemctl status sshd Active: active (running) $ grep -i error /var/log/messages | wc -l 137
模块一 · 专题二|专题地图

本专题地图 · 4 次课 8 学时Course Map

从文件操作到组合命令,逐步构建命令行基础 —— 每次课都有明确的关键点与验证闭环。

30+ 条核心命令 5 项实训任务 6 个思考题 17 组课堂练习 17 项个人作业 每次课均有验证闭环
01

文件与目录操作

第 5 次课2 学时
ls -l查看目录内容与权限
cd / pwd切换目录、确认当前位置
mkdir -p一次创建多级目录
touch新建空文件
cp / mv复制与移动文件
rm -i交互式确认删除

教学目标熟练使用文件管理命令创建、查看和删除文件目录,正确使用绝对路径与相对路径。

重点 文件目录命令和路径表达
难点 通配符与路径组合,避免误删

关键点 · 通配符 作业 目录创建、文件生成与安全删除
02

用户与权限

第 6 次课2 学时
useradd创建用户账户
passwd设置与修改密码
groupadd创建用户组
gpasswd增删组成员
id查看身份与所属组
ls -l / chmod查看与设置权限

教学目标创建和维护用户、用户组,理解账户与权限边界并完成验证。

重点 账户、用户组和基本权限
难点 最小权限原则与权限验证

关键点 · 最小权限 作业 用户创建、用户组维护和权限验证
03

进程与服务

第 7 次课2 学时
ps aux进程静态快照
top实时资源与进程
kill -TERM终止指定进程
systemctl服务启动 / 停止 / 重启
systemctl status查看服务运行状态
journalctl -u查看服务日志

教学目标查看进程与资源状态,使用 systemctl 管理服务并处理异常进程。

重点 进程、服务状态查看与控制
难点 依据状态信息选择排障和控制方法

关键点 · 状态排障 作业 进程查看、服务启停和异常进程处理
04

管道与组合

第 8 次课2 学时
find按名称 / 条件查找文件
grep按内容筛选文本
wc -l / head统计行数、截取开头
|管道:输出接到下一条命令
> / >>输出重定向:覆盖 / 追加
2>错误流单独保存

教学目标组合文件和文本处理命令,完成查找、筛选、查看及结果保存。

重点 命令组合、管道和重定向
难点 根据任务选择命令并核对输出

关键点 · 文本流 作业 常用命令综合任务并提交操作记录
学习路径 第 5 次课单条命令 · 认识命令与参数▶ 第 5–6 次课带参数命令 · 同一命令不同用法▶ 第 6 次课通配符批量 · 一次操作多个对象▶ 第 8 次课管道组合 · 命令串成工作流
01

文件与目录操作

File & Directory
第 5 次课2 学时理实一体
重点ls / cd / pwd / mkdir / touch / cp / mv / rm,文件目录命令和路径表达
难点绝对路径、相对路径和通配符的组合使用,避免误删

核心方法:先画路径再操作;涉及多文件操作前,先用 ls 通配符预览匹配结果,确认无误再执行。

教学目标
01路径表达 区分绝对路径与相对路径,熟练使用 cd / pwd 完成目录切换。以 / 开头 → 绝对;否则 → 相对
02目录与文件操作 使用 mkdir / touch / rm 完成目录与文件的创建和删除,配合通配符批量操作。通配符批量操作
03结果验证 每次操作后用 ls -l / pwd 复核结果,避免误删文件。形成检查习惯
思考题:绝对路径和相对路径如何选择? 作业:完成目录创建、文件生成与安全删除任务
核心概念|路径表达

路径的两种写法

难点提示:从 Windows 的「C: 盘 D: 盘」盘符思维,转为 Linux「单根树形」路径思维。

/绝对路径

以 / 开头,从根目录定位,与当前位置无关。

/etc/sysconfig
/home/student/project

.相对路径

不以 / 开头,以当前目录为起点,用 . 和 ..。

documents/notes
../shared

目录树 · 单根结构
/ # 根目录,一切的起点 ├── etc/ # 配置文件 ├── home/ # 用户家目录 │ └── student/ # 当前用户主目录 ~ │ └── project/ # 相对路径起点示例 ├── var/ # 日志与缓存数据 └── usr/ # 系统程序与资源 $ cd /home/student/project # 绝对:从任意位置直达 $ cd ../shared # 相对:取决于当前在哪
实操要点:脚本中推荐绝对路径(不随工作目录变化),交互式操作用相对路径(更简短)。切换后立即用 pwd 确认当前位置。
课堂练习走通两条路约 5 分钟 · 当堂完成
  1. 先用绝对路径进入 /var/log 并 pwd 确认;再用相对路径从家目录出发进到同一位置,比较两条命令的差别。
  2. 人待在 /etc/sysconfig,用最短的一条命令回到家目录,再 pwd 验证。
个人作业建好班级目录与 45 位同学目录
  1. 切换到用户主目录,显示当前位置。
  2. 在主目录下创建班级目录(class01 或 class02,按自己所在班级选择)。
  3. 在自己的班级目录下,用一条命令创建 45 位同学的目录,分别为 stu1 到 stu45。
  4. 显示文件列表,验证创建成功。
  5. 将自己学号对应的学生目录,更名为 stu序号_姓名拼音(如 stu07_zhangsan)。
  6. 显示文件列表,验证修改成功。
  7. 从 /tmp 出发,只用一条命令(绝对路径)进入 ~/class0X/stu序号_姓名拼音 并显示当前位置。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
核心概念|通配符速查

通配符速查

Shell 先展开通配符再执行命令 —— 展开结果就是命令真正作用的对象。

*

任意长度任意字符

*.txt

?

单个任意字符

file?.log

[abc]

方括号内任一字符

[ABC]*.txt

[a-z]

范围内任一字符

[0-9]*.csv

{a,b}

花括号展开多项

*.{log,txt}

~

展开为当前用户主目录

cd ~/notes

实操要点:涉及多文件操作前,先用 ls 加同样通配符预览匹配结果,确认无误再执行 rm / mv。* 只在最后一步执行,杜绝「先删了再说」。
课堂练习先展开,再执行约 5 分钟 · 当堂完成
  1. 不看资料说出 * ? [abc] {a,b} 各匹配什么,并各举一个例子。
  2. 在任意目录分别执行 ls *.txt 和 ls *.txt*,对比两次结果,说明 Shell 到底先做了什么。
个人作业用通配符管理 6 个作业文件
  1. 进入个人目录 ~/class0X/stu序号_姓名拼音。
  2. 用一条命令创建 6 次作业的文件,分别为 work01.txt 到 work06.txt。
  3. 用一条通配符命令只列出 .txt 结尾的文件,确认数量为 6。
  4. 用一条通配符命令列出所有文件名以 work 开头、第 5 位为 0 的文件,说说你用的是哪个通配符。
  5. 将 work01.txt 复制为 work01.txt.bak,再用一条命令删除所有 .bak 文件。
  6. 显示文件列表,验证删除成功。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
命令速查表|8 个目录与文件命令

目录与文件基础命令

命令功能示例提示
pwd显示当前目录绝对路径pwd无参数,返回 /home/user
cd切换目录cd /etc/sysconfigcd ~ 回主目录,cd - 回上次所在目录
ls列出目录内容ls -lh /var/log-l -h -a 组合最常用:详情、易读容量、含隐藏文件
mkdir创建目录(可递归)mkdir -p project/src-p 一次创建多级目录,父目录不存在也能建
touch创建空文件或更新时间戳touch notes.txt配合 -d 可设置指定时间戳
cp复制文件或目录cp -r project project.bak复制目录必须加 -r,否则只能复制文件
mv移动文件或目录(也可改名)mv old.txt new.txt同一目录内移动就是改名,跨目录才是搬迁
rm删除文件或目录rm -i file.log无 -i 直接删除不确认,慎用 -rf
课堂练习ls -l 看得懂才算会约 5 分钟 · 当堂完成
  1. 执行 ls -l ~,指着输出说出:谁是属主、谁是属组、权限串一共多少位。
  2. 用 mkdir -p 一条命令创建 a/b/c 三级目录,再把它清理干净。
个人作业15 步文件目录综合练习
  1. 切换到用户主目录,显示当前位置。
  2. 在主目录下创建班级目录(class01 或 class02),在自己的班级目录下,创建 45 位同学的目录,分别为 stu1 到 stu45,一条命令创建。
  3. 显示文件列表,验证创建成功。
  4. 将自己学号的学生目录,更名为 stu序号_姓名拼音。
  5. 显示文件列表,验证修改成功。
  6. 在个人的学生目录中,创建 6 次作业的文件,分别为 work01.txt–work06.txt。
  7. 显示文件列表,验证创建成功。
  8. 复制个人的学生目录为 stu序号_姓名拼音_copy。
  9. 显示文件列表,验证创建成功。
  10. 将 stu序号_姓名拼音_copy 移动到主目录下。
  11. 显示文件列表,验证创建成功。
  12. 修改 stu序号_姓名拼音_copy 下的文件,work03.txt 更名为 work03_copy.txt。
  13. 显示文件列表,验证修改成功。
  14. 删除 stu序号_姓名拼音_copy。
  15. 显示文件列表,验证删除成功。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
操作演示|从零搭建项目目录结构

五步搭建 linux-course 项目目录

student@centos7: ~
# 步骤 1 · 进入工作区 $ cd ~ && pwd /home/student # 步骤 2 · 创建项目目录(mkdir -p 一次创建多级) $ mkdir -p linux-course/{docs,scripts,notes} # 步骤 3 · 用 touch 创建示例文件 $ touch linux-course/notes/{day1,day2,day3}.md # 步骤 4 · 用 ls -lh 验证(通配符批量查看) $ ls -lh linux-course/notes/*.md -rw-r--r-- 1 student student 0 10月 19 09:12 day1.md -rw-r--r-- 1 student student 0 10月 19 09:12 day2.md -rw-r--r-- 1 student student 0 10月 19 09:12 day3.md # 步骤 5 · 误操作前用 rm -i 安全删除 $ rm -i linux-course/notes/day3.md rm: remove regular empty file 'linux-course/notes/day3.md'? y
验证清单
  • pwd 输出以 /home/... 开头
  • find linux-course -type d 显示 3 个子目录
  • ls -lh 显示所有 .md 文件大小和时间
  • 删除前 -i 提示 y/n,严禁 rm -rf 通配符
复盘要点
  • 大括号 {a,b} 一次性创建多个同级目录
  • 通配符 * 仅在最后执行,先 ls 再 rm
  • cd - 回上一个目录,cd ~ 回主目录
课堂练习复述五步约 4 分钟 · 当堂完成
  1. 合上讲义,凭记忆写出搭建项目目录的五步;写不出来的步骤,回看操作演示再补上。
  2. 说说哪一步最容易出错,错了会看到什么报错信息。
个人作业按五步搭出自己的 linux-course
  1. 进入个人目录 ~/class0X/stu序号_姓名拼音,用 pwd 确认当前位置。
  2. 按课堂五步搭建 linux-course/{docs,scripts,notes} 三级目录。
  3. 在 notes 下用 touch 创建 day01.md、day02.md、day03.md 三个文件。
  4. 用 find linux-course -type d 显示目录结构,确认三级目录齐全。
  5. 用 ls -lh linux-course/notes/ 显示文件列表,确认三个 .md 都已创建。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
警示提示|rm 命令的安全边界

rm 通配符 + 根目录 = 系统级灾难

rm -rf /* 会从根目录开始强制删除所有文件,且多数情况下不可恢复。

典型事故案例
  • 在生产服务器误将通配符放进 rm,清空配置目录
  • 用 root 执行 rm -rf /path/* 时,变量未定义展开到根目录
  • 脚本内使用未校验的路径变量,导致关键目录被删
底线:root 身份下不手打通配符删除;删除不可恢复,没有「回收站」兜底。
三条防护做法
  1. 使用 -i 提示 rm -i file,每次删除前询问 y/n,适合关键文件。
  2. 先 ls 再 rm ls *.tmp → rm *.tmp,确认匹配结果与预期一致,再执行删除。
  3. 设置别名 alias rm='rm -i' 写入 ~/.bashrc,默认进入确认模式。
课堂练习为什么 rm -rf /* 不能试约 4 分钟 · 当堂完成
  1. 解释 rm -rf /* 为什么「多数情况下不可恢复」,-r 和 -f 各自贡献了什么。
  2. 说出 rm -i 的防护原理,以及它防不住哪种情况。
个人作业用 rm -i 演示一次安全删除
  1. 在个人目录下创建 trash 目录,放入 a.txt、b.txt、c.txt 三个文件。
  2. 先用 ls trash/ 确认要删的目标,再用 rm -i 逐个删除。
  3. 显示文件列表,验证删除成功。
  4. 在个人目录下创建 docs 目录并放入 note1.txt、note2.txt;先用 ls docs/ 确认内容,再用 rm -r docs 整个删除,最后用 ls 确认目录已不存在。
  5. 重建 trash 目录,在其中创建 safe-delete.txt,用 ls -l trash/ 确认它存在。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
02

用户与权限

Users & Permissions
第 6 次课2 学时理实一体
重点useradd / passwd / groupadd / gpasswd 及基本权限
难点最小权限原则与权限验证

核心方法:按「创建 → 授权 → 验证 → 回收」流程组织,使用 ls -l 和 id 核对结果。

教学目标
01账户与用户组 使用 useradd / passwd / groupadd / gpasswd 创建和维护账户与用户组。主组 + 附加组
02权限边界 理解账户、用户组和最小权限的关系,用 ls -l / id 核对结果。最小权限原则
03验证闭环 按「创建 → 授权 → 验证 → 回收」流程操作,任一步失败,回到上一步重新确认输入。四步闭环
思考题:为什么服务账户不应直接使用管理员权限? 作业:完成用户创建、用户组维护和权限验证
核心概念|Linux 账户体系与最小权限

U / G / L 三张卡片看懂账户体系

U三类账户

UID(User ID):系统的身份证号。

root(uid 0)/系统用户(uid<1000)/普通用户(uid≥1000)。

实操要点:root 可执行任何操作;普通用户需要提权;系统用户仅供服务使用。

G用户与组

GID(Group ID):用户组 ID。用户属于一个主组,可加入多个附加组。

/etc/passwd 账户
/etc/group 组
/etc/shadow 密码哈希

实操要点:三个文件各司其职,密码只以哈希形式存放。

L最小权限原则

为每个任务分配合适的最小权限集合,不多给、不少给。

实操要点:服务用专用系统账户;管理员操作需 sudo;禁止把所有权限都给 developer。
课堂练习读懂 id 输出约 5 分钟 · 当堂完成
  1. 执行 id,逐段说明 uid、gid、groups 分别是什么。
  2. 说出 root 的 uid 是多少,普通用户的 uid 一般从几开始。
个人作业查清自己的身份与归属
  1. 进入个人目录 ~/class0X/stu序号_姓名拼音。
  2. 依次执行 id 和 groups,说出自己的 UID、主组和附加组。
  3. 执行 cat /etc/passwd,找到自己用户名那一行,说出冒号分出的第 3 段是什么。
  4. 执行 ls -l /home,确认自己的家目录存在。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
命令速查表|用户与组的创建 / 修改

账户管理 8 条命令

命令功能示例关键参数
useradd创建新用户useradd username默认建家目录 /home/username;-m 确保创建,-G 指定附加组
passwd设置 / 修改密码passwd usernameroot 可省略用户名(修改他人);普通用户只能改自己
usermod修改账户属性usermod -aG dev bob-aG 追加加入附加组;-a 不能省,否则覆盖原组
userdel删除账户userdel -r username-r 同时删除家目录和邮件池
groupadd创建用户组groupadd groupname组是权限的集合,先建组再建用户更清晰
gpasswd管理组成员gpasswd -a bob dev-a 添加成员,-d 移除成员
id查询用户信息id bob一次显示 uid、gid 和全部 groups,验证首选
groups查询用户所在组groups bob不指定用户名就是当前登录用户
课堂练习八条命令各管哪一段约 5 分钟 · 当堂完成
  1. 把 useradd usermod userdel passwd 按「增 / 改 / 删 / 密」分类,各说一句用途。
  2. 说出 userdel 与 userdel -r 的区别,删错会丢什么。
个人作业创建以自己姓名学号命名的用户
  1. 创建用户 stu序号_姓名拼音(如 stu07_zhangsan)并设置密码;若已存在,先 userdel -r 再建。
  2. 用 id stu序号_姓名拼音 和 groups stu序号_姓名拼音 两条命令,验证账户已创建、归属正确。
  3. 先不要删除这个用户,下一次课的个人作业还要用它。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
操作流程|新用户创建与权限验证

创建 → 授权 → 验证 → 回收

STEP 1 · 创建组
建立共享组
groupadd dev

先建组,用户直接归属,权限按组下发。

STEP 2 · 创建用户
新建并加入组
useradd -m -G dev bob

-m 建家目录,-G 一次性加入 dev 附加组。

STEP 3 · 设置密码
初始口令
passwd bob

root 可直接指定他人密码;提醒用户首登修改。

STEP 4 · 权限验证
核对身份与访问
su - bob groups ls -l /shared

确认所属组与可访问目录,与预期一致才算完成。

STEP 5 · 回收
清理账户
gpasswd -d bob dev userdel -r bob

练习结束后回收权限、删除账户,不留冗余。

验证闭环:创建 → 登录 → 切换 → 复核。任一步失败,回到上一步重新确认输入,不要在错误状态上继续叠加操作。
课堂练习四步顺序不能乱约 5 分钟 · 当堂完成
  1. 默写「创建 → 授权 → 验证 → 回收」四步,并说出每一步用哪条命令。
  2. 为什么「先授权再验证」不能颠倒?颠倒了会看到什么假象。
个人作业让自己的用户进得了自己的目录
  1. 用 useradd -m stu序号_姓名拼音 创建自己的用户,用 ls -l /home 确认家目录属主就是本人——-m 会自动建好家目录并设好属主,不需要手动改。
  2. 用 chmod 700 把家目录权限设为 700,再用 ls -l /home 验证权限串。
  3. 执行 su - stu序号_姓名拼音 切到该用户,在家目录下 touch ok.txt。
  4. 显示文件列表,验证创建成功。
  5. 退出后执行 userdel -r stu序号_姓名拼音 回收,再用 id stu序号_姓名拼音 确认已不存在。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
核心概念|权限模型 · 读懂 ls -l

十位权限串,四段各司其职

ls -l 输出示例
drwxr-xr--
1 位 · 类型标识d=目录 · -=文件 · l=链接
2-4 位 · Owner 属主文件所有者的权限
5-7 位 · Group 属组所属组成员的权限
8-10 位 · Others 其他人其他任何用户的权限
安全提示:最小权限原则 —— 不要随意给 777;通过组管理权限,比逐个用户管理更高效。
权限对文件的作用对目录的作用
r (Read)查看内容(cat)列出文件名(ls)
w (Write)修改内容(vim)创建 / 删除文件
x (Exe)运行脚本进入目录(cd)
三类身份
Owner 属主/ Group 属组/ Others 其他人

每个文件按三类身份各持一组独立权限位;超级用户 root 不受限制,因此判断「能不能做」要以实际登录身份为准。

课堂练习十位串逐段拆约 5 分钟 · 当堂完成
  1. 写出 -rw-r----- 每一位的含义,并翻译成数字法。
  2. 说出 644 与 755 的差别,「可执行」体现在哪一位。
个人作业perm.txt 的权限改造
  1. 在个人目录下用 touch 创建 perm.txt。
  2. 用数字法把 perm.txt 权限设为 640:chmod 640 perm.txt。
  3. 用符号法给属组加执行权限:chmod g+x perm.txt。
  4. 每执行一步就跟一次 ls -l perm.txt,让终端里留下权限串的完整变化过程。
  5. 最后再执行一次 ls -l perm.txt,核对最终权限是否与预期一致。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
实操命令|修改权限 · chmod 两种写法

符号法与数字法

S符号法 Symbolic

chmod [对象][操作][权限] 文件

对象 u 属主 · g 属组 · o 其他
操作 + 添加 · - 移除 · = 覆盖

$ chmod u+x script.sh # 给属主加上执行权限 $ chmod o-r secret.txt # 禁止其他人读取

适合对单个权限做微调,不影响其他位。

N数字法 Numeric

r=4  w=2  x=1

每位按 4+2+1 相加求和,三位一组写权限。

$ chmod 755 dir/ # rwx r-x r-x 属主全权限,属组/其他读+执行 $ chmod 644 data.txt # rw- r-- r-- 属主可读写,其余只读
755 目录 / 脚本 644 普通数据文件 600 私钥等敏感文件
口诀:每位按 4+2+1 相加求和。改完立即用 ls -l 复核权限串是否与预期一致。
课堂练习两种写法互转约 5 分钟 · 当堂完成
  1. 把 755 644 600 写成符号法,再把 u+x,go-w 写回数字法。
  2. 说说两种写法各自适合什么场景,什么情况下其中一种明显更快。
个人作业三步走改权限,截图留迹
  1. 对个人目录下的 perm.txt 依次执行 chmod u+x、chmod go-w、chmod 600。
  2. 每执行一步就跟一次 ls -l perm.txt,三次输出按顺序留在终端里。
  3. 最后执行一次 ls -l perm.txt,确认最终权限为 -rw-------。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
03

进程与服务

Processes & Services
第 7 次课2 学时理实一体
重点ps / top / kill / systemctl,进程、服务状态查看与控制
难点根据进程和服务状态选择控制、排障方法

核心方法:提供故障进程样例,按「观察 → 判断 → 操作 → 复测」闭环指导。

教学目标
01进程查看 使用 ps / top 查看进程与资源状态,按 CPU / 内存占用定位异常进程。静态快照 vs 动态实时
02服务管理 使用 systemctl 完成服务启停、自启动配置与状态查看。start/stop 与 enable 的区别
03异常处理 按「观察 → 判断 → 操作 → 复测」闭环处理异常进程,日志看 journalctl。先证据后操作
思考题:进程和服务有什么联系与区别? 作业:完成进程查看、服务启停和异常进程处理任务
概念区分|进程 vs 服务

进程是运行的实例,服务是 systemd 管理的常驻进程

P进程 Process

  • 系统中正在运行的程序实例
  • 每个进程有唯一 PID(进程号)
  • 按生命周期运行:启动 → 运行 → 终止
  • 由用户直接启动或由其他进程派生
  • 异常需要 kill / kill -9 结束
# 查看命令 $ ps aux $ top $ pgrep -f sshd

S服务 Service

  • 由 systemd 管理的常驻守护进程
  • 提供网络、数据库、应用等能力
  • 由 Unit 文件描述,systemd 拉起
  • 具备自启动 / 依赖关系 / 日志接口
  • 用 systemctl 启停,日志看 journalctl
# 管理命令 $ systemctl is-active sshd $ systemctl {start,status,enable,stop} sshd $ journalctl -u sshd --since '-1h'
判断顺序:先 systemctl status 看服务状态,再 ps 看进程是否真的活着 —— 进程存在 ≠ 已设开机自启。
课堂练习分清实例与常驻约 4 分钟 · 当堂完成
  1. 各举 3 个例子:你敲完就结束的进程、开机就常驻的服务。
  2. 说出「进程是运行的实例,服务是 systemd 管理的常驻进程」这句话里,两者的分界点。
个人作业抓一个进程、抓一个服务
  1. 进入个人目录 ~/class0X/stu序号_姓名拼音。
  2. 执行 ps aux | head -20,找出 PID 最小的那个进程,记下名字和 PID。
  3. 执行 systemctl status sshd,记下 sshd 的 PID、Load 状态和 Active 状态。
  4. 用 pgrep -f sshd 核对上一步记下的 PID 是否一致。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
命令速查表|进程查看与定位

六种查看方式,按场景选用

命令功能示例说明
ps aux静态查看所有进程ps aux | head -10USER / PID / %CPU / %MEM 等列,适合留取快照
ps -ef完整格式查看ps -ef | grep sshdPPID 列显示父进程,适合追来源
top动态实时查看top -d 1按 P / M 排序 CPU / 内存
pgrep -f按名称 / 正则找 PIDpgrep -f 'sshd -D'返回进程号列表,适合脚本使用
pidof按可执行文件名取 PIDpidof sshd仅匹配可执行文件名,输出更干净
ps -L查看线程ps -L -p <pid>LWP 列显示线程号,多线程服务排障用
netstat -tulnp
或 ss -tulnp
查看端口占用netstat -tulnp | grep :80t=TCP / u=UDP / l=监听 / n=数字 / p=进程名,查哪个进程占了哪个端口
课堂练习按场景选工具约 5 分钟 · 当堂完成
  1. 填写对应关系:看资源占用选 ____;只看某个服务选 ____;看进程树选 ____;看端口占用选 ____。
  2. 说出 pgrep 与 ps aux | grep 的分工差别。
个人作业从名字到 PID 到详情
  1. 用 pgrep -a sshd 拿到 sshd 的 PID。
  2. 用 ps -p <上一步的 PID> -o pid,ppid,user,cmd 只显示这一个进程。
  3. 照输出说出 pid、ppid、user、cmd 四列各是什么含义。
  4. 再用 ps -ef | head -5 看一遍,比较与上一种写法在列上的差别。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
systemctl 子命令矩阵|服务的启停 / 自启动 / 状态

8 个子命令覆盖日常服务管理

1start

systemctl start <u>

启动服务,立即拉起,不保证开机自启。

2stop

systemctl stop <u>

停止服务,立即停止正在运行的实例。

3restart

systemctl restart <u>

重启服务,stop + start 组合。

4reload

systemctl reload <u>

重载配置,不中断服务,SIGHUP 重读配置。

5enable

systemctl enable <u>

设置开机自启,创建符号链接到 multi-user。

6disable

systemctl disable <u>

取消开机自启,删除 .wants 链接。

7status

systemctl status <u>

查看状态,输出 active / inactive 与最近日志。

8list-units

systemctl list-units

列出所有 Unit,可按状态 / 类型过滤。

易错点:start 只管当前运行,enable 才管开机自启 —— 两者独立,重启后要分别验证。
课堂练习八个子命令归两类约 5 分钟 · 当堂完成
  1. 把 8 个子命令分成「当下生效」和「开机生效」两组,说出每组各管什么。
  2. 说出 restart 与 reload 的区别,什么情况下只能用 restart。
个人作业sshd 四步操作留证
  1. 依次执行:systemctl is-active sshd → systemctl status sshd(看前两行)→ systemctl restart sshd → 再 systemctl is-active sshd。
  2. 执行 journalctl -u sshd --since '-1h' 查看最近日志,确认 restart 被记录下来。
  3. 对比两次 is-active 的输出,确认重启后服务回到 active 状态。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
排障流程|异常进程的发现 → 终止 → 复盘

五步处理异常进程

STEP 1 · 发现异常
谁在占用资源
top pgrep -f <name>

通过 CPU / 内存占用或响应时间发现。

STEP 2 · 定位详情
确认来源再动手
ps -p <pid> -o pid,ppid,cmd

确认进程来源和完整命令,避免误杀。

STEP 3 · 尝试停止
给进程清理机会
kill <pid> kill -TERM <pid> # 等同 -15

默认 SIGTERM,进程可捕获并做善后。

STEP 4 · 强制终止
SIGKILL 不可捕获
kill -9 <pid> systemctl restart <u>

仅当 SIGTERM 30 秒未响应时使用。

STEP 5 · 复盘记录
写入运维知识库
journalctl -u <u> --since '-1h'

整理时间线,写入排障报告。

复测:终止后再次 top 确认资源回落、systemctl status 确认服务状态,形成「观察 → 判断 → 操作 → 复测」闭环再收工。
课堂练习五步顺序背出来约 4 分钟 · 当堂完成
  1. 默写处理异常进程的五步,并说出哪一步最容易被跳过、跳过会有什么后果。
  2. 说出 kill 默认发的信号编号,以及「杀不掉」时该换哪个信号。
个人作业按五步闭环终止一个进程
  1. 打开两个终端标签:在标签 A 中前台运行 sleep 300,让它一直占住前台。
  2. 在标签 B 中用 pgrep -f sleep 找到它的 PID(发现异常)。
  3. 用 ps -p <上一步的 PID> -o pid,ppid,cmd 确认进程来源和完整命令(定位详情)。
  4. 执行 kill <PID> 终止它,回到标签 A 确认命令已经结束(尝试停止)。
  5. 再用 pgrep -f sleep 确认进程已消失(复测闭环)。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
04

管道与组合

Pipes & Redirection
第 8 次课2 学时理实一体
重点cp / mv / find / cat / grep、管道和重定向
难点组合命令完成文件查找、文本筛选和结果保存

核心方法:用逐步加管道的方式拆解命令,要求保留原始输入和结果文件。

教学目标
01查找与筛选 使用 cp / mv / find / cat / grep 完成文件复制移动、查找与文本筛选。find 找文件,grep 找内容
02管道组合 使用 | 串联命令,逐步加管道拆解复杂任务。一段链路一个职责
03重定向保存 使用 > >> 2> 保存输出与隔离错误,保留原始输入和结果文件便于回溯。先落地,再统计
思考题:管道与重定向分别解决什么问题? 作业:完成常用命令综合任务并提交操作记录
核心概念|三类标准流

stdin / stdout / stderr

每个命令运行时默认打开三个「通道」,管道和重定向都是在改接这三个口。

0stdin 标准输入

键盘、文件、管道来源

cat < list.txt

1stdout 标准输出

终端、文件、管道下一级

ls > list.txt

2stderr 标准错误

独立通道,便于日志分离

find / 2> err.log

数据流向示意
键盘 / 文件stdinfd 0 命令stdoutfd 1 终端 / 下一命令 └─ stderr(fd 2)─▶ 终端 / 日志文件
记忆法:0 进、1 出、2 报错。| 把「出」接到下一命令的「进」;> 把「出」改道到文件;2> 把「报错」单独改道。
课堂练习三个口各接哪约 5 分钟 · 当堂完成
  1. 说出 stdin / stdout / stderr 默认分别接到哪里,文件描述符编号各是多少。
  2. 为什么错误信息不会跟着 > 一起进文件?要它进去该写什么。
个人作业把正确与错误分两个文件收
  1. 进入个人目录,执行 ls /etc > out.txt 2> err.txt,再用 wc -l 看两个文件各多少行。
  2. 再执行一条一定报错的命令(如 ls /no-such-dir),把正确输出和错误分别追加到上面两个文件(用 >>)。
  3. 在 err.txt 末尾追加一行自己的姓名和学号。
  4. 显示两个文件的内容,验证追加成功。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
命令组合|管道与重定向 4 种典型用法

四种改接方式

|

管道 · 前一条命令的 stdout 接给下一条 stdin

$ ps aux | grep nginx | head -5 # 三段链路:进程快照 → 关键字过滤 → 取前 5 行

>

覆盖重定向 · 把 stdout 写入文件

$ ps aux > snapshot.txt # 小心使用,目标文件原有内容全部丢失

>>

追加重定向 · stdout 追加到文件末尾

$ echo '[OK] service started' >> /var/log/runtime.log # 配合日志轮转是常见组合

2>

错误重定向 · 把 stderr 单独写到文件

$ find / -name '*.conf' 2> /tmp/find.err # 权限噪音隔离,stdout 保持干净
组合原则:一条命令里管道不宜超过 3 段;中间断了难定位时,逐段执行看每步输出。
课堂练习四种符号不混约 5 分钟 · 当堂完成
  1. 说出 | > >> 2> 各自在改接哪个口、结果有什么不同。
  2. 往同一个文件连续执行两次 > 和两次 >>,各会看到什么?
个人作业统计自己的目录并留痕
  1. 用一条管道统计个人目录里的文件个数:ls ~/class0X/stu序号_姓名拼音 | wc -l。
  2. 在个人目录下创建 count.txt,第一行写上姓名和学号,之后写入上一步的命令和统计结果。
  3. 执行 ps aux | grep sshd | head -5,把结果写入 ps.txt。
  4. 在 count.txt 末尾写一句:管道和重定向的本质差别是什么。
  5. 显示文件内容,验证写入成功。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
综合实战|日志关键字筛查 · 4 步组合

从原始日志到统计结果

student@centos7: ~
# 步骤 1 · 查看错误日志原始片段 $ sudo tail -200 /var/log/messages # 步骤 2 · 过滤含 'error' 的行 → 写入中间文件 $ sudo grep -i 'error' /var/log/messages > /tmp/errs.txt # 步骤 3 · 统计行数 + 只看前 20 条 $ wc -l /tmp/errs.txt 137 /tmp/errs.txt $ head -20 /tmp/errs.txt # 步骤 4 · 把 stderr 单独留档,stdout 仅看统计 $ sudo grep -R 'fail' /etc/systemd/ 2> /tmp/grep.err | wc -l
方法论
  • 先采样(tail / head)再过滤(grep)
  • 中间结果落地文件,便于回溯
  • 用 > 保存关键输出,2> 隔离错误
  • 最后 wc / sort / uniq 统计汇总
常见误区
  • 一条命令里塞太多管道,中间断了难定位
  • 不保留原始日志,无法复现
  • grep 关键字写错,过滤后毫无输出
课堂练习复述整条链路约 5 分钟 · 当堂完成
  1. 凭记忆画出「原始日志 → 统计结果」的命令链,标出每一段在改接哪个口。
  2. 如果想让统计结果既存文件、又在屏幕上看一眼,你怎么办?
个人作业产出你自己的 report.txt
  1. 用一条管道命令统计 /var/log/messages 中含 error 的行数。
  2. 在个人目录下创建 report.txt,第一行写上姓名和学号,之后写入命令原文和统计结果。
  3. 执行 ls -l 显示个人目录文件列表,确认 report.txt 在里面。
截图上传:将终端中的操作过程与验证结果截图,上传到本专题对应作业。
本专题小结|4 主题知识地图

常用命令知识地图Knowledge Map

01

文件与目录

路径 · 通配符
pwd确认当前位置
ls -l查看内容与权限
cd绝对 / 相对路径切换
mkdir -p多级目录一次创建
touch新建空文件
rm -i确认后再删除

核心要点路径表达分清绝对与相对;通配符实现安全批量操作。

口诀 先 ls 看清,再 rm 删除

易错点 通配符配根目录 = 系统级灾难,删除前必须确认目标
02

用户与权限

账户 · 最小权限
useradd创建用户账户
passwd设置与修改密码
groupadd创建用户组
gpasswd维护组成员
id查看身份与所属组
chmod / ls -l设置与查看权限

核心要点三类账户与用户组体系;十位权限串按 属主/属组/其他 三段解读。

口诀 创建 → 授权 → 验证 → 回收

易错点 服务账户不直接给管理员权限,改完必须用 id / ls -l 复核
03

进程与服务

状态 · 排障
ps aux进程静态快照
top实时资源与进程
pgrep按名称查 PID
kill -TERM终止指定进程
systemctl服务启动 / 停止 / 重启
journalctl -u查看服务日志

核心要点进程是运行实例,服务是 systemd 管理的常驻进程;按状态信息选排障方法。

口诀 观察 → 判断 → 操作 → 复测

易错点 start/stop 只管本次运行,enable 才管开机自启,分开验证
04

管道与组合

文本流 · 组合
find按名称 / 条件查找文件
grep按内容筛选文本
wc -l / head统计行数、截取开头
|管道:输出接到下一条命令
> / >>输出重定向:覆盖 / 追加
2>错误流单独保存

核心要点stdin / stdout / stderr 三股流;管道传正确结果,重定向存文件。

口诀 逐步加管道,保留原始输入与结果

易错点 > 会覆盖原文件,追加要用 >>,输出前先确认目标
贯穿主线:每条命令都遵循「输入 → 执行 → 输出 → 验证」四段式;先确认当前位置和身份,再执行,最后复核结果。
综合实训任务|按步骤完成并提交操作记录

5 项任务,覆盖本专题全部命令Lab Tasks

每项任务按步骤逐条完成,最后统一「截图上传」;步骤中涉及姓名、学号的位置,一律按题目要求写入。

5 项任务 建议总用时约 70 分钟 当堂完成 + 截图提交
1

目录搭建任务 1 · 约 10 分钟

在自己的班级目录(class01 或 class02)下,用一条命令创建 45 位同学的目录 stu1 到 stu45;再将自己学号对应的目录更名为 stu序号_姓名拼音。

2

权限准备任务 2 · 约 15 分钟

创建 ops-team 组,新建用户 stu序号_姓名拼音 并加入 ops-team,设置密码,用 id 验证。

3

进程观察任务 3 · 约 10 分钟

用 ps aux | head 抓取进程快照,用 grep -i ssh 过滤后写入个人目录下的 ssh.txt。

4

服务演练任务 4 · 约 15 分钟

systemctl status sshd → stop → start → enable 完成四步,把每步状态变化记录进个人目录下的 svc-log.txt。

5

日志组合任务 5 · 约 20 分钟

从 /var/log/messages 中 grep 'error' → wc -l → 按时间排序取前 10 条,连同姓名和学号写入个人目录下的 report.txt。

提交方式:按上面 5 项任务的步骤逐条完成,每项任务最后一步均为「显示文件列表验证 + 截图上传」;个人目录统一命名为 stu序号_姓名拼音,方便逐一核对。
本专题思考题|先自己想,再看答案

六个问题检验掌握程度Self-test

先自行作答,再点击展开答案核对;错 2 题以上的,回头重看对应小节。

Q1绝对路径与相对路径使用场景如何区分?
参考答案:脚本、服务配置里用绝对路径——不随工作目录变化,任何人、任何目录下执行结果都一致;交互式操作用相对路径——更短更快。拿不准时先用 pwd 确认当前位置。
Q2rm 通配符操作前应做什么验证?
参考答案:三步不能省——①先用 ls 加同样的通配符预览匹配范围,确认与预期一致;②关键文件用 rm -i 逐个确认;③root 身份下不做通配符删除。先 ls 再 rm,顺序不能反。
Q3为什么服务账户不应直接使用管理员权限?
参考答案:最小权限原则。服务只拥其运行所需权限,一旦服务被攻破,攻击者只能拿到服务账户的权限面,影响可控;直接给 root 等于服务失陷即系统失陷。
Q4usermod -aG 中 -a 为什么不能省?
参考答案:-a 是 append(追加)。省略 -a 时,usermod 会用新组列表覆盖用户原有的全部附加组,用户被移出未列出的组;-aG 才是「保留原有附加组、再新增一个」。
Q5进程和服务有什么联系与区别?
参考答案:进程是正在运行的程序实例,用 ps / top / pgrep 观察,命令结束进程就消失;服务是交给 systemd 接管管理的常驻进程,支持开机自启、依赖编排、崩溃重启。服务背后一定是进程,但临时命令产生的进程不都是服务。
Q6管道与重定向分别解决什么问题?
参考答案:管道 | 把前一条命令的标准输出接到后一条命令的标准输入,现场加工、不落盘;重定向 > / >> 把输出写入文件(覆盖 / 追加),2> 单独保存错误流。管道负责传结果,重定向负责做持久化。
下节预告 · 模块二 专题一「磁盘管理」:df / du 空间监控;fdisk / parted 分区;mkfs / mount 文件系统;磁盘配额 + Vim 编辑。
课后作业:①完成文件与目录综合练习,提交命令与结果截图;②创建专属用户并配置权限,验证最小权限原则;③使用 systemctl 管理指定服务并记录状态变化;④用管道与重定向完成日志统计小任务。
Linux 智能运维与管理 · 模块一 专题二 · Linux 常用命令 student@centos7:~$ exit → logout