码上问学问代码之理,学编程之道
教材同步›项目 3
教材同步 · 叶廷东《Linux 操作系统管理(第 2 版)》航空工业出版社 · “十四五”国家规划教材

项目3 熟练使用 Linux 命令

整门课的命令地基。目录 / 文件 / 文本三剑客(grep·sed·awk)/ 系统管理 / 软件包,每个命令都配随身参数卡。这是参数卡最密的一页,建议逐个抄、逐个敲。

任务 3.1

命令行特点与作业控制

命令行怎么用、后台怎么跑
3.1.1命令行的特点

提示符 [user@host dir]#;命令通用格式 命令 [选项] [参数],如 ls -l /home。常用技巧:Tab 补齐(命令/路径)、上下方向键翻历史、Ctrl+R 搜历史、Ctrl+C 中断、Ctrl+L 清屏、Ctrl+A/E 跳到行首/行尾。

3.1.2后台作业控制

在命令后加 & 让它后台跑;jobs 看后台任务列表;fg %n 调回前台;bg %n 让暂停的任务后台继续;Ctrl+Z 把前台任务暂停挂起。

随身参数卡 · 作业控制
前台 / 后台
  • 命令 & 直接后台运行
  • jobs 列出后台作业(带 %n 编号)
  • fg %1 把 1 号作业调回前台
  • bg %1 让暂停的 1 号后台继续
  • Ctrl+Z 暂停并挂起当前作业
退出也不中断
  • nohup 命令 & 关终端也继续跑
  • 输出默认进 nohup.out
  • kill %1 按作业号结束
bash
sleep 100 &
jobs
fg %1        # 调回前台,再按 Ctrl+Z 暂停
bg %1        # 后台继续
nohup ./app.sh &
[1] 1234 [1]+ Running sleep 100 &
任务 3.2

常用 Linux 命令

目录 / 文件 / 文本 / 系统 / 软件包
3.2.1目录类命令
ls★ 必会

列出目录内容;最常用 ls -l 看权限与大小。

随身参数卡 · ls 常用选项
ls 参数
  • -l 长格式(权限/大小/时间)
  • -a 含隐藏文件(以 . 开头)
  • -h 大小用 K/M/G 显示
  • -R 递归列子目录
  • -t 按时间排 · -S 按大小排
案例
  • ls -lh 一眼看清每个文件多大
  • ls -la /etc 看 etc 下全部(含隐藏)
  • ls -lhS 按大小从大到小排
cd / mkdir★ 必会

cd 切换目录、mkdir 建目录。

随身参数卡 · cd 与 mkdir
cd 去哪
  • cd / cd ~ 回家目录
  • cd .. 上级目录
  • cd - 回上一次所在目录
  • cd /绝对/路径
mkdir
  • mkdir 名 建一级目录
  • mkdir -p a/b/c 一次建多级
  • pwd 显示当前在哪
bash
pwd
cd /var/log
ls -lh
mkdir -p /tmp/demo/a
cd -
/root (进入 /var/log) (列出日志文件) (建好 /tmp/demo/a) /var/log
3.2.2文件类命令
cp / rm / mv / ln★ 必会

复制 / 删除 / 移动改名 / 建链接。

随身参数卡 · 文件四件套
cp / rm / mv
  • cp -r 递归复制目录
  • cp -i 覆盖前询问 · -p 保留属性
  • rm -r 递归删目录(危险)
  • rm -i 删前询问 · mv -i 重名先问
ln 链接
  • ln -s 源 链接 软链接(快捷方式)
  • ln 源 链接 硬链接(同文件多名字)
  • touch 文件 建空文件 / 更新时间
bash
cp -r src/ dst/
rm -ri old/      # 递归+询问,删前确认
mv -i a.txt b.txt
ln -s /var/www site
(已复制 src 到 dst) rm: descend into directory 'old/'? y (已改名 / 已建软链接 site)
3.2.3文本检索与管道
grep / | / sort / uniq / cut★ 必会

按关键字搜、用管道串命令、排序去重切列。

随身参数卡 · 文本检索
grep 选项
  • -i 忽略大小写
  • -n 显示行号
  • -v 反选(不含关键字的行)
  • -r 递归搜目录 · -E 扩展正则
sort / uniq / cut
  • sort -n 按数字排 · -r 倒序
  • uniq -c 去重并计数
  • cut -d: -f1 以 : 切取第 1 列
  • | 把上条输出喂给下条
bash
cat /etc/passwd | grep -i bash | sort
ps aux | grep nginx | wc -l
cut -d: -f1 /etc/passwd | sort | uniq | head
root:x:0:0:root:/root:/bin/bash 2 (列出去重后的用户名前 10 个)
3.2.4流编辑三剑客 sed / awk

