
Linux 常用命令大全运维必背 50 个刚接触 Linux 的人手里总会攒一张命令清单收藏了几十篇文章真到了排查问题的时候还是只会ls和cd。命令这东西光看没用得知道每个命令解决什么问题、关键参数是什么再配合管道把几个命令串起来才叫会用。这篇文章按用途把 50 个高频命令分成 10 类每个命令给出最常用的一个例子和预期输出。别指望一口气背完把它当字典用遇到哪类问题翻到对应分类把命令抄下来跑一遍自然就记住了。文中示例在 Ubuntu 22.04 / CentOS 7 上都验证过CentOS 部分命令输出略有差异【此处需补真实截图】的位置留给你跑完命令后贴图。按用途分类一张表看清全局先建立全局观。50 个命令分布如下分类命令解决什么问题文件管理ls cp mv rm touch ln file看、拷、移、删、建文件目录导航cd pwd mkdir rmdir tree在目录树里移动与创建文本处理cat grep awk sed sort uniq wc head tail cut diff查看和加工文本权限管理chmod chown chgrp umask控制谁能用进程管理ps top kill pkill nohup jobs看进程、杀进程网络ping curl wget ss scp rsync探测与传输磁盘df du mount lsblk fdisk看容量、挂载系统信息uname free uptime date whoami history了解机器状态用户管理useradd passwd su sudo id管理账号查找与帮助find which man alias echo找文件、看手册每类挑几个核心的展开其余在速查表里补全。下面按类逐个过。目录导航与查找帮助排查问题的前提是知道自己在哪、目标在哪。pwd打印当前绝对路径cd切换目录cd ..回上级cd ~回主目录cd -回到上一个目录——最后一个在日常来回切两个目录时很省事。mkdir -p a/b/c一次性建多级目录rmdir只能删空目录非空的得用rm -r。tree -L 2以树形打印两层目录新接手一台机器时先跑它看整体布局。找东西靠find和which。find按名字、类型、大小、时间找文件-name是最常用参数find/etc-name*.conf# 预期输出/etc 下所有以 .conf 结尾的文件路径一行一个whichpython3# 预期输出/usr/bin/python3man是每个命令自带的手册man ls能查到 ls 的全部参数记不清参数时就查它。alias给长命令起短名alias llls -l写进~/.bashrc就永久生效。echo $PATH看可执行文件的搜索路径——命令找不到时八成是它不在 PATH 里。高频命令详解文件与文本文件管理。ls是入门第一命令-lh组合最常用-h把字节数转成人类可读的 K/M/Gls-lh# 预期输出# total 12K# -rw-r--r-- 1 root root 3.5K Aug 26 10:21 app.log# drwxr-xr-x 2 root root 4.0K Aug 26 10:22 confcp、mv、rm三个命令动作相反参数也有讲究。cp -r递归拷目录mv既可移动也可改名rm -rf威力最大-f不询问、-r递归删目录。生产环境慎用rm -rf很多人删库跑路就栽在这一行上。touch建空文件或更新时间戳ln -s建软链接。文本处理。grep是排查日志的绝对主力-i忽略大小写-n显示行号-E启用扩展正则grep-nERRORapp.log# 预期输出# 42:[2026-08-26 10:22:01] ERROR: connect timeout# 87:[2026-08-26 10:30:55] ERROR: disk fullsed做替换格式是s/旧/新/g-i直接改文件建议先不加-i试跑一遍看输出sed -i s/ERROR/WARN/g app.log。awk按列取数据awk {print $1}取第一列日志分析里经常配-F指定分隔符。sort排序加-n按数字排uniq -c去重并计数两者经常串联用。head -n 20看开头tail -f实时跟日志尾部tail -f配合grep能实现只盯错误的效果tail-fapp.log|grep--line-bufferedERRORcut -d : -f 1按冒号切列wc -l数行数diff对比两个文件差异。cat除了看文件还能拼接cat a.txt b.txt c.txt。权限、进程与网络权限。ls -l输出里第一列-rwxr-xr-x就是权限位三位一组分别是所有者、所属组、其他人r4、w2、x1 可相加。chmod 755 script.sh是最常见用法chmod x只加执行权限。chown user:group file改所有者umask决定新建文件的默认权限。进程。ps -ef列出全部进程grep一下就能找目标进程ps-ef|grepnginx# 预期输出# root 1234 1 0 Aug20 ? 00:00:01 nginx: master process# www 5678 1234 0 Aug20 ? 00:00:00 nginx: worker processtop动态看 CPU/内存排行按M按内存排序、按P按 CPU 排序、按q退出。kill -9 pid强杀kill -15 pid优雅退出先给进程机会清理资源pkill按名字杀比如pkill -f python app.py。nohup让命令在终端关闭后继续跑nohup python app.py app.log 21 jobs查看后台任务。网络。连通性先ping -c 4-c 4只发 4 个包。接口与端口用ssss -tlnp列出监听端口和进程比旧的netstat信息更全。抓 HTTP 请求用curl -I看响应头、curl -o file下载、-L跟随跳转。wget批量下载更顺手支持断点续传-c。跨机传输小文件scp大目录和增量同步用rsync -avz后者支持断点运维同步目录基本靠它。磁盘、系统信息与用户磁盘。看容量用df -h-h转成易读格式看目录占多大用du -sh /var/log。想找哪个目录把磁盘吃满了du -sh ./* | sort -rh | head一条链搞定。lsblk看块设备结构fdisk -l看分区表mount /dev/sdb1 /mnt挂载umount /mnt卸载。系统信息。uname -a看内核版本free -h看内存注意free里 buff/cache 可以回收别一看到 used 高就慌。uptime看运行时长和负载load average三个数分别对应 1/5/15 分钟超过 CPU 核数说明忙。date看时间whoami看当前用户history翻历史命令history | grep mysql找回以前执行过的命令。用户。useradd -m user1建用户并建家目录passwd user1设密码su - user1切换用户-会加载目标用户环境sudo提权执行单条命令id看用户所属组。日常维护原则能用普通用户 sudo 就别直接 root 干活。实用组合把命令串起来单个命令是零件组合才是运维日常。三个最常用的组合套路管道|把左边命令的输出喂给右边命令是组合的基础。重定向覆盖写入、追加写入、21把错误输出并到标准输出日志落盘必备。场景化命令串照着跑就能用# 场景1统计日志里各类报错各有多少条grep-EERROR|WARN|FATALapp.log|cut-d:-f1|sort|uniq-c|sort-rn# 预期输出# 128 WARN# 47 ERROR# 3 FATAL# 场景2找出 /home 下各用户家目录占用的磁盘大小从大到小du-sh/home/*|sort-rh|head-5# 场景3杀掉所有残留的 uwsgi 进程先看清楚再执行ps-ef|grepuwsgi|grep-vgrep|awk{print $2}|xargskill-9# 场景4实时监控日志里新增的 500 错误tail-faccess.log|grep 500 # 场景5批量把 .bak 文件改名去掉后缀forfin*.bak;domv$f${f%.bak};done第 3 条里grep -v grep是为了过滤掉 grep 自己xargs把前面输出的每一行作为参数传给kill。这种写法在排查僵尸进程时很常用但执行前务必先跑不带xargs的前半段确认名单没错。组合命令的另一个要点是先想后敲。新手习惯把整条命令串一口气打出来出错了不好定位。更稳的写法是分步验证先跑前半段看输出确认数据符合预期再追加管道继续。比如上面场景 3先ps -ef | grep uwsgi | grep -v grep看进程名单确认无误再接awk和xargs。线上环境操作谨慎永远不过时。还有个容易被忽略的组合工具是tee。它把输出既写文件又打到屏幕调试时既能留档又能实时看df -h | tee disk_report.txt。配合脚本排障时tee比单纯重定向好用得多。速查表50 个命令一次带走分类命令与一句话用法文件ls -lh列表目录cd ..上级目录文本cat拼接权限chmod 755 f设权限进程ps -ef全量进程网络ping -c 4探测磁盘df -h容量系统uname -a内核用户useradd -m u建用户查找帮助find / -name *.conf按名找一次实战磁盘写满的排查把上面的命令串成一次真实排障。现象是服务告警磁盘空间不足处理流程# 1. 确认哪块盘满了、使用率多少df-h# 2. 定位到满的目录后从根向下逐层找大目录du-h--max-depth1/|sort-rh|head-10# 3. 锁定嫌疑目录比如 /var/log找出最大的几个文件du-ah/var/log|sort-rh|head-10# 4. 确认文件内容确实是日志就按策略处理ls-lh/var/log/nginx/access.log# 5. 清空时用 而不是 rm避免进程句柄悬挂/var/log/nginx/access.log这套流程用到df、du、sort、head、ls五个命令靠管道一层层收敛。排查的通用思路就是这样先确认范围再逐级缩小最后处理。不要上来就rm先看清楚删的是什么。命令用错的常见翻车现场命令背熟了反而容易在看似没错的地方翻车。几个高频现场提前打预防针。rm -rf别带变量用。rm -rf $DIR/这种写法一旦$DIR是空或未定义命令就变成rm -rf /代价你承受不起。真要删目录先echo $DIR确认有值再动手更稳的写法是rm -rf -- $DIR删之前再ls $DIR过一眼内容。du和df数字对不上不是出 bug。文件被删但进程还握着句柄df显示空间没释放du却找不到大文件。处理办法是找到持有句柄的进程重启它或者 kill 掉。“磁盘满了但找不到大文件”先想到这一层。kill -9是最后手段。先给kill -15让进程优雅退出留出时间清理临时文件和连接只有它不响应才上-9。上来就-9可能留下半写的文件服务重启都起不来。grep没匹配到会返回 1脚本里开着set -e会直接中断容易误判成程序出错。想让它搜不到也继续跑加|| true或者改判断逻辑。管道同理最后一段的退出码才是整条命令的退出码前面段落挂了也可能被吞掉set -o pipefail能把这个坑堵上。结论50 个命令看起来多拆开就十来个动作看、找、改、传、管。本文最该记住的不是每条语法而是三条思路先grep再处理、先ps再看top、删东西前先ls确认。命令背不下来不丢人能用man和history把正确姿势查出来就是合格的运维。跑完上面的命令把输出贴回来我建议按分类 实际场景整理自己的速查表比任何现成清单都好用。