码上问学问代码之理,学编程之道

命令速查表 & 核心类比

每节只精讲 3~5 个 ★ 必会命令,其余进速查表。这一页对应课程标准「常用命令速查表」特色资源, 按 12 个项目分组,每个命令标了分级:★必会☆理解○了解。 下方用生活类比讲透「为什么」,让命令不再是一串要背的字母。

★ 必会(闭卷要会敲) ☆ 理解(知道干什么、会查) ○ 了解(见过、知道存在)
项目1-2

入门 · 终端与文件目录

命令作用分级
pwd显示当前所在目录(你在哪)★
ls -l列目录内容(详细信息)★
cd切换目录★
cp / mv / rm复制 / 移动改名 / 删除★
mkdir / touch建目录 / 建空文件★
man / --help查帮助(不会就问它)☆
ln -s建软链接(快捷方式)○
随身参数卡 · 终端与文件目录(常用选项 / 速记案例)
ls 常用参数
  • ls -l 长格式(权限、大小、时间)
  • ls -a 含隐藏文件(以 . 开头)
  • ls -h 大小用 K/M/G 显示
  • ls -R 递归列出子目录
cp / rm / mkdir
  • cp -r 递归复制整个目录
  • cp -i 覆盖前先询问
  • rm -r 递归删目录(危险)
  • rm -i 删每一个前先问
  • mkdir -p 一次建好多级目录
速记案例(注释清晰)
  • ls -lh 一眼看清每个文件多大
  • cp -r src/ dst/ 整目录复制
  • mkdir -p a/b/c 三级目录一次建好
  • rm -ri old/ 递归 + 询问,删前确认
  • ln -s /var/www site 建软链接当快捷方式
  • mv -i a.txt b.txt 改名,重名先问
项目1-2·补

系统信息与开关机(教材补充)

命令作用分级
uname -a看全部系统信息(内核/主机/架构)★
cat /etc/os-release看发行版名称与版本(CentOS/Ubuntu)★
runlevel看当前运行级别(3=多用户,5=图形)☆
systemctl isolate multi-user.target切换运行级别(字符界面)☆
shutdown -h now立即关机★
shutdown -r +1010 分钟后重启☆
su - 用户名切换用户并加载其环境★
whoami / who / w看当前/所有登录用户与在干嘛☆
随身参数卡 · 系统信息与开关机
uname 常用参数
  • uname -a 全部:内核名/主机名/内核版本/架构
  • uname -r 只看内核版本(如 5.14.0)
  • uname -m 看 CPU 架构(x86_64 / aarch64)
  • uname -s 内核名(Linux)
shutdown 常用参数
  • -h 关机(halt)
  • -r 重启(reboot)
  • now 立刻执行;+10 10 分钟后
  • -c 取消已计划的关机
身份切换
  • su - 切到 root 并重置环境(像重新登录)
  • su 用户 切到该用户但保留当前环境
  • who 谁登录了、从哪台机器、几点登的
  • w 在 who 基础上多一行『正在跑什么』
速记案例(注释清晰)
  • uname -r 升级内核前先确认当前版本
  • cat /etc/os-release | grep PRETTY 一眼看发行版全称
  • shutdown -r now 改完配置需要重启生效
  • su - 然后 whoami 验证确实是 root
  • w 排查『谁把负载跑满了』
  • runlevel 看 N 5 表示当前是图形级别
项目3

文本处理三剑客

管道与重定向:把命令的输出「接」到别处命令 Astdout = 1| 管道把输出变输入命令 B(grep 等)接着处理> file覆盖写入文件>> file追加到文件末尾2> err只接错误信息&> all正确+错误都收记法:1 是正常输出、2 是错误输出;> 是「送去」、| 是「接给下一个人」
命令作用分级
grep按关键字搜文本★
| 管道把上一条输出喂给下一条★
head / tail看头 / 看尾(tail -f 实时跟日志)★
sort / uniq -c排序 / 去重计数★
awk按列取字段、做统计☆
sed流编辑、批量替换☆
cut / tr切列 / 换字符○

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

sed 把文件一行一行读进来,对满足「地址」的行执行「命令」,再输出。默认只把结果打到屏幕,不碰原文件——所以放心练。

核心语法sed [选项] '地址 命令' 文件
地址(哪些行)3 第3行 · 1,5 1–5行 · /模式/ 匹配行 · $ 末行 · 省略=全部
常用命令s 替换 · d 删行 · p 打印 · a/i 行后/前插入
替换旗标s/a/b/ 换首个 · 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 删除匹配行)
sed 's/^/# /' f.txt^ 代表行首,给每行前面加注释符