① sed · 流编辑器:按『地址 + 命令』逐行改

sed 把文件一行行读入,对满足『地址』的行执行『命令』再输出。默认只打到屏幕,不碰原文件——放心练。

核心语法sed [选项] '地址 命令' 文件
地址3 第3行 · 1,5 1–5行 · /模式/ 匹配行 · $ 末行
常用命令s 替换 · d 删行 · p 打印 · a/i 行后/前插
替换旗标s/a/b/g 全局替换 · s#a#b#g 换分隔符避冲突
sed 's/旧/新/g' f.txt输出替换结果(不改原文件,可接着 | 管道)
sed -i 's/旧/新/g' f.txt-i 原地改;正式用前先 cp 备份或 -i.bak 留底
sed -n '10,20p' f.txt-n 静默 + p 打印:只看第 10–20 行
sed '5d' f.txt删掉第 5 行(d 删除匹配行)

② awk · 按列处理:专治日志与报表

awk 按分隔符把每行切成字段:$1 第1列、$NF 末列、$0 整行;NR 行号、NF 列数。处理 /etc/passwd、求和均值极好用。

核心语法awk [选项] '模式 {动作}' 文件
字段变量$1 $2 … $NF 列 · $0 整行 · NR 行号 · NF 列数
模式省略=全部 · NR==3 第3行 · $3>100 第3列>100
分隔符默认空白 · -F: 以冒号分列
awk -F: '{print $1}' /etc/passwd以冒号分列,列出所有用户名
awk '{s+=$1} END{print s}' n.txt累加第1列求和;END 收尾输出
awk '/error/{c++} END{print c}' app.log统计日志里 error 出现次数
awk '$3>100{print $0}' log.txt只输出第3列大于 100 的行
随身参数卡 · sed / awk 常用选项与指令
sed 选项 / 命令
  • -n 静默:只输出被 p 指定的行
  • -i 原地修改(先用 -i.bak 留备份)
  • -E 支持扩展正则(() | 免转义)
  • s/旧/新/ 替换(加 g 全局)
  • d 删行 · p 打印 · a\/i\ 行后/前插
awk 选项 / 块
  • -F: 指定字段分隔符
  • -f 从脚本文件读程序
  • BEGIN{…} 读文件前(打表头)
  • END{…} 读完后(求和/均值)
  • print / printf 输出
3.2.5系统管理类命令
date / echo / who☆ 理解

看日期、输出变量、看在线用户。

随身参数卡 · date 与 echo
date 格式化
  • date +%F 2026-10-19(年月日)
  • date +%T 14:30:05(时分秒)
  • date +%Y%m%d 20261019(文件名常用)
  • date -s '2026-10-19 10:00' 改系统时间(root)
echo
  • echo $PATH 输出环境变量
  • echo -e 解析 \n 换行 \t 制表
  • echo -n 不换行
bash
date +%F
echo -e '用户:\t'$USER
echo '备份_'$(date +%Y%m%d).tar
2026-10-19 用户: root 备份_20261019.tar
3.2.6软件包管理(dnf / yum)

RHEL / CentOS 系用 dnf(老版本叫 yum)管理 rpm 包,自动解决依赖。教材以 dnf 为准。

dnf★ 必会

安装 / 卸载 / 更新软件包,自动处理依赖。

随身参数卡 · dnf 常用子命令
增删查
  • dnf install 包 安装(加 -y 免确认)
  • dnf remove 包 卸载
  • dnf update 更新全部
  • dnf list installed 看已装
源与缓存
  • dnf repolist 看启用的软件源
  • dnf clean all 清缓存
  • dnf provides 命令 查命令属哪个包
bash
dnf install -y httpd
dnf remove firefox
dnf update -y
(安装 httpd 及其依赖…) (已卸载 firefox) (更新完成)

拓展训练

教材每项目末尾 · 上机可重做取最高分
1
用 ls -lhS /etc 找出 /etc 下最大的 5 个文件;再用 ls -la | grep '^d' 只列目录。
2
把 /var/log 下所有含『error』的行用 grep -i 提出来,并用管道 | wc -l 统计行数。
3
用 sed 's/localhost/127.0.0.1/g' 把一份配置样例里的 localhost 全换成 IP(先用 -i.bak 留备份)。
4
用 awk -F: '{print $1, $7}' /etc/passwd 打印『用户名 + 默认 Shell』;用 dnf provides 查 ifconfig 属哪个包。

项目 3 是整门课的命令地基,参数卡最多——建议把每张参数卡抄一遍再敲一遍。