整门课的命令地基。目录 / 文件 / 文本三剑客(grep·sed·awk)/ 系统管理 / 软件包,每个命令都配随身参数卡。这是参数卡最密的一页,建议逐个抄、逐个敲。
提示符 [user@host dir]#;命令通用格式 命令 [选项] [参数],如 ls -l /home。常用技巧:Tab 补齐(命令/路径)、上下方向键翻历史、Ctrl+R 搜历史、Ctrl+C 中断、Ctrl+L 清屏、Ctrl+A/E 跳到行首/行尾。
在命令后加 & 让它后台跑;jobs 看后台任务列表;fg %n 调回前台;bg %n 让暂停的任务后台继续;Ctrl+Z 把前台任务暂停挂起。
命令 & 直接后台运行jobs 列出后台作业(带 %n 编号)fg %1 把 1 号作业调回前台bg %1 让暂停的 1 号后台继续Ctrl+Z 暂停并挂起当前作业nohup 命令 & 关终端也继续跑nohup.outkill %1 按作业号结束sleep 100 &
jobs
fg %1 # 调回前台,再按 Ctrl+Z 暂停
bg %1 # 后台继续
nohup ./app.sh &列出目录内容;最常用 ls -l 看权限与大小。
-l 长格式(权限/大小/时间)-a 含隐藏文件(以 . 开头)-h 大小用 K/M/G 显示-R 递归列子目录-t 按时间排 · -S 按大小排ls -lh 一眼看清每个文件多大ls -la /etc 看 etc 下全部(含隐藏)ls -lhS 按大小从大到小排cd 切换目录、mkdir 建目录。
cd / cd ~ 回家目录cd .. 上级目录cd - 回上一次所在目录cd /绝对/路径mkdir 名 建一级目录mkdir -p a/b/c 一次建多级pwd 显示当前在哪pwd
cd /var/log
ls -lh
mkdir -p /tmp/demo/a
cd -复制 / 删除 / 移动改名 / 建链接。
cp -r 递归复制目录cp -i 覆盖前询问 · -p 保留属性rm -r 递归删目录(危险)rm -i 删前询问 · mv -i 重名先问ln -s 源 链接 软链接(快捷方式)ln 源 链接 硬链接(同文件多名字)touch 文件 建空文件 / 更新时间cp -r src/ dst/
rm -ri old/ # 递归+询问,删前确认
mv -i a.txt b.txt
ln -s /var/www site按关键字搜、用管道串命令、排序去重切列。
-i 忽略大小写-n 显示行号-v 反选(不含关键字的行)-r 递归搜目录 · -E 扩展正则sort -n 按数字排 · -r 倒序uniq -c 去重并计数cut -d: -f1 以 : 切取第 1 列| 把上条输出喂给下条cat /etc/passwd | grep -i bash | sort
ps aux | grep nginx | wc -l
cut -d: -f1 /etc/passwd | sort | uniq | headsed 把文件一行行读入,对满足『地址』的行执行『命令』再输出。默认只打到屏幕,不碰原文件——放心练。
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 按分隔符把每行切成字段:$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 的行-n 静默:只输出被 p 指定的行-i 原地修改(先用 -i.bak 留备份)-E 支持扩展正则(() | 免转义)s/旧/新/ 替换(加 g 全局)d 删行 · p 打印 · a\/i\ 行后/前插-F: 指定字段分隔符-f 从脚本文件读程序BEGIN{…} 读文件前(打表头)END{…} 读完后(求和/均值)print / printf 输出看日期、输出变量、看在线用户。
date +%F 2026-10-19(年月日)date +%T 14:30:05(时分秒)date +%Y%m%d 20261019(文件名常用)date -s '2026-10-19 10:00' 改系统时间(root)echo $PATH 输出环境变量echo -e 解析 \n 换行 \t 制表echo -n 不换行date +%F
echo -e '用户:\t'$USER
echo '备份_'$(date +%Y%m%d).tarRHEL / CentOS 系用 dnf(老版本叫 yum)管理 rpm 包,自动解决依赖。教材以 dnf 为准。
安装 / 卸载 / 更新软件包,自动处理依赖。
dnf install 包 安装(加 -y 免确认)dnf remove 包 卸载dnf update 更新全部dnf list installed 看已装dnf repolist 看启用的软件源dnf clean all 清缓存dnf provides 命令 查命令属哪个包dnf install -y httpd
dnf remove firefox
dnf update -yls -lhS /etc 找出 /etc 下最大的 5 个文件;再用 ls -la | grep '^d' 只列目录。/var/log 下所有含『error』的行用 grep -i 提出来,并用管道 | wc -l 统计行数。sed 's/localhost/127.0.0.1/g' 把一份配置样例里的 localhost 全换成 IP(先用 -i.bak 留备份)。awk -F: '{print $1, $7}' /etc/passwd 打印『用户名 + 默认 Shell』;用 dnf provides 查 ifconfig 属哪个包。项目 3 是整门课的命令地基,参数卡最多——建议把每张参数卡抄一遍再敲一遍。