② 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: 以冒号分列(处理 /etc/passwd)
awk '{print $1, $3}' f.txt打印第 1、3 列(默认按空白切分)
awk -F: '{print $1}' /etc/passwd以冒号分列,列出所有用户名
awk '{s+=$1} END{print s}' n.txt累加第1列求和;END 收尾时输出
awk '$3>100{print $0}' log.txt只输出第3列大于 100 的那几行
awk '/error/{c++} END{print c}' app.log统计日志里 error 出现了多少次
随身参数卡 · sed / awk 常用选项与指令
sed 常用选项
  • -n 静默:只输出被 p 命令指定的行
  • -i 原地修改文件(先用 -i.bak 留备份)
  • -e 串联多个编辑脚本
  • -r / -E 支持扩展正则(() | 不必转义)
awk 常用选项
  • -F: 指定字段分隔符(如 -F, 处理 CSV)
  • -f 从脚本文件读取 awk 程序
  • -v k=v 把变量传进 awk 内部
sed 常用命令
  • s/旧/新/ 替换(末尾加 g 全局替换)
  • d 删除匹配的行
  • p 打印(配合 -n 用)
  • a\文本 行后追加 · i\文本 行前插入
awk 常用块与变量
  • BEGIN{…} 读文件前执行(打表头)
  • END{…} 读完后执行(求和 / 均值)
  • print / printf 输出到屏幕
  • NR / NF / $1… 行号 / 列数 / 列值
项目3·补

查找 · 文件类型 · 日期 · 文本处理细节(教材补充)

命令作用分级
find / -name '*.log'按名查找文件★
find . -type f -size +10M找大于 10M 的普通文件☆
find . -mtime -7 -exec rm {} \;删 7 天内改过的文件○
file 文件名识别真实文件类型(不受后缀骗)☆
grep -rin 'err' /var/log递归、忽略大小写、带行号搜★
sort -t: -k3 -n按第3列数字排序(如 uid)☆
uniq -c去重并统计出现次数★
cut -d: -f1以 : 分列,取第 1 列☆
date +%F / date -d格式化日期 / 算相对日期☆
echo -e 'a\nb'输出并解释转义(换行等)○
随身参数卡 · 查找 / 文本细节
find 常用参数
  • -name '模式' 按文件名(支持通配符)
  • -type f/d 限定普通文件 / 目录
  • -size +10M 大于 10M;-size -1k 小于 1K
  • -mtime -7 7 天内改过;+7 超 7 天
  • -exec 命令 {} \; 对结果逐个执行
grep 常用参数
  • -i 忽略大小写
  • -r 递归目录
  • -n 显示行号
  • -v 反向(不含关键字的行)
  • -E 扩展正则(| 不用转义)
sort / uniq / cut
  • sort -n 按数值而非字典序
  • sort -r 倒序
  • sort -k3 按第 3 列排
  • uniq -c 统计重复次数(先 sort)
  • cut -d: -f1,3 取第1、3列
date / echo
  • date +%F 输出 2026-10-19
  • date +%Y%m%d 输出 20261019(备份命名常用)
  • date -d '-1 day' +%F 昨天的日期
  • echo -e 让 \n \t 等转义生效
  • echo -n 末尾不换行
速记案例(注释清晰)
  • find / -name nginx.conf 定位配置文件在哪
  • find . -type f -size +100M 揪出占空间的大文件
  • grep -rin 'timeout' /etc/ | less 全配置查关键字
  • sort -t: -k3 -n /etc/passwd 按 uid 排序看用户
  • cut -d: -f1 /etc/passwd 列出所有用户名
  • date +%Y%m%d 给备份文件起名 backup_20261019.tar.gz
  • echo -e 'line1\nline2' 一行命令输出两行
项目4

用户与权限

权限三三得九:rwxr-xr-- 到底怎么读- rwx r-x r--类型属主 u属组 g其他 orwxr-xr--= 7 5 4r 读=4 · w 写=2 · x 执行=1chmod 754 file / chmod u+x file7 = rwx读+写+执行5 = r-x读+执行(进目录必需)4 = r--只读目录的 x 是「能不能进去」——没有 x,即使有 r 也 cd 不进去
命令作用分级
useradd / passwd建用户 / 设密码★
chmod 755改权限(数字法最常用)★
chown改属主 / 属组★
sudo临时提权(最小权限原则)☆
umask默认权限掩码○
随身参数卡 · 用户与权限(常用选项 / 速记案例)
chmod / chown
  • chmod u+x 给属主加执行权
  • chmod g-w 去掉属组的写权
  • chmod 755 数字法:属主全权、其他只读+执行
  • chown 用户:组 同时改属主与属组
  • chown -R 递归改整个目录
