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

Linux 常用命令

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

第 5—8 次课 软件 25 级(高职) 任课教师:张娜 超星学习通 · 智慧职教
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 学时

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

30+ 条核心命令 5 项实训任务 6 个思考题 每次课均有验证闭环
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

文件与目录操作

第 5 次课2 学时理实一体
重点ls / cd / pwd / mkdir / touch / 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 确认当前位置。
核心概念|通配符速查

通配符速查

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

*

任意长度任意字符

*.txt

?

单个任意字符

file?.log

[abc]

方括号内任一字符

[ABC]*.txt

[a-z]

范围内任一字符

[0-9]*.csv

{a,b}

花括号展开多项

*.{log,txt}

~

展开为当前用户主目录

cd ~/notes

实操要点:涉及多文件操作前,先用 ls 加同样通配符预览匹配结果,确认无误再执行 rm / mv。* 只在最后一步执行,杜绝「先删了再说」。
命令速查表|6 个目录与文件命令

目录与文件基础命令

命令功能示例提示
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 可设置指定时间戳
rm删除文件或目录rm -i file.log无 -i 直接删除不确认,慎用 -rf
操作演示|从零搭建项目目录结构

五步搭建 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 ~ 回主目录
警示提示|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,默认进入确认模式。
02

用户与权限

第 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。
命令速查表|用户与组的创建 / 修改

账户管理 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不指定用户名就是当前登录用户
操作流程|新用户创建与权限验证

创建 → 授权 → 验证 → 回收

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

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

验证闭环:创建 → 登录 → 切换 → 复核。任一步失败,回到上一步重新确认输入,不要在错误状态上继续叠加操作。
核心概念|权限模型 · 读懂 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 不受限制,因此判断「能不能做」要以实际登录身份为准。

实操命令|修改权限 · 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 复核权限串是否与预期一致。
03

进程与服务

第 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 看进程是否真的活着 —— 进程存在 ≠ 已设开机自启。
命令速查表|进程查看与定位

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

命令功能示例说明
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 列显示线程号,多线程服务排障用
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 才管开机自启 —— 两者独立,重启后要分别验证。
排障流程|异常进程的发现 → 终止 → 复盘

五步处理异常进程

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 确认服务状态,形成「观察 → 判断 → 操作 → 复测」闭环再收工。
04

管道与组合

第 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> 把「报错」单独改道。
命令组合|管道与重定向 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 段;中间断了难定位时,逐段执行看每步输出。
综合实战|日志关键字筛查 · 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 关键字写错,过滤后毫无输出
本专题小结|4 主题知识地图

常用命令知识地图

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 项任务,覆盖本专题全部命令

每项任务提交命令与结果截图;操作涉及多文件时,先预览匹配范围再执行。

1

目录搭建

在 ~/lab 下创建 ops/{logs,scripts,reports} 三级目录,并 touch 三个示例文件。

2

权限准备

创建 ops-team 组,新建 dev1 / dev2 两个用户并加入 ops-team,设置密码。

3

进程观察

用 ps aux | head 抓取进程快照,用 grep -i ssh 过滤后写入 /tmp/lab/ssh.txt。

4

服务演练

systemctl status sshd → stop → start → enable 完成四步,记录每步状态变化。

5

日志组合

从 /var/log/messages 中 grep 'error' → wc -l → 按时间排序取前 10 条。

本专题思考题|先自己想,再看提示

六个问题检验掌握程度

Q1绝对路径与相对路径使用场景如何区分?提示:脚本内推荐绝对,交互式推荐相对。
Q2rm 通配符操作前应做什么验证?提示:先用 ls 看匹配范围,确认无误再删。
Q3为什么服务账户不应直接使用管理员权限?提示:最小权限原则,服务失陷时控制影响面。
Q4usermod -aG 中 -a 为什么不能省?提示:覆盖 vs 追加,行为差异。
Q5进程和服务有什么联系与区别?提示:进程是运行实例,服务是 systemd 管理的常驻进程。
Q6管道与重定向分别解决什么问题?提示:数据流向与持久化。
下节预告 · 模块二 专题一「磁盘管理」:df / du 空间监控;fdisk / parted 分区;mkfs / mount 文件系统;磁盘配额 + Vim 编辑。
课后作业:①完成文件与目录综合练习,提交命令与结果截图;②创建专属用户并配置权限,验证最小权限原则;③使用 systemctl 管理指定服务并记录状态变化;④用管道与重定向完成日志统计小任务。
Linux 智能运维与管理 · 模块一 专题二 · Linux 常用命令 student@centos7:~$ exit → logout