如果你刚开始接触 Linux大概率会有一种感受命令又多又杂今天记了明天就忘用的时候还得现查。这份汇总表最初是我给自己做的前期笔记边学边记断断续续攒下来所以原稿上特意标了不完整三个字。后来发现身边不少刚入门的同事、群友都在整理类似的东西就把它重新梳理了一遍加上参数解释和适用场景专门写给前期阶段的你——不用一口吃成胖子先把出现频率最高、排查问题时最救命的那批命令掌握好后面再逐步扩充。1. 为什么小白前期只需要这几类命令我见过不少新手学习 Linux 时最容易犯的错一上来就背几十个命令的几百个参数恨不得把所有手册都装进脑子里结果真上了服务器还是不知道从哪里下手。前期阶段你真正需要的并不是命令数量多而是覆盖高频场景。什么是高频场景无非就是这几件事看文件、挪文件、查系统状态、装软件、看日志、找进程。围绕这几个动作去整理命令效率最高。还有一点很重要前期笔记里如果每一条只写这个命令是干什么的那这份表基本没什么用。真正值钱的是参数和解释。就拿ls来说单独写列出文件毫无营养但如果写清楚ls -lh里的h是 human-readable 的意思、让你能直接看到文件大小是 4.2K 还是 59M你下次用到的时候才能真正想起来。整理这类命令表本质上是给自己做一本场景化的速查手册而不是把 man 手册抄一遍。再补充一个方法论上的建议建议按功能群组来记命令而不是按字母序。文件操作放一起、文本处理放一起、权限管理放一起、网络排查放一起。因为我们在实际工作中很少会按字母表顺序想事情你只会想我该怎么把这个日志倒序看最后几行——这时候你就需要那个群组里的tail、grep、sort而不是在脑子里从头检索一遍。这份表覆盖的方向我个人觉得适合作为第一阶段的内容文件与目录操作、文本查看与处理、系统状态与权限、网络与进程排查外加一条学习路线建议。够用但不冗长。后面你自然会遇到更复杂的场景比如 shell 脚本、awk/sed 处理文本、systemd 服务管理那是第二阶段的事前期不用硬塞进来。2. 文件与目录操作整个 Linux 使用频率最高的主战场无论是日常登录服务器改配置还是部署项目、清理磁盘你最先打交道的肯定是文件系统。Linux 的哲学是一切皆文件所以前期的命令表里这一部分我建议放在最前面练得也最勤。2.1 查看与切换pwd、ls、cdpwd是 Print Working Directory显示当前所在目录的绝对路径。听起来太基础了但你看日志、写脚本、配置 cron 时经常需要用绝对路径没有这个命令你只能靠猜。ls不加参数时只显示文件名但别满足于此前期请逼自己习惯用组合参数ls -l查看权限、所有者、大小、修改时间ls -a查看隐藏文件以点开头的文件ls -lh中的h把大小变成人类友好的 KB/MB/GB 格式。我刚入门时经常忘记-a结果配置个.env文件怎么都找不到后来就成了肌肉记忆凡是找不着文件先ls -la再说。cd是切换目录这个命令有几个容易忽略的点。cd ~回到当前用户的家目录cd -回到上一次所在目录这在两个目录之间来回切换时非常顺手。前期很容易犯的错是绝对路径和相对路径混用导致找不到目录。建议刚开始统一用绝对路径等对目录结构熟了再改用相对路径。另外在脚本里写路径时要有意识地区分点开头的是隐藏文件还是相对路径别踩了这个坑。2.2 创建与复制mkdir、touch、cpmkdir创建目录-p参数可以一口气创建多级目录比如mkdir -p /data/logs/nginx即使中间层级不存在也不会报错。如果你不用-p就必须一层一层地建——真实场景里部署脚本几乎一定会加-p原因就是省事且幂等。touch的主要用途有两个创建空文件以及更新已有文件的时间戳。前期用到的场景基本都是我需要一个文件来测试或者编辑touch一下就好。注意它不会清空已有文件内容只会刷新时间别和重定向搞混了。cp复制文件cp -r递归复制目录这是最容易漏掉的参数。不加-r想复制目录时会直接报 omitting directory第一次遇到这个报错的人往往会愣一下。还有个实用参数是-p保留原文件的权限和时间戳。在拷贝配置文件、备份目录时能不能保留原权限差别很大少了它可能造成程序无法读取。前期哪怕记不全所有参数-r和-p这两个务必记住。2.3 移动与删除mv、rmmv既能移动文件也能重命名。你需要知道的一个细节是它和cp不同不会复制一份出来而是在同一文件系统内移动所以对大文件来说瞬间完成不会占额外磁盘空间。在同一个分区里移动文件本质上只是改了目录项理解这一点你就知道为什么有时候几百GB的目录移起来那么快了。rm必须单独拎出来说因为它是前期最大的高危命令。rm -f是强制删除不提示rm -r是递归删除目录两个组合成rm -rf之后删除速度极快且无警告。我用这个命令时有一条铁律永远先ls看一眼目录内容再执行删除绝不在路径中直接写*必要的时候用rm -rf /path/to/这种带斜杠的写法也要格外小心。网上流传的各种删库跑路段子基本都是rm用得不谨慎闹出来的。前期宁可多打几个字也不要用模糊路径。2.4 查找文件find 的最简用法find是个强大到令人头秃的命令但前期你真的只需要记住几个用法就够了find . -name *.log在当前目录递归查找名字匹配的文件find /data -type d -name logs按类型查找目录find . -size 100M找大文件。多一个别记记多了反而畏难。等有需求再深入研究-exec、-mtime这些高级参数。查大文件时我一般还会配合du -sh *先看当前目录下谁占的磁盘空间最大再针对性地找。3. 文本查看与处理排查问题时最救命的基本功服务器上出了问题多半要从日志里找线索配置文件里改了参数也要查看确认。Linux 下文本处理命令非常多但让你前期背 awk、sed 属实没必要先把下面这几个玩熟。3.1 查看文件内容cat、less、head、tailcat最直观把整个文件内容一次性输出到终端。但它有致命弱点文件一大满屏刷过去根本看不过来。所以后期我一般情况下会用less它支持分页查看、上下翻页、搜索输入/再输入关键词查看大日志时的体验好得多。前期的话cat和less都学会切换即可——小配置文件用cat大日志用less。head -n看文件开头指定行数tail -n看结尾行数两者互补。这里特别强调tail -f它的功能是持续跟踪文件末尾新增的内容排查实时日志时几乎是必需的。比如你看调试日志有没有输出tail -f app.log挂着页面一操作新日志刷出来。想停下来是 CtrlC。我到现在都认为tail -f是最有调试感的命令之一前期学会它就是多了一只眼睛。3.2 按内容搜索grepgrep可以说是前期性价比最高的命令没有之一。它的核心逻辑是按关键词过滤文本但常用的参数你一定要会grep -i忽略大小写搜索时不用再纠结大小写非常实用grep -r在目录下递归搜索例如grep -r timeout /etc/nginx/grep -n显示行号定位问题时方便太多grep -v反向匹配排除掉某些行比如你只想看不含 success 的报错日志前面提到文本查看把grep和管道符结合才是真正的日常操作。管道符|把前一个命令的输出交给后一个命令处理例如cat error.log | grep 500一看就知道哪些请求返回了 500。更常见的反而是tail -f access.log | grep api/user实时过滤出关心的接口日志。这就是为什么我把管道符和 grep 放在一起讲——它们是前期数据排查的最小组合单元。3.3 输出与统计echo、wc、sort、uniqecho在前期主要是打印变量、拼接字符串、往文件里写入内容例如echo hello world或echo 127.0.0.1 oldsite.com /etc/hosts配合追加输出属于高频操作。wc -l数行数可以用来看日志多少行、代码多少行。sort排序uniq -c去重并统计出现次数两者经常连用sort access.log | uniq -c | sort -rn统计每个 IP 的访问次数并降序排列排查谁在疯狂请求时很有用。注意uniq必须作用于已排序的数据否则去重会失败新手第一次用经常会踩这个坑。4. 系统状态与权限知道你的电脑现在什么状态光会操作文件不够你还得知道这台 Linux 当前状态如何空间还剩多少、内存多大、跑没跑着什么程序、能不能 sudo。这部分命令前期不需要深挖但每个都会用因为它们是排查环境问题的起点。4.1 系统信息whoami、uname、df、du、freewhoami显示当前用户刚用服务器时经常有人搞不清自己是谁、权限边界在哪。uname -a显示内核版本、主机名、系统架构等装软件出问题时经常需要查这个信息。df -h查看磁盘分区的使用情况h参数你懂的人类可读格式。服务器磁盘满了、程序报 no space left on device 时第一个跑的就是它。du -sh查看指定目录总大小du -sh *可以列出当前目录下每个子目录的大小排查哪个目录吃了磁盘空间时很顺手。free -h查看内存与交换分区的使用情况。注意看free的输出时不要只盯着 available 那列看还要理解 cached 和 buff 的区别Linux 会把空闲内存用作缓存所以used 很大不代表内存不够。前期有个粗略的判别法只要 available 不小系统不至于很难受。4.2 权限与用户sudo、chmod 的初步理解sudo是让普通用户以管理员权限执行命令。前期最容易搞混的是你在自己电脑上能随便 sudo但生产服务器上你可能根本没有 sudo 权限所以不要理所当然地认为所有命令都能用 sudo。权限管理最核心的命令是chmod但理解它比记住它的参数更重要。Linux 权限用三位数字表达比如chmod 755 file。每个数字对应这三类角色的某种权限组合文件所有者、所有者所在的组、其他用户。读权限是 4写权限是 2执行权限是 1加起来就是该角色的权限值。755 的意思是所有者可读可写可执行组用户可读可执行其他用户可读可执行。前期经常听到的442 纪念日那种说法其实就是权限数字的快捷表示别当成神秘符号。等到你被权限问题折磨过两次自然就记住这个规则了。我推荐前期只掌握chmod 755、chmod 644、chmod x这几种常见组合剩下的一查便知。4.3 进程查看top 和 ps 的差别top动态显示系统实时状态CPU、内存占用、进程列表按q退出。如果你特别卡的时候想看谁在吃资源top是首选大写的P按 CPU 排序大写的M按内存排序。ps则更多是静态快照ps aux是最常用的组合查看当前所有进程及它的 PID、CPU、内存、命令行参数。两者区别可以简单记为top是看实时情况ps是拍一张快照。排查服务进程有没有起来前期最常用的还是ps aux | grep 进程名——又是 grep。5. 网络与进程排查小白前期最容易忽略但很关键的部分很多新手前期只练文件操作遇到网站打不开连接不上数据库就彻底没方向了。其实网络排查命令被神化了前期也只需要掌握几个最常用的。5.1 看端口与连接netstat 或 ssnetstat是传统网络排查工具但现在一些精简系统里面可能已经用ss替代了。常用的方式netstat -tlnp查看本机正在监听的 TCP 端口以及对应的进程名和 PID。服务起不来第一件事就是看端口有没有被占用端口被占也要靠它找出来是哪个进程干的。ss的命令风格和netstat很相似不过执行更快新系统上优先用ss -tlnp。如果你遇到连接数过高、疑似被扫端口等问题还可以用ss -s看统计信息。前期不用背太多把查端口监听、查端口占用进程这两个核心场景练熟就够了。5.2 测试连通性ping 的正确理解ping测试主机之间的网络连通性ping -c 4限制只发 4 个包避免无限 ping 下去。我需要提醒一个前期常见误区ping通并不代表服务正常。ping测的是网络层而应用层接口要能正常工作还依赖端口、防火墙规则、服务进程等多个环节。所以有时候 ping 通了但网页依然打不开不要惊讶后续要用telnet或其他方式检查端口层面是否通、服务是否在监听。5.3 查看 IP 与排查网络配置ip 和 hostnameip addr查看网卡 IP 地址这是新命令替代了老式的ifconfig。想快速知道本机 IP 时hostname -I更方便显示内容简洁。另外ip route show查看路由表即默认网关遇到能上内网但上不了外网时优先检查路由表是否有问题。hostname显示主机名在配置集群、识别机器时有用临时改主机名也可以用它加参数搞定。5.4 杀进程kill 的礼仪kill命令并不是直接把进程一锤打死它本质上是给进程发送一个信号。默认的kill PID发的是 TERM 信号相当于礼貌地请进程退出实在不行才用kill -9 PID强制结束进程。前期看到进程卡死动不动就-9其实不是好习惯。优先给进程一个善终的机会让它清理临时文件、释放资源强行杀容易留下脏数据。ps aux | grep查出 PID再用kill处理这是标准套路。6. 一条适合小白前期的学习路线建议聊完具体命令我最后给你分享一下前期学习路线的个人建议这也是我给身边新手朋友讲过很多次的思路。不要着急用那些复杂而强大的工具。前期把看得到、找得到、删得掉这三个基本能力先练出来。所谓看得到就是能一眼看出来系统状态、目录结构、文件大小、环境配置找得到就是面对报错信息不至于束手无策会用find、grep、ps aux去定位文件、日志和进程删得掉是指你能安全地清理临时文件、停掉不用的进程而不会导致服务挂掉。然后给自己安排几个小任务边做边查表。比如给某个目录写个简单的日志管理脚本先创建目录再生成测试文件查看日志增长情况再用tail和grep找到报错行最后统计今天的日志行数。做完这一套你前期的这些命令就都串联起来了。光看不练三小时就忘练过一次大概率能记得住。最后再分享一个我踩过的坑刚开始整理命令表时我恨不得把每个参数都写进去结果看着密密麻麻的笔记反而失去了查询的动力。后来我改成只写自己实际用过、且知道为什么这么用的命令这份表的价值立刻提升了一个档次。前期笔记少而精比多而全要有效得多。等你用一段时间再针对具体场景逐步补齐这份不完整的汇总表自然会越来越完整。