sudo / useradd
  • sudo -i 切到 root 环境(慎重)
  • sudo -u 用户 命令 以某个用户身份执行
  • useradd -m 建用户并同时建家目录
  • useradd -G 组 把用户加入附加组
速记案例(注释清晰)
  • chmod +x deploy.sh 让脚本能被执行
  • chmod 644 f.txt 本人可读写、他人只读
  • chown -R www:www /var/www 把站点目录交给 www 用户
  • sudo systemctl restart nginx 提权重启服务
  • umask 022 新文件默认 644、目录默认 755
项目4·补

用户组管理 · ACL 精细授权 · vim(教材补充)

命令作用分级
usermod -aG 组 用户把用户追加进附加组(不改原有组)★
usermod -l 新 旧改用户名○
userdel -r 用户删用户并连家目录一起删☆
groupadd 组名新建用户组☆
gpasswd -a 用户 组把用户加入组(同 usermod -aG)☆
chgrp 组 文件改文件属组☆
setfacl -m u:用户:rwx给某用户单独授权(绕过 rwx 三位)☆
getfacl 文件查看文件的 ACL 明细☆
vim 文件终端编辑器(上课绕不开)★
随身参数卡 · 用户组与 ACL
usermod 常用参数
  • -aG 组 用户 追加附加组(务必带 -a,否则覆盖)
  • -l 新 旧 改登录名
  • -L 锁账户(不能登录);-U 解锁
  • -d 目录 -m 改家目录并搬数据
group / chgrp
  • groupadd 组 建新组
  • groupdel 组 删组(组内无人再删)
  • gpasswd -a 用户 组 加组成员
  • chgrp 组 文件 只改属组
setfacl / getfacl
  • setfacl -m u:tom:rwx f 给用户 tom 单独授权
  • setfacl -m g:dev:rx f 给 dev 组授权
  • setfacl -R -m ... 递归授权整个目录
  • setfacl -x u:tom f 收回该条 ACL
  • getfacl f 看清谁有什么权
vim 最小必会
  • i 进入插入模式开始打字
  • Esc 回到命令模式
  • :w 保存;:q! 不存强退
  • :wq 保存并退出
  • /关键字 搜索,n 跳下一个
速记案例(注释清晰)
  • usermod -aG wheel tom 让 tom 能用 sudo(追加!)
  • userdel -r tom 离职清理,连家目录删掉
  • groupadd dev && gpasswd -a tom dev 建组并加人
  • setfacl -m u:tom:rwx /share 给 tom 单独开 /share 权限
  • getfacl /share 确认 ACL 已生效
  • vim /etc/hosts 改完 :wq 保存退出
项目5

磁盘管理(教材补充 · 原速查表未涵盖)

命令作用分级
lsblk看块设备与挂载点(树状)★
blkid看分区 UUID 与文件系统类型☆
fdisk -l / parted -l看 / 分区硬盘☆
mkfs.ext4 / mkfs.xfs格式化(建文件系统)★
mount /dev/sdb1 /mnt把分区挂到目录★
umount /mnt卸载(用完再摘)★
df -h看各分区还剩多少空间★
du -sh *看目录下各文件/夹占多大☆
xfs_quota -x -c 'limit bsoft=100m tom' /home给用户限额○
mdadm --create把多块盘组软 RAID○
pvcreate/vgcreate/lvcreateLVM 建物理卷/卷组/逻辑卷○
随身参数卡 · 磁盘与挂载
查看与分区
  • lsblk 树状看磁盘/分区/挂载点
  • blkid /dev/sdb1 看该分区 UUID(写 fstab 用)
  • fdisk -l 列所有磁盘与分区表
  • parted /dev/sdb mklabel gpt 建 GPT 分区表
格式化与挂载
  • mkfs.xfs /dev/sdb1 格式化为 XFS
  • mkfs.ext4 /dev/sdb1 格式化为 ext4
  • mount -t xfs /dev/sdb1 /data 挂载并指定类型
  • mount -a 按 /etc/fstab 重挂全部
  • umount /data 卸载前确认没人占用
配额 / RAID / LVM
  • xfs_quota -x -c 'report' /home 查配额
  • mdadm -C /dev/md0 -l1 -n2 /dev/sd[b-c]1 组 RAID1
  • pvcreate /dev/sdb1 初始化物理卷
  • vgcreate vg0 /dev/sdb1 建卷组
  • lvcreate -L 10G -n lv0 vg0 建 10G 逻辑卷
  • lvextend -L +5G /dev/vg0/lv0 在线扩容
