今晚下班刚到家手机连续弹出三封报警邮件某台测试服务器的CPU使用率直接飙到95%。我放下包打开电脑从SSH登录、看负载、查进程、定位日志到杀掉异常进程、临时重启服务前后不到十分钟。整个过程没有图形界面全靠终端里敲命令。如果你也经历过类似场景就知道Linux常用命令不是背单词而是救命的工具。这篇内容不是什么官方文档的搬运是我多年在服务器上“摸爬滚打”攒下来的实操记录。从最基础的cd、ls到排查问题时的组合用法都会涉及重点讲清楚每个命令背后解决什么问题以及怎么避开我踩过的坑。不管你是刚接触Linux的学生、从前端转运维的开发者还是自己搭过个人服务器的爱好者这篇内容应该能帮你把零散的命令串成一套完整的处理思路。1. 为什么你背了那么多命令遇到问题时还是不会用很多人学Linux命令的方式是打开一篇“常用命令大全”从头背到尾。结果真上了服务器面对一堆输出不知道看什么更不知道下一步敲什么。问题不在于命令不够多而是没有建立起“遇到问题该用什么命令组合“的思维方式。1.1 命令不是记忆单元是解决问题的工具我们先看图。假设你登录服务器后想知道”这台机器现在状态怎么样“你会做什么新手通常会敲一个top看到一堆数字然后退出。老手会先看负载平均值load average如果1分钟负载比5分钟、15分钟高很多说明是刚刚涌进来的请求如果三个数都很高说明持续拥挤了。接着敲free -h看内存还有多少敲df -h看磁盘满了没有再配合uptime确认机器跑了多久。这就是命令组合的雏形。top回答“谁在消耗CPU”free回答“内存够不够”df回答“磁盘有没有写满”。单条命令只是工具一串命令组合起来才能拼出完整的故障画面。经验在脑海里维护一张“问题-命令”对照表而不是命令-解释对照表这样遇到实际故障时反应速度会快很多。1.2 为什么图形界面下也要会用命令现在很多Linux发行版都有不错的桌面环境文件管理器、系统监视器都有。但服务器上基本没有图形界面而且远程操作、自动化脚本、定时任务这些场景命令是唯一入口。举个最简单的例子你写了个备份脚本每天凌晨3点把数据目录打包上传到远端存储这个场景没有命令根本跑不起来。就算你日常用的是带桌面的Linux命令也常常更快。批量重命名100个文件、统计某个目录下所有图片的大小之和、查找三天前修改过的配置文件用图形界面操作非常痛苦命令几秒钟就能完成。掌握常用命令不是让你抛弃图形界面而是给你多一条更高效的路径。1.3 命令的通用规律让你不用死记硬背Linux命令虽然多但有规律可循。大多数命令遵循“命令 [选项] [参数]”的结构比如ls -l /home就是列出/home目录的详细信息。短选项用单个字母加短横线比如-a可以合并成-la长选项用两个短横线比如--all语义更清楚。获取帮助可以用man 命令名查看完整手册或者命令名 --help查看简版说明。还有一个规律命令往往由“做事的工具”和“处理文本的管道”配合使用。几乎所有命令的输出都可以通过管道符号|交给另一个命令继续处理比如ls -l | grep txt就是列出文件后筛出名字里带txt的行。理解了管道这把“万能胶水”很多复杂任务都能串起来。2. 文件与目录操作服务器上的一切都是文件Linux的设计哲学里一切都是文件——普通文件、目录、设备、甚至进程信息都以文件形式呈现。所以文件与目录操作是Linux的基本功这部分熟练度直接决定你做其他事情的上限。2.1 切换目录与查看内容cd、pwd、lscd是切换工作目录这个命令很少有人不熟但有几个细节值得注意。cd -可以回到上一次所在的目录在两层目录之间来回切时非常省事cd ~回到当前用户的家目录cd ..返回上一级目录。如果你在脚本里写了cd要记得判断是否成功因为目录不存在时cd会报错脚本没加判断会继续往下走可能产生意外的副作用。pwd打印当前工作目录的绝对路径。看似简单在写脚本、配环境变量时特别有用因为你经常需要确认自己到底在哪个目录下。我遇到过有人把脚本里的相对路径写错了就是因为没先执行pwd确认位置。ls是列出目录内容不加参数时只显示名字。我几乎总是用ls -lah组合-l列出详细信息权限、链接数、属主、大小、修改时间-a显示隐藏文件以.开头的文件-h把字节数转成人类易读的K、M、G。查看输出时重点留意第一列的权限位和最后一列的修改时间。排查问题时文件大小和最近修改时间往往是第一线索。2.2 常见误区rm的坑与cp的重要选项rm用来删除文件或目录是Linux里公认的高危命令。我见过不少人在生产服务器上rm -rf /或者rm -rf $变量变量没赋值时变成了删根目录。避免方法是用绝对路径时反复确认在脚本中用变量时先检查变量是否为空或者干脆用rm -i让每次删除都先询问。更稳妥一些删除重要目录时先移动到/tmp下的某个回收目录观察几天没问题再真正删掉。cp复制文件或目录-r选项表示递归复制目录不加这个选项复制目录会报错。cp -i在目标文件已存在时会询问是否覆盖这个习惯能救命。我有个真实经历某次要覆盖一个配置文件路径写错成另一个相似文件正是-i选项的提示让我发现目标不一致避开了配置被覆盖的故障。mv移动文件或重命名同分区时只是修改目录记录速度快跨分区时实际发生复制删除大文件会明显感觉到卡顿。如果移动的是个大文件目录提前用df -h确认目标分区的剩余空间够不够否则会失败。2.3 查找文件的三种方式which、find、locatewhich用来查找可执行文件的位置本质是搜索环境变量PATH包含的目录。你敲python却提示找不到或者不确定系统里默认的python是哪个版本which python直接看路径就行非常直观。find是强大的文件查找工具语法是find 路径 -name 文件名。几个高频用法按名字找find /etc -name *.conf按类型找find / -type f -name access.log按时间找find /logs -mtime 77天前修改过的文件常用于清理日志按大小找find / -size 200M。用-mtime清理旧日志是老运维的常规操作。locate通过预先建立的数据库快速查找速度比find快得多但数据库不是实时更新的新创建的文件可能暂时查不到需要先执行updatedb更新数据库。在没有locate命令的系统中可以用find替代速度慢但结果准确。2.4 打包压缩tar、zip、unzip服务器上最常用的打包工具是tar。常用组合tar -czvf archive.tar.gz /path表示打包并gzip压缩-c创建、-zgzip压缩、-v显示过程、-f指定文件名解压时用tar -xzvf archive.tar.gz。注意-f后面最好直接跟文件名顺序别放错解压前可以用tar -tzvf archive.tar.gz先列出包内容确认没有解压到当前目录覆盖同名文件的风险。zip和unzip在交换文件时常用zip -r archive.zip /path可以对目录递归压缩unzip archive.zip解压到当前目录。Linux环境下中文文件名的zip包有时会出现乱码根源是编码不一致可以用unzip -O GBK archive.zip指定编码解压。提示无论打包还是解压都要注意操作目录。tar解压时默认解压到当前目录如果包内是散落的大量文件会把当前目录搞得很乱。最好先建一个目录再进去解压。3. 权限与用户管理多用户系统的基本规则Linux从设计上就是多用户、多任务系统。权限和用户管理是Linux安全的基础不懂这套规则很容易出现“明明有文件却读不了”或者“别人能改你的文件”这类问题。3.1 理解文件权限位rwx与数字表示执行ls -l时输出第一列的第一位表示文件类型-普通文件、d目录、l符号链接后面9个字符分成三组对应属主、属组、其他人三类用户的权限。r读、w写、x执行顺序固定。数字表示法把r记作4、w记作2、x记作1每组相加得到0到7的数字。chmod 755 file就表示属主rwx4217、属组rx415、其他人rx415。7是777权限表示所有人都能读写执行这在服务器上是非常危险的操作。给网站目录赋权限时我习惯用755目录和644文件既能正常运行又不给多余权限。3.2 修改权限与属主chmod、chownchmod修改权限除了数字方式也可以用符号方式比如chmod ux script.sh给属主增加执行权限chmod a-x file去掉所有人的执行权限。调试脚本时经常遇到“Permission denied”多半是脚本没有执行权限chmod x script.sh即可。chown修改文件属主和属组chown user:group file同时改两者。比如把网站目录从root改为www用户所有命令是chown -R www:www /var/www。-R表示递归应用到所有子文件和子目录不写时只改目录本身。分享到这里的知识点比较密集但每一条都是排查权限问题时必须掌握的。3.3 用户与用户组管理useradd、usermod、passwd新增用户常用的命令是useradd -m -s /bin/bash username-m创建家目录-s指定默认shell为bash。用户创建后需要设置密码passwd username交互式设置。usermod -aG groupname username把用户添加到附加组常见场景是把某个运维账号加入docker组或sudo组。我建议新建用户时不要直接用root干所有事情日常操作使用普通账号需要管理员权限时再用sudo。这样能减少误操作对整个系统的影响。userdel -r username删除用户并同时删除家目录和邮件目录注意删除用户是个不可逆操作执行前要确认。3.4 sudo与/etc/sudoers的合理配置sudo允许普通用户以其他用户身份默认是root执行命令最常见的用法是sudo command。比如sudo systemctl restart nginx重启Nginx服务。首次在特定终端使用sudo会提示输入当前用户的密码之后一段时间内缓存凭据。修改sudo权限需要编辑/etc/sudoers文件但用visudo命令编辑更安全它会在保存时做语法检查防止写错导致整个sudo不可用。给某个用户全部管理员权限可以加一行username ALL(ALL) ALL给某个用户组加sudo权限则写%groupname ALL(ALL) ALL。很多发行版默认把wheel组或sudo组的成员设为可sudo所以添加用户到组后新开终端才生效。4. 进程与性能排查服务器变卡时怎么办服务器变卡是运维最常遇到的问题。卡的原因可能是CPU被某个进程占满、内存不够触发swap、磁盘满了没法写入或者网络带宽被占满。下面按“现象-命令-处理”的思路拆解排查路线。4.1 查看进程全貌ps、top、htopps -ef列出当前系统所有进程的详细信息每一行是一个进程。配合管道过滤可以快速找到目标进程比如ps -ef | grep nginx找出所有和nginx相关的进程。使用grep时会连带显示grep自身这条进程如果想要更干净的结果可以用pgrep -l nginx或者过滤时排除掉grep那一行。top动态显示系统资源占用情况默认按CPU占用率排序。按P按CPU排序按M按内存排序按1查看每个CPU核心的使用情况按q退出。负载平均值load average三个数字分别是1分钟、5分钟、15分钟的平均负载如果持续超过CPU核心数说明系统忙不过来了。htop是增强版信息更直观可以上下滚动选择进程按F9可以直接杀掉颜色区分内存和CPU。好用的工具值得花点时间配置比如调整成树状视图会更清晰但临时排查时top完全够用。4.2 杀掉进程的正确姿势kill、killall、pkillkill PID默认向进程发送SIGTERM15信号相当于礼貌请求进程自己退出。如果进程不响应再用kill -9 PID发送SIGKILL强制结束。顺序很重要不要一上来就kill -9有些进程没有机会清理临时文件或释放锁可能导致数据损坏。pkill可以通过进程名结束进程比如pkill -f python app.py-f表示匹配完整命令行这样就能精确命中。killall nginx结束所有名为nginx的进程在需要重启一组worker进程时很实用。杀进程时最怕误杀所以先ps -ef | grep 关键词确认PID列表再执行删除。4.3 内存与磁盘排查free、df、dufree -h查看内存使用情况-h让数字更易读。重点看available这一列它表示在不触发swap的情况下还能给新进程多少内存。如果available长期低位考虑加内存或排查内存泄漏。swap分区长期被大量占用意味着物理内存不够用应用性能会明显下降这往往是该扩容的信号。df -h查看磁盘分区的总体使用情况df -h /只查看根分区。磁盘写满是常见的故障源一般建议空间使用率不要超过80%否则影响性能并可能触发各种问题。du -sh *统计当前目录下每个子目录或文件的占用大小-s汇总、-h易读。清理空间时先从du -sh找出大目录再逐层进入定位大文件。4.4 实时性能监控iostat、netstat、ssiostat查看磁盘I/O读写状态iostat -x 1每秒刷新一次详细状态。如果%util接近100%磁盘可能成为瓶颈。服务变慢但CPU和内存都正常时磁盘I/O是最需要关注的排查点。netstat和ss用于查看网络连接状态。ss -tunlp比较常用-t显示TCP、-u显示UDP、-n显示数字地址和端口、-l只显示监听状态的连接、-p显示关联的进程。排查“端口被占用”时这条命令最直接。netstat -tunlp类似新环境没有ss的可能性较小两者选一个就行。5. 文本处理三剑客grep、sed、awk服务器上大量数据以文本形式存在日志文件、配置信息、命令输出。文本处理能力直接决定运维效率。这三个命令是我每天都在高频使用的值得花时间系统学习。5.1 grep从文件或输出中筛选关键行grep按行匹配文本最简单的用法是grep 关键词 文件名。查看日志时最常用的是grep ERROR app.log把错误行筛出来。grep -i忽略大小写grep -n显示行号方便后面用sed定位grep -v反向匹配排除某些行grep -o只输出匹配到的部分而不是整行。配合管道可以做一些很实用的操作比如ps -ef | grep java | grep -v grep过滤出java相关的进程或者history | grep docker在历史命令里搜索docker相关的操作。grep -r 关键词 /path递归搜索目录下所有文件内容排查代码或配置问题很好用。5.2 sed按模式处理文本的行编辑器很多人见到sed就躲其实日常工作用到的命令不超过五个。基本格式是sed 操作/匹配/动作 文件。sed s/旧/新/g file全局替换文本把旧内容全部替换为新内容sed -i直接修改源文件不用打印到屏幕sed -n 10,20p file打印第10到20行sed 10d file删除第10行注意默认只是把处理后的结果输出不写-i不会影响原文件。举一个实际场景某次排查问题时需要把所有日志中的IP地址替换成脱敏格式命令就是sed -i s/192\.168\.1\.[0-9]*/IP_ADDR/g app.log。替换时不加-i先预览一遍输出确认无误再加-i操作这个习惯帮我避免过几次低级错误。5.3 awk按列处理文本的编程工具awk本质上是按列处理文本的编程语言不需要学太多掌握基础就够用。它的核心结构是awk 条件 {动作}默认按空白分割每一行$1是第一列、$2是第二列、$NF是最后一列。查看某个进程内存占用时可以先ps aux找到那一行再用awk提取对应列。比如ps aux | grep app.jar | grep -v grep | awk {print $2}直接得到PID方便在脚本里用。awk {sum $1} END {print sum}可以对某一列求和统计日志里某个数值的总量时很管用。awk的默认分割符也可以改awk -F: {print $1} /etc/passwd按冒号分割提取用户名。5.4 管道与重定向把命令串起来管道|把前一个命令的输出接到后一个命令的输入形成命令链。tail -f access.log | grep ERROR实时跟踪日志并筛出错误行这是排查线上问题时的经典组合。重定向则把输出写到文件或追加到文件command output.log 21把标准输出和标准错误都写到文件适合在脚本里保存日志command output.log追加写入不覆盖旧的日志。一个综合场景统计今天的访问日志里有多少个独立IP命令是cat access.log | awk {print $1} | sort | uniq -c | sort -nr。整个过程从原始日志到最终排行每一步都清晰可查。学习管道和重定向就好比把单个命令的积木搭成更大的结构能做的事情一下就变多了。6. 网络管理远程连接与本地服务排查无论是远程登录服务器还是排查服务端口连接异常网络命令都是必不可少的。下面从连接、监听、域名解析几个方面说明最常用的用法。6.1 远程登录与文件传输SSH与scpssh usernamehost是远程登录到另一台Linux服务器的标准方式首次连接时如果出现指纹确认提示确认是目标机器即可输入yes。生产环境建议用密钥认证公钥放在服务器的~/.ssh/authorized_keys比密码登录更安全且更省心。生成密钥的命令是ssh-keygen -t ed25519然后ssh-copy-id usernamehost把公钥推送到远端。scp基于SSH协议复制文件scp file.txt usernamehost:/path/把本地文件传到远端scp usernamehost:/path/file.txt ./把远端文件拉下来scp -r dir usernamehost:/path/递归复制整个目录。在大文件传输时断点续传可以用rsync代替rsync -avz --progress source/ usernamehost:/dest/支持增量传输网络中断后重跑能继续未完成的部分。6.2 端口监听与服务检查ss与lsofss -tlnp查看哪些端口正在监听-tTCP、-l监听、-n数字端口、-p显示进程。看到端口被占用但不知道是谁占用的场景一条ss -tlnp就能解决。lsof -i :端口号更直接lsof -i :8080显示占用8080端口的进程PID和名称。杀掉占用端口的进程时先确认该进程是否属于当前业务避免误杀。6.3 DNS与连通性排查ping、nslookup、curlping host检查目标主机是否可通但要注意很多服务器禁ping不通不一定是网络问题。nslookup domain查询域名的解析IP排查DNS问题时能看到是哪台DNS服务器返回的答案。curl是一个全能工具curl -I http://example.com看响应头curl -v http://example.com显示详细的请求过程curl -X POST -d keyvalue http://example.com/api发送POST请求。排查“网页打不开”这类问题我习惯按顺序查先ping看通不通再nslookup看域名解析对不对然后curl -I看Web服务响应没有最后看应用日志。这种排查顺序能把网络层面的问题快速隔离出来。7. 系统信息与日志了解机器当前的运行状态服务器状态的全貌需要组合多个命令来拼凑。系统信息告诉我们这台机器是什么配置、跑了多久、内核版本、时区时间等日志则记录系统与应用运行过程中发生的事件。7.1 查看系统基本信息uname、hostname、uptimeuname -a显示完整的系统信息包括内核版本、主机名、操作系统类型。排查驱动兼容性或者确认某些软件是否支持当前内核时会用到这些信息。很多软件对内核版本有最低要求看到明确的报错信息后能快速对照确认。hostname显示或临时设置主机名hostnamectl set-hostname newname可以永久改主机名。在一堆服务器中能见名知意对运维很重要。uptime显示系统已运行时间和负载如果服务器运行时长远超预期说明一直处于高负载状态或者曾经被重启但没人注意到。7.2 日志查看tail、less、journalctltail -f /var/log/nginx/access.log实时滚动查看日志排查访问异常时很常用。tail -n 200显示最后200行适合查看最近的事件head则从头部开始看用处相对少一些。日志文件太大时用less逐屏查看按空格翻页、按/搜索关键词、按q退出。功能上替代了cat直接大文件输出的笨方法。journalctl管理systemd日志journalctl -u nginx.service -f实时查看某个服务的新日志journalctl --since 1 hour ago查看最近一小时的日志配合时间范围排查故障很方便。7.3 时间与时区date、caldate显示当前系统时间date -s 2025-01-01 12:00:00手动设置系统时间需要root权限且生产环境建议使用NTP同步避免手动改时间引发的问题。timedatectl list-timezones查看可用时区timedatectl set-timezone Asia/Shanghai设置时区。服务器时区不一致是常见的小坑——明明日志时间对不上结果发现是时区设置不同。我一般登录新机器后第一件事就是确认时区和时间同步是否正确。8. 一个完整的排查实战从告警到解决前面拆解了很多单独的命令这一部分把它们串成一个真实可复现的排查过程。场景来自某次晚间值班经历过程稍作简化但思路完全保留了当时排查时的逻辑顺序。8.1 场景描述与初步判断晚上十点左右报警提示某台业务服务器的CPU使用率连续5分钟超过85%。登录服务器后我执行的第一个命令是uptime看到负载平均值为6.8、5.2、3.1说明负载在快速上升确实是刚刚开始拥挤。接着用top查看CPU占用最高的进程发现一个名为java-app的进程CPU使用率高达300%——多核环境下表示占用了多个核心。此时第一个判断是应用本身出了问题但还不能确定是流量增长还是代码bug。我先看服务是否还健康用curl -I http://127.0.0.1:8080/health检查本地健康检查接口发现返回500说明应用确实出了问题。8.2 逐步收窄从资源瓶颈到应用进程用free -h确认内存没有压力df -h确认磁盘空间充足排除了系统资源类故障。接下来用journalctl -u java-app -f实时看应用日志看到大量OutOfMemoryError类型的堆栈结合进程占用多核CPU的情况初步认定应用在反复尝试分配内存并触发GC循环。此时用ps -ef | grep java拿到该进程的完整启动命令找到-Xmx2g堆内存配置。继续看日志发现它加载了某个数据文件文件大小约为2.5GB超过堆内存上限。定位到根因后先临时重启进程让服务恢复再把问题反馈给开发同事。整个过程用时大约十五分钟没有花哨的操作就是组合运用前面讲的命令。8.3 快速复盘排查顺序为什么是这样把上面的过程拆开看排查顺序是“系统整体→资源水位→进程定位→日志分析→根因确认”。这种从宏观到微观的顺序能保证每一步的错误面都在收窄而不是东敲一下西敲一下。遇到问题时先从uptime和top看整体确认是不是资源问题如果不是再看进程和日志。结构化排查比记住所有命令更关键命令只是实现思路的载体。9. 常见问题与排查技巧实录下面这些问题是我在实际使用和带新手的过程中反复遇到的。整理成速查表方便你遇到类似问题时直接对照。9.1 “Permission denied”与“command not found”是一回事吗“Permission denied”是权限不够文件存在但当前用户没有相应权限“command not found”是命令不存在或不在PATH里。前者用ls -l看权限并用chmod调整后者用which确认命令是否安装没装就先安装。要注意有时候二者表现相似比如执行一个没有执行权限的脚本报错是“Permission denied”而输入了一个不存在的命令报错是“command not found”。排错时要根据提示先区分是哪一种再对症下药。9.2 端口被占用时怎么办排查端口占用最直接的方法是lsof -i :8080。如果没有输出用ss -tlnp | grep 8080再确认。找到PID后用ps -ef | grep PID确认这个进程是什么再决定是否处理。杀掉占用进程用kill -9 PID但不建议一杀到底最好看清进程是否属于当前业务。如果是别人部署的服务贸然杀掉影响会很大先沟通确认再操作。9.3 磁盘空间明明显示满了du却找不出大文件这种情况通常在Linux下遇到df -h显示分区使用率接近100%但du -sh *统计下来总量对不上。原因多半是有进程删除了文件但仍然保持打开状态文件在进程退出前不会释放空间。用lsof | grep (deleted)找到已经被删除但仍被占用的文件确认对应进程后重启或结束进程即可释放空间。这个坑比较容易忽略排查磁盘问题时如果du和df结果不一致优先想到这个原因。9.4 如何避免误删文件几个实用习惯第一正式删除前先移动到临时目录观察一段时间确认没问题再删这在清理旧日志、旧备份时尤其有用。第二在脚本里使用变量时先判断变量不为空再执行删除避免变量为空导致删错路径。第三少用rm -rf这个组合能不用就不用即使用了也要反复确认路径。第四重要的服务器建议开启回收站逻辑其实本质是“软删除定期清理”策略能极大减少误删风险。9.5 后台执行任务的正确姿势nohup与screen/tmux长时间运行的任务在SSH断开后会中断这是新手经常踩的坑。简单方案是用nohup command 让命令忽略挂断信号并放到后台运行输出可以重定向到文件。更好的方案是用screen或tmux它们是终端复用工具在tmux里开启新会话任务在里面运行断开SSH后重连tmux attach回去还能看到原来的界面。执行数据库迁移、大数据任务这类需要长时间等待的操作时tmux比nohup灵活得多因为后台也可以随时回去看进度、终止任务。10. 后续还能怎么提高用命令组合解决实际需求很多人在学完基础命令后会陷入“每个命令都认识但不知道能做什么”的尴尬期。我的建议是不要按命令背按“需求”找答案。比如“找出目录里最大的10个文件”“统计一个接口的平均响应时间”“把服务器上所有超过90天的日志打包压缩再删掉”等等这些问题自然会把命令组合起来。这里分享几个我在实际工作中经常用到的组合场景都是可以直接“抄作业”的。清理磁盘空间时我会用du -ah /var/log | sort -rh | head -20先找出最大的日志文件。sort -rh按人类易读的数值反向排序head -20取前20名。分析访问日志时awk {print $1} access.log | sort | uniq -c | sort -rn | head -10统计访问量最高的前10个IP。监控服务状态时systemctl status nginx | head -20快速确认某个服务的启动时间、运行状态和最近的日志行。这些组合本质上都是“取数→处理→展示”的逻辑用cat或grep取数用awk/sed处理用sort/head/tail展示。命令熟悉以后你会发现大部分需求都可以用这种方式拆解成可组合的小步骤。最后说一点个人体会Linux常用命令的核心不是把所有的-a、-l选项都背全而是建立起“问题场景→命令选择→输出解读”的完整链路。刚上手阶段建议不要在笔记本上抄命令列表而是记录“今天解决了什么问题用了哪些命令”。遇到不熟悉的选项man是随身手册。用得多了以后很多命令会变成肌肉记忆——毕竟我在排查时十有八九用的还是top、free、df、grep、awk、tail这一套它们不是最花哨的工具但绝对是最可靠、最有效率的那批。希望这篇内容对你实际操作有帮助。如果你也在Linux上摸爬滚打过应该知道真正让人成长的不是条理清晰的知识点而是每一次踩坑后复盘的那几分钟——这才是命令手册之外最有价值的部分。
阅读完成 · 觉得有帮助?