Linux 命令速查手册 By deepseek

📖 格式说明

命令 [选项] [参数]

  • 命令:要执行的操作(如 lscd
  • 选项:修改命令行为,通常以 -(短选项)或 --(长选项)开头
    例:-a 等价于 --all
  • 参数:命令作用的对象(如文件名、目录路径)

📘 初级篇 —— 日常必备(每天都会用到的命令)

适用人群:刚接触 Linux 的新手、日常开发/运维基础操作
学习目标:能独立完成文件管理、目录切换、系统信息查看等基本任务

1. 目录切换(cd / pwd)

命令示例 说明 使用场景
cd 回到用户主目录 想快速回到家目录时
cd /home/zhangsan 进入指定目录 切换到项目代码目录
cd .. 返回上一级目录 从深层目录逐级返回
cd - 返回上一次所在目录 在两个目录间反复切换
pwd 显示当前完整路径 不确定自己在哪个目录时

2. 查看目录内容(ls)

命令示例 说明 使用场景
ls 列出当前目录下文件名 最基础的查看操作
ls -l 列出详细信息(权限/大小/时间) 查看文件权限和修改时间
ls -a 列出所有文件(含隐藏文件) 查看 .bashrc.git 等隐藏配置
ls -al 组合:详细信息 + 隐藏文件 最常用的查看方式,建议设别名为 ll
ls -ltr 按时间排序(最新在最下面) 查看最近修改的文件

3. 文件与目录的增删改

命令示例 说明 使用场景
mkdir myproject 创建目录 新建项目文件夹
mkdir -p a/b/c 一次性创建多层目录 快速创建深层目录结构
touch test.txt 创建空文件(或更新时间戳) 新建配置文件或占位文件
cp file1 file2 复制文件 备份单个文件
cp -r dir1 dir2 递归复制目录 备份整个项目目录
mv file1 file2 移动或重命名文件 改名或转移文件位置
rm file.txt 删除文件(会提示确认) 删除不需要的文件
rm -r dir/ 递归删除目录 删除整个项目目录
rmdir emptydir 删除空目录 仅当目录为空时使用

4. 文件内容查看

命令示例 说明 使用场景
cat file.txt 一次性显示全部内容 查看小文件(如配置文件)
head file.txt 显示文件前 10 行 快速预览文件开头内容
head -n 20 file.txt 显示前 20 行 指定行数查看
tail file.txt 显示文件后 10 行 查看文件末尾内容
tail -f app.log 实时跟踪日志更新 最常用:查看实时日志输出
more large.log 分页查看(空格翻页,q 退出) 查看大文件,避免刷屏

5. 系统信息查看

命令示例 说明 使用场景
date 查看当前系统日期时间 确认服务器时间
cal 显示当月日历 快速查看日期
whoami 显示当前登录用户名 确认当前用户身份
hostname 显示主机名 确认当前服务器名称
uname -a 显示完整系统信息(内核/架构) 查看系统版本

6. 用户切换与帮助

命令示例 说明 使用场景
su - root 切换到 root 用户 需要管理员权限时
passwd 修改当前用户密码 定期更换密码
命令 --help 查看命令的简要帮助 记不清选项时快速查阅
man ls 查看命令的完整手册(按 q 退出) 深入了解命令用法
clear 清屏 终端内容太多时清理屏幕

7. 关机与重启

命令示例 说明 使用场景
shutdown -r now 立刻重启 系统更新后需要重启
shutdown -h now 立刻关机 关闭服务器
shutdown -h 22:30 定时关机(晚上 10:30) 计划内维护
shutdown -c 取消已设定的定时关机 取消计划维护

📗 中级篇 —— 高效处理(提升工作效率的命令)

适用人群:已熟悉基础操作,需要处理文本、排查问题、做简单脚本的开发者/运维
学习目标:掌握文本处理、搜索、权限管理、进程监控等实用技能

1. 文本搜索(grep)

命令示例 说明 使用场景
grep "error" app.log 在文件中查找包含 "error" 的行 排查日志错误
grep -i "error" app.log 忽略大小写查找 不区分 Error/ERROR
grep -r "TODO" ./ 在当前目录下递归搜索所有文件 代码中查找待办项
grep -v "debug" app.log 显示不包含 "debug" 的行(反向匹配) 过滤掉调试日志
grep -E "error\|fatal" log 使用正则表达式匹配多个关键词 同时查找错误和致命错误
ps aux \| grep nginx 结合管道,查找进程信息 检查 nginx 是否运行

2. 文本统计与处理(wc / sort / uniq)

命令示例 说明 使用场景
wc -l file.txt 统计文件行数 统计日志行数
wc -w file.txt 统计单词数 统计文本字数
sort names.txt 按字母顺序排序 整理名单列表
sort -n scores.txt 按数字大小排序 排序成绩或时间
sort -r names.txt 反向排序 从 Z 到 A 排列
sort file.txt \| uniq 去重(需先排序) 统计独立 IP 数
sort file.txt \| uniq -c 统计每个值出现的次数 统计访问次数最多的 IP

3. 文件搜索(find)

命令示例 说明 使用场景
find . -name "*.log" 在当前目录查找所有 .log 文件 查找日志文件
find /home -type d -name "cache" 按类型查找目录 查找缓存目录
find /var -size +100M 查找大于 100MB 的文件 清理大文件释放空间
find /tmp -mtime +7 查找 7 天前修改过的文件 清理过期临时文件
find . -name "*.tmp" -delete 查找并删除匹配的文件 批量清理临时文件

4. 权限管理(chmod / chown)

命令示例 说明 使用场景
chmod 755 script.sh 设置权限:rwxr-xr-x 给脚本添加执行权限
chmod +x script.sh 给文件添加执行权限 快速赋予可执行权限
chown zhangsan file.txt 修改文件所有者为 zhangsan 转移文件归属
chown -R zhangsan:devops /project 递归修改目录所有者和组 移交整个项目目录

5. 进程管理

命令示例 说明 使用场景
ps aux 显示所有进程的详细信息 查看系统所有运行进程
ps aux \| grep java 查找 Java 进程 查看 Java 服务是否运行
top 动态显示进程资源占用(按 q 退出) 实时监控 CPU/内存
top -p 12345 只监控指定 PID 的进程 专注观察某个服务
kill 12345 正常终止 PID 为 12345 的进程 关闭服务
kill -9 12345 强制立即终止进程 服务无响应时强杀
killall nginx 按名称终止所有 nginx 进程 重启 nginx 服务

6. 压缩与打包

命令示例 说明 使用场景
tar -czvf archive.tar.gz /data 打包并压缩成 .tar.gz 备份整个数据目录
tar -xzvf archive.tar.gz 解压 .tar.gz 文件 还原备份
tar -cjvf archive.tar.bz2 /data 打包成 .tar.bz2(压缩率更高) 需要更小体积时
zip -r archive.zip /data 压缩成 .zip 格式 与 Windows 用户交换文件
unzip archive.zip -d /target 解压到指定目录 解压到特定位置

7. 网络查看

命令示例 说明 使用场景
ifconfigip addr 查看 IP 地址和网卡信息 查看服务器 IP
ping 192.168.1.1 测试网络连通性 排查网络是否通畅
netstat -tuln 查看所有监听端口 检查服务是否正常监听
netstat -anp \| grep 8080 查看端口 8080 被哪个进程占用 解决端口冲突问题
ss -tuln 更快的端口查看命令(替代 netstat) 查看监听端口

8. 别名与快捷操作

命令示例 说明 使用场景
alias ll='ls -alF' 设置别名,简化长命令 提高日常操作效率
alias gst='git status' 设置 Git 别名 简化 Git 操作
unalias ll 取消别名 临时取消别名设置
history 查看命令历史记录 找回之前用过的命令
!! 重复执行上一条命令 忘记加 sudo 时用 sudo !!
Ctrl + R 反向搜索历史命令 快速找回之前的长命令

📕 高级篇 —— 运维进阶(脚本编写与系统调优)

适用人群:有经验的运维工程师、系统管理员、DevOps 工程师
学习目标:掌握流编辑、计划任务、性能分析、批量处理等高级技能

1. 流编辑与文本处理(sed / awk)

命令示例 说明 使用场景
sed 's/old/new/g' file.txt 将文件中的 old 全部替换为 new(预览) 查看替换效果
sed -i 's/old/new/g' file.txt 直接修改文件(原地替换) 批量修改配置文件
sed -i '/^#/d' file.txt 删除所有以 # 开头的行 清理配置文件中的注释
sed -n '10,20p' file.txt 只显示第 10 到第 20 行 提取日志中间部分
awk '{print $1}' log.txt 打印每行的第一个字段 提取 IP 地址或时间戳
awk '{sum+=$1} END {print sum}' data.txt 对第一列求和 统计数据总和
awk '$3 > 100' data.txt 过滤第三列大于 100 的行 筛选符合条件的记录

2. 定时任务(crontab)

命令示例 说明 使用场景
crontab -e 编辑当前用户的定时任务 添加/修改定时任务
crontab -l 查看当前用户的定时任务列表 检查已配置的任务
crontab -r 删除当前用户的所有定时任务 清空任务列表
定时任务语法示例
0 2 * * * /backup.sh 每天凌晨 2 点执行备份 自动备份数据
*/5 * * * * /check.sh 每 5 分钟执行一次检查 监控服务状态
0 9-18 * * 1-5 /work.sh 工作日 9:00~18:00 每小时执行 业务时段任务

3. 性能监控(vmstat / iostat / sar)

命令示例 说明 使用场景
vmstat 2 每 2 秒输出一次系统状态(CPU/内存/IO) 快速查看系统负载
vmstat 2 5 输出 5 次后停止 采样分析
iostat -x 2 查看磁盘 I/O 详细情况(每 2 秒) 定位磁盘性能瓶颈
iostat -x 2 5 采样 5 次后停止 短期 I/O 分析
free -h 查看内存使用情况(人性化显示) 检查内存是否不足
df -h 查看磁盘分区使用情况 检查磁盘空间是否快满
du -sh /home/* 查看每个用户占用的磁盘空间 找出占用空间大的用户
time ls -R / 测量命令执行耗时 评估命令/脚本性能

4. 高级进程管理(pgrep / pkill / nohup)

命令示例 说明 使用场景
pgrep -u root sshd 查找指定用户运行的进程 PID 精确查找进程
pgrep -f "java.*jar" 按完整命令匹配查找 查找特定 Java 服务
pkill -u zhangsan 终止某用户的所有进程 用户退出时清理进程
nohup java -jar app.jar & 后台运行程序,退出终端也不停止 部署 Java 服务
jobs 查看当前终端后台运行的任务 管理后台任务
fg %1 将后台任务 1 调回前台 恢复交互操作
bg %1 将挂起的任务放到后台继续运行 后台执行任务

5. 重定向与管道组合(高级用法)

命令示例 说明 使用场景
./script.sh > output.log 2>&1 将标准输出和错误输出都写入文件 完整记录脚本执行日志
./script.sh >> output.log 2>&1 追加输出到文件(不覆盖) 累加日志
./script.sh 2>/dev/null 忽略错误输出 只看正常输出
cat file1 file2 \| sort \| uniq > result.txt 组合多个命令处理数据 复杂数据清洗
find . -name "*.log" \| xargs grep "ERROR" 用 xargs 批量处理搜索结果 在大量日志文件中搜索

6. 链接与环境变量

命令示例 说明 使用场景
ln -s /usr/bin/python3 /usr/local/bin/python 创建软链接(快捷方式) 统一不同版本的路径
ln file.txt hardlink.txt 创建硬链接(同一文件不同名字) 备份而不占用额外空间
export JAVA_HOME=/usr/lib/jvm/java-11 设置环境变量 配置程序运行环境
echo $PATH 查看当前 PATH 路径 确认命令搜索路径
unset http_proxy 删除环境变量 取消代理设置

7. 远程操作与数据传输(scp / rsync)

命令示例 说明 使用场景
scp file.txt user@192.168.1.100:/home/user/ 通过 SSH 复制文件到远程服务器 上传文件到服务器
scp -r /data user@192.168.1.100:/backup/ 递归复制整个目录 同步整个文件夹
rsync -avz /data/ user@192.168.1.100:/backup/ 增量同步(只传输变化部分) 高效备份数据
rsync -avz --delete /data/ user@192.168.1.100:/backup/ 同步并删除目标端多余文件 精确镜像同步

8. 系统服务与日志轮转

命令示例 说明 使用场景
systemctl start nginx 启动 nginx 服务 管理系统服务(CentOS 7+)
systemctl status nginx 查看服务运行状态 检查服务是否正常
systemctl enable nginx 设置服务开机自启 配置开机自动启动服务
journalctl -u nginx -f 实时查看某个服务的日志 排查服务启动问题
journalctl -u nginx --since today 查看今天的所有服务日志 分析今日服务运行情况

📊 难度对照速查表(快速定位)

难度 核心命令 典型使用场景
⭐ 初级 cd, ls, cp, mv, rm, mkdir, cat, head, tail, pwd, date, whoami 日常文件管理、目录导航
⭐⭐ 中级 grep, find, ps, kill, chmod, chown, sort, uniq, tar, zip, netstat, alias 日志排查、权限管理、进程控制
⭐⭐⭐ 高级 sed, awk, crontab, vmstat, iostat, nohup, rsync, systemctl, xargs 脚本编写、性能调优、自动化运维

🔥 高频组合命令(实战推荐)

场景 命令组合
实时查看错误日志 tail -f app.log \| grep ERROR
统计 Top 10 访问 IP cat access.log \| awk '{print $1}' \| sort \| uniq -c \| sort -rn \| head -10
批量停止所有 Java 服务 ps aux \| grep java \| awk '{print $2}' \| xargs kill -9
查找并清理 7 天前的备份 find /backup -name "*.tar.gz" -mtime +7 -delete
备份目录并压缩为带日期的文件 tar -czvf backup_$(date +%Y%m%d).tar.gz /data
远程同步网站根目录 rsync -avz --delete /var/www/ user@backup-server:/backup/www/