速记案例(注释清晰)
  • lsblk 先看清新盘是 sdb 还是 sdc
  • mkfs.xfs /dev/sdb1 格式化后才能真正用
  • mkdir /data && mount /dev/sdb1 /data 挂上才能读写
  • df -h /data 确认挂载成功、空间可见
  • du -sh /var/log 看日志目录吃了多少空间
  • lvextend -L +5G /dev/vg0/lv0 磁盘快满时在线扩
  • xfs_growfs /data XFS 扩容后让文件系统认新大小
项目5-6

进程作业 · 软件包

命令作用分级
ps aux / top看进程与资源占用★
systemctl start/enable启服务 / 设开机自启★
journalctl -u看某服务日志★
dnf install装软件包★
kill -9强杀进程(先用普通 kill)☆
nohup退出终端也不中断☆
随身参数卡 · 进程作业与软件包(常用选项 / 速记案例)
进程 / systemctl
  • ps aux 看全部进程与 CPU/内存占用
  • top -p PID 只盯着某个进程
  • systemctl enable 设为开机自启
  • systemctl --now 启动的同时设自启
  • journalctl -f 实时跟随日志输出
kill / dnf / nohup
  • kill PID 正常结束(先试它)
  • kill -9 PID 强制杀死(最后的手段)
  • dnf install/remove 安装 / 卸载软件包
  • dnf list installed 查看已装包
  • nohup 命令 & 关掉终端也继续跑
速记案例(注释清晰)
  • ps aux | grep nginx 查 nginx 进程是否在跑
  • systemctl enable --now nginx 启动并设开机自启
  • journalctl -u nginx -f 实时看服务日志排错
  • kill 1234 先正常结束,不行再 kill -9 1234
  • nohup ./app.sh & 后台运行,输出进 nohup.out
项目5-6·补

作业控制与计划任务(教材补充)

命令作用分级
jobs看当前终端的后台任务列表☆
fg %1 / bg %1把任务调回前台 / 放回后台☆
命令 &启动时直接丢后台☆
nohup 命令 &关终端也不中断☆
crontab -e编辑当前用户的定时任务☆
dnf -y install装包不再逐项问 y★
dnf groupinstall按『软件组』批量装(如开发工具)○
随身参数卡 · 作业控制与计划任务
作业控制
  • 命令 & 启动即后台,立刻拿回终端
  • jobs 列出本终端后台任务及编号 %1
  • fg %1 把 1 号任务调回前台
  • bg %1 把暂停的任务放回后台跑
  • Ctrl+Z 暂停前台任务(再 bg 后台跑)
计划任务 cron
  • crontab -e 编辑当前用户任务
  • crontab -l 列出已有任务
  • 0 2 * * * /backup.sh 每天 2 点跑
  • 格式:分 时 日 月 周 命令
dnf 补充
  • dnf -y install 包 自动确认装
  • dnf groupinstall '开发工具' 一组开发包
  • dnf provides 命令 查哪个包装了它
  • dnf history undo N 撤销第 N 次安装
速记案例(注释清晰)
  • ./server & 后台跑服务,终端还能干别的
  • jobs 看到 [1] 运行中,fg %1 调回前台
  • nohup ./app.sh & 关掉 SSH 它也继续跑
  • crontab -e 加 0 3 * * * rsync ... 每日 3 点备份
  • dnf -y install httpd 一行装好 Web 服务
项目7-12

网络 · 服务 · 防火墙

命令作用分级
ip addr / ip route看 IP 与路由★
ss -tlnp看监听端口(排障必用)★
ping / traceroute连通性与路径排查★
nmcli / nmtui配网络(命令 / 图形)☆
nslookup / dig测 DNS 解析☆
firewall-cmd防火墙放行 / 富规则★
curl / wget下载 / 测 HTTP 服务☆
随身参数卡 · 网络 · 服务 · 防火墙(常用选项 / 速记案例)
ip / ss / ping
  • ip addr show 看网卡与 IP 地址
  • ip route 看路由表(网关走向)
  • ss -tlnp 看监听端口 + 对应进程
  • ss -ant 看所有 TCP 连接
  • ping -c 4 只发 4 次包测连通
firewall / curl / dig
  • --add-port 放行某端口(如 80/tcp)
  • --permanent 规则永久生效
  • firewall-cmd --reload 重新加载规则
  • curl -I 只看 HTTP 响应头
  • dig 域名 查 DNS 解析结果
速记案例(注释清晰)
  • ip addr | grep inet 快速看本机有哪些 IP
  • ss -tlnp | grep :80 确认 80 端口是否在监听
  • curl -I localhost 测本地 Web 服务是否起来
  • firewall-cmd --add-port=80/tcp --permanent 放行 Web 端口
  • dig baidu.com 验证域名能否正常解析
项目7-12·补

网络配置与服务命令(教材补充)

命令作用分级
nmcli connection show看网络连接(网卡配置)☆
nmcli con mod eth0 ipv4.addresses 192.168.1.10/24命令行改 IP☆
hostnamectl set-hostname srv改主机名(永久)☆
dhcpd -t校验 dhcpd.conf 语法○
testparm校验 smb.conf 语法○
smbpasswd -a 用户建 Samba 专用密码○
named-checkconf / named-checkzone校验 DNS 配置与区域○
rndc reload重载 DNS 配置(不重启)○
apachectl configtest校验 Apache 配置○
firewall-cmd --list-all看当前防火墙规则★
随身参数卡 · 网络与服务配置
nmcli 配网络
  • nmcli con show 列出所有连接
  • nmcli con up eth0 启用连接
  • nmcli con mod eth0 ipv4.method manual 改手动配 IP
  • nmcli con mod eth0 ipv4.gateway 192.168.1.1 设网关
  • nmcli con mod eth0 +ipv4.dns 8.8.8.8 加 DNS
服务校验命令
  • dhcpd -t 配完 DHCP 先测语法
  • testparm 测 smb.conf 有无错
  • smbpasswd -a tom 给 tom 设 Samba 密码
  • named-checkconf 测主配置;named-checkzone 域 文件 测区域
  • rndc reload 改完 DNS 重载生效
  • apachectl configtest 测 Apache 配置
firewall-cmd 常用
  • --add-port=80/tcp --permanent 放行端口
  • --add-service=http 按服务名放行
  • --list-all 看全部规则
  • --remove-port=22/tcp 收回端口
  • --add-rich-rule=... 富规则做精细控制
  • --runtime-to-permanent 把临时规则落盘
速记案例(注释清晰)
  • nmcli con mod eth0 ipv4.addresses 192.168.1.10/24 && nmcli con up eth0 命令行配静态 IP
  • hostnamectl set-hostname web01 改完重登录即生效
  • dhcpd -t 改完dhcpd.conf先验语法再起服务
  • testparm && systemctl restart smb 校验通过后重启 Samba
  • named-checkzone example.com /var/named/example.com.zone 区域写对再 rndc reload
  • firewall-cmd --add-service=http --permanent && firewall-cmd --reload 放行 Web
  • firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080 端口转发

核心生活类比(讲透「为什么」)

标准明确要求善用生活类比
Linux 目录树:从 / 开始的一棵倒挂的树/ 根目录/bin最基础命令 ls/cp/etc所有配置文件/home普通用户家目录/var日志/网站数据/tmp临时文件/usr软件安装主目录/dev硬件当文件/proc内核与进程信息/root管理员家目录/opt第三方软件口诀:配置在 etc、日志在 var、软件在 usr、家目录在 home——找文件先想它属于哪一类

① 文件系统 = 档案柜

/ 根目录整栋楼的档案柜;每个目录是一层抽屉,文件是里面的档案袋。
路径「几楼几号抽屉」的地址;绝对路径从楼门口数,相对路径从你站的抽屉数。
软链接贴在墙上的「指路条」,指向另一个抽屉,条子丢了不影响原档案。

② 权限 rwx = 门禁卡

r 读你能看抽屉里有什么(列目录)。
w 写你能往里放 / 改档案(建删文件)。
x 执行你能打开这个抽屉进入下一层(进目录 / 跑程序)。
755主人全权(7)、同组与他人只能看+进(5)——像给同事发了「可参观不可改」的卡。

③ DNS = 邮局查地址簿

域名收件人姓名(好记);IP 是门牌号(机器认)。
DNS 解析问邮局「张三住哪」,邮局翻地址簿告诉你门牌号——翻不到就是解析失败。
/etc/hosts你自家贴在桌上的便签,优先级比邮局高,但只管你一台机器。

④ 进程 / 服务 = 上班的人

进程 PID每个员工的工号,唯一;kill 就是让他下班。
服务 systemd排班表:写进 enable 的人每天开机自动来上班。
端口员工工位号,外人按工位找人;防火墙是前台,没登记的工位不让进。
做错可重做、取最高分:标准规定上机任务与实验报告允许重做,以最高一次计分,力求人人过关。所以第一次配 Samba 连不上、第一次写 named 区域文件报错,都不用慌——改完重交就行。