尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

Linux常用命令实战指南:从文件操作到网络排查

发布时间:2026/9/24 18:49:08

资讯中心
01
ARTICLE

Linux常用命令实战指南:从文件操作到网络排查

Linux常用命令实战指南:从文件操作到网络排查
1. 为什么说Linux命令是绕不开的基本功Linux常用命令这个话题几乎所有入行IT的人都会接触但真正能熟练运用的人并不多。我见过不少工作两三年的运维和开发日常就靠那几个命令来回用——cd、ls、cat、grep真遇到问题就慌了不知道该用什么工具去排查。说白了Linux命令的熟练程度直接决定了你在服务器上解决问题的效率。系统报错、日志排查、进程异常、磁盘满了、端口被占每一种情况背后都有一套固定的命令组合拳你掌握得越扎实定位问题就越快。这篇文章适合谁看刚接触Linux的初学者、准备面试的运维和开发人员、以及想系统梳理命令体系的从业者。我不会按命令大全的模式把几百个命令罗列一遍那没有意义记不住也用不上。我按实际工作场景重新组织把最常用的命令串成一条线文件操作、文本处理、权限管理、进程管理、网络排查、系统信息查看再到实用技巧和常见坑。每一步都会解释命令背后的原理和使用场景让你知道什么情况下该用什么命令而不是死记硬背参数。我在实际工作中带过不少新人发现一个共性问题命令背了不少但不知道组合起来用。比如查一个问题可能需要先df看磁盘、再du定位大文件、再用find清理一套流程下来才算真正解决问题。这篇文章就是想帮你建立这种“用命令解决问题”的思维模式。后面每个章节我都会结合自己的实操经验来写包括踩过的坑和总结出来的技巧尽量让内容能直接落地。2. 文件与目录操作每天都在用的基础命令2.1 ls、cd、pwd的正确打开方式这三个命令是Linux的入门三件套但很多人只是机械地使用并没有发挥出它们应有的效率。先说ls我有一次帮同事排查问题他执行ls -l看文件列表发现某个文件一直不更新结果最后发现文件根本不在这个目录下——他看的是软链接指向的内容但没加-l看清楚链接关系。所以我的建议是ls -l基本可以作为默认操作它能告诉你文件的权限、属主、大小、修改时间这些都是判断问题的基础信息。再加一个-h参数文件大小会自动显示成K、M、G的单位不然看到一堆以字节为单位的大数字你根本不知道哪个文件占了多少空间。ls -lt按时间排序也很有用日志目录下我想看最近修改的文件一条命令就够了。ls -la则用于查看隐藏文件运维排查的时候经常有配置文件以点开头藏在目录里比如.bashrc、.gitignore不加上-a你根本看不到它们存在。这里有个小技巧如果你只想查看目录本身的信息而不是目录内的内容用ls -ld 目录名这个细节很多新手不知道。cd命令的进阶用法cd -可以快速切回上一次所在目录这个在两层目录之间来回操作时效率极高。cd ~回到当前用户的家目录不用记完整路径。我建议你把cd和ls组合成肌肉记忆进到一个不熟悉的目录后第一件事就是ls -l看看里面有什么这比文档描述什么都有用。pwd命令很简单就是显示当前路径但在写脚本的时候它很关键。你写一条自动化任务如果不确认当前工作目录执行结果可能和你预期完全不同。我曾经在处理一个定时备份任务时脚本里用了相对路径结果cron执行时工作目录和手动执行不一样文件全部写到了意想不到的位置。所以写脚本涉及路径操作时我习惯先pwd确认一下。2.2 文件创建、复制、移动与删除的实操细节touch命令用于创建空文件也可以更新已有文件的时间戳。我常用它来快速生成测试文件比如验证磁盘写入速度、测试脚本逻辑。mkdir -p创建多级目录很有用比如mkdir -p /data/logs/2024/05一条命令把嵌套目录全部建好不用一级一级创建。如果你创建目录时不确定父目录是否存在-p参数就是保险。cp复制文件时我强烈建议习惯性地加上-a参数。cp -a保留了文件的权限、属主、时间戳等所有属性。我见过有人用cp复制了一个带特殊权限位的可执行文件结果运行时发现权限丢了排查了很久。cp -r用于递归复制目录但如果你想完整保留属性直接cp -a 源目录 目标目录最省心。mv移动或重命名文件这个命令简单但有一个重要的使用细节跨文件系统移动时会经历“复制删除”的过程而不只是简单地改路径。如果你的源目录和目标目录不在同一个挂载分区大文件的移动时间会明显变长这种情况下优先考虑先复制再删除或者直接用rsync做同步。rm是危险系数最高的命令之一尤其rm -rf我自己的习惯是删除前先ls确认路径并且尽量使用绝对路径避免手误写成rm -rf /dir /这种灾难。这里分享一个我自己的操作习惯在删除目录前我会先把它移到/tmp下观察一段时间确认没问题再真正删除相当于给自己留了个后悔药。另外建议给rm设置一个别名比如alias rmrm -i在删除前强制确认尤其是root用户这条配置能避免很多惨痛的教训。2.3 查看文件内容的正确姿势cat命令大家最熟悉但它只适合查看小文件。如果文件很大比如几个GB的日志用cat会把整个终端刷满直接影响操作。这种情况下应该用less或tail。less支持翻页、搜索、定位是查看大文件的首选工具。进入less后按/输入关键词可以搜索按n跳转到下一个匹配点按G跳到文件末尾按g回到文件开头。这些快捷键看起来很基础但实际排查日志的时候能省下大量时间。我排查线上问题时几乎不用vi打开大日志直接less加搜索效率高很多。tail -f是查看实时日志的神器这个命令在做服务部署、查看应用启动日志时必不可少。tail -f会持续输出文件新增的内容你启动一个服务后用它盯着日志文件能第一时间看到启动信息。tail -n 100可以查看文件末尾100行适合先快速扫一眼最近的日志内容。head查看文件开头head -n 50表示前50行通常用于查看配置文件的注释说明部分。这里还要提一下grep它是日志分析的常客。grep 关键词 文件直接从文件中匹配内容grep -i忽略大小写grep -v反向匹配。实际中我更常用的是grep --colorauto匹配的内容高亮显示不过现在的发行版一般默认配置好了。配合tail -f使用堪称一绝tail -f app.log | grep ERROR实时过滤出报错信息定位问题时非常好用。3. 文本处理三剑客grep、sed、awk的实战组合3.1 grep不仅仅是搜索关键字grep在Linux命令中使用频率极高但很多人的用法停留在grep 关键字 文件名这个层面。实际工作中grep搭配正则表达式才能发挥全部威力。比如你想匹配以Error开头的行可以用grep ^Error app.log想匹配以数字结尾的行用grep [0-9]$ app.log。grep -r递归搜索目录下所有文件当你不知道具体是哪个文件包含关键信息时这一步能大幅提高定位速度。比如在配置目录下搜索哪个文件包含某个IPgrep -r 192.168.1.1 /etc/nginx/。grep -E支持扩展正则方便组合多个匹配条件比如grep -E ERROR|FATAL app.log一次匹配两种级别。grep -A 5显示匹配行后面的5行grep -B 5显示前面的5行查看异常上下文信息时非常好用。我排查应用报错时经常用grep -A 20 Exception app.log把异常堆栈完整打出来这是最快定位代码问题的方式。3.2 sed流式编辑器的核心用法sed是一个流编辑器它最大的特点是不需要打开文件就能直接对内容进行编辑。日常运维中我主要用它做三件事替换、删除、插入。替换是最常用的操作sed -i s/旧文本/新文本/g 文件路径。这个命令把文件中所有匹配“旧文本”的内容替换成“新文本”。注意-i参数表示直接修改原文件如果不加这个参数sed只会在终端输出结果不会真正改文件。我建议第一次执行替换时先不加-i跑一遍确认输出结果符合预期再真正修改文件避免误操作。sed还支持按行号删除内容sed -i 3d 文件名删除第3行sed -i 3,5d 文件名删除第3到第5行。这个功能适合批量清理配置文件中的注释空行比如把nginx配置里所有以#开头的注释行删掉sed -i /^#/d default.conf。sed -n 10,20p 文件名查看指定区间的行类似于head和tail的组合但更灵活。有一次我需要查看应用日志中某个时间段的内容日志文件太大没办法直接打开用sed -n /2024-05-01 10:00/,/2024-05-01 10:30/p app.log直接把这一个时间窗口的日志捞出来非常方便。3.3 awk按列处理文本的利器awk的本质是一个文本处理编程语言它的核心逻辑是按行读取内容、按分隔符切分成列、然后针对列做操作。学习awk不需要记住所有功能先把几个高频场景用熟练就够了。awk {print $1} 文件名打印每一行的第1列默认按空格或制表符分隔。查看日志时我经常用它提取IP地址awk {print $1} access.log | sort | uniq -c统计访问量最多的IP。awk -F指定自定义分隔符比如处理/etc/passwd文件时字段以冒号分隔就用awk -F: {print $1} /etc/passwd提取用户名。处理CSV文件时也是这个思路awk -F, {print $2} data.csv。awk还支持逻辑判断awk $3 100 {print $1}表示当第三列的值大于100时打印第一列。这个功能在分析性能数据时很实用。我做过一次磁盘使用率统计df -h | awk $5 80 {print $6}直接列出使用率超过80%的挂载点。三剑客之间也经常配合使用比如先grep过滤出需要的行再用awk提取特定列最后用sed做替换这种组合拳在写自动化脚本时很常见。我建议在练习时自己造一份日志文件尝试用不同命令组合完成任务比单纯记命令参数有效得多。4. 权限管理与用户操作理解Linux安全模型的钥匙4.1 chmod与chown的正确使用Linux的权限模型是文件有属主、属组、其他用户三个维度每个维度有读(r)、写(w)、执行(x)三种权限。ls -l看到的第一列就是权限信息比如-rwxr-xr--拆开来看第一个-表示类型后面9个字符每3个一组分别对应属主、属组、其他用户。chmod修改权限常用的方式有两种符号模式和数字模式。数字模式的规则是r4, w2, x1权限值就是三者相加。比如chmod 755 文件名7代表属主有读写执行权限4215代表属组有读和执行权限415代表其他用户有读和执行权限。我建议你彻底理解这个规则因为很多场景下看到配置文档写chmod 644或chmod 755如果你不知道这些数字怎么来的就无法判断权限是否正确。符号模式适合单独修改某类权限例如chmod ux 文件给属主增加执行权限chmod o-w 文件移除其他用户的写权限。我在实际操作中经常用符号模式来调整脚本的执行权限chmod x deploy.sh比计算数字模式快得多。chown修改文件属主和属组chown user:group 文件名。每当我部署应用时都会确认应用目录的属主是否和运行进程的用户一致不一致经常导致应用无法写日志、无法创建临时文件。有一次排查一个诡异问题应用进程是www-data用户运行的但某个目录的属主是root应用尝试写文件时一直报权限错误最终就是用一条chown -R www-data:www-data /var/www/app解决的。4.2 用户创建与用户组管理useradd新建用户基础用法是useradd username。但实际生产环境中我更推荐用useradd -m -s /bin/bash username-m参数自动创建家目录-s指定登录Shell为bash。我见过有些系统默认配置下新建用户不创建家目录导致用户登录后处于异常环境各种配置无法落盘。passwd username设置或修改用户密码。如果是root操作直接passwd username就可以不输入旧密码直接重置。这里提醒一句生产环境里我建议开启SSH密钥登录密码登录作为备选这样安全性更高。usermod -aG groupname username把用户添加到附加组。比如想让新用户有sudo权限可以把用户加入sudo组usermod -aG sudo username。-aG表示追加不加-a会覆盖原来的附加组这个细节很容易出错我吃过一次亏本来想把用户加到两个组里结果用错了参数把用户之前的组权限覆盖掉了导致服务无法启动。userdel -r username删除用户-r参数会同时删除用户的家目录和邮件池。删除用户时要谨慎确认这个用户的文件已经备份或转移。4.3 sudo与权限提升的安全实践sudu允许普通用户以root身份执行特定命令但不建议直接su切换到root。使用sudo的好处是操作有审计日志能追溯到哪个用户执行了什么命令这是多人共管服务器时的重要安全机制。配置sudo权限的文件是/etc/sudoers修改这个文件必须用visudo命令它会在保存前检查语法避免因为配置写错导致sudo不可用。我遇到过同事直接编辑/etc/sudoers时写错了语法结果所有用户都无法使用sudo只能通过物理机或者救援模式恢复教训非常深刻。sudo -l可以查看当前用户有哪些sudo权限sudo su -切换到root shell。我自己管理服务器时习惯为每个运维人员单独配置sudo权限而不是直接给他们root密码。这样当系统出现问题时通过/var/log/auth.log能够追踪到具体的操作者。5. 进程与资源管理系统健康状态的诊断工具5.1 ps、top与htop的进程排查ps查看进程快照最常用的组合是ps aux和ps -ef。ps aux输出所有进程涵盖用户、PID、CPU使用率、内存占用、启动命令等信息。ps aux | grep 关键词用来查找特定进程这是最基础的进程定位方式。注意一个细节grep会匹配到自身进程所以你有可能会看到一个grep相关的进程出现在结果里这是正常现象不影响判断。ps -ef --forest以树形结构显示进程父子关系。排查僵尸进程时这个命令能看到哪个父进程没有正确回收子进程。PID 1的systemd一般是所有孤儿进程的父进程。top是动态查看系统资源占用情况的工具启动后按P按CPU排序按M按内存排序按q退出。top -p PID可以单独监控某个进程的资源占用。我用top排查过多次线上问题服务器响应变慢打开top一看某个Java进程CPU占用率100%再结合日志定位到具体的线程问题。htop是top的增强版界面更友好支持鼠标操作和树形结构。不过生产服务器上未必安装了htop所以我建议先熟练掌握top把它当作常规工具htop作为辅助。5.2 kill、killall与信号机制kill命令通过发送信号来结束进程默认发送的是SIGTERM编号15这是一个允许进程自行清理、优雅退出的信号。kill -9发送SIGKILL编号9内核直接强制终止进程进程没有机会做任何清理工作。我的习惯是优先用kill PID即SIGTERM观察几秒如果进程没有退出再使用kill -9 PID。直接kill -9虽然能快速结束进程但应用可能没有保存状态、没有释放数据库连接甚至可能留下损坏的数据。有一次我强制结束了一个正在写入数据库的进程结果造成部分数据不一致修复花了不少时间。killall 进程名按进程名批量结束进程比如killall nginx会结束所有nginx进程。pkill也类似支持按进程名模式匹配。但这两个命令需要小心使用尽量缩小匹配范围不要误杀系统关键进程。进程信号除了15和9还有SIGINT2对应CtrlCSIGHUP1通常用于让守护进程重新读取配置文件。kill -HUP PID让nginx或sshd重载配置不需要重启服务这是更新配置的常见方式。5.3 系统资源查看与负载诊断free -h查看内存使用情况注意观察的是available一列而不是free。Linux内核会尽可能把空闲内存用作缓存buff/cache当应用需要内存时这部分会被释放。所以free值很低不代表内存不足available才是评估是否缺内存的关键指标。df -h查看磁盘分区使用率du -sh 目录查看目录总大小du -h --max-depth1 目录查看该目录下一级内容的大小用于定位是哪个子目录占用了大量空间。排查磁盘满问题时我的标准流程是先df -h看哪个分区满了再du -h --max-depth1逐层定位大目录最后清理日志或临时文件。iostat查看系统IO负载vmstat查看系统整体负载、CPU和内存情况。这些工具在生产环境可能没有安装需要先安装sysstat软件包。我建议运维人员至少掌握iostat磁盘IO饱和是服务变慢的常见隐藏原因CPU和内存都很正常但请求就是高延迟这时候查一下iostat经常能发现磁盘使用率100%。6. 网络排查从连通性到端口问题的完整路线6.1 ping、telnet与nc的基础连通性测试ping是测试网络连通性的首选命令它通过ICMP协议探测目标主机是否可达。ping -c 4 域名或IP指定发送次数而不是无限ping下去。ping -i 0.2调整发包间隔测试延迟时用较小的间隔能更精确地测量网络质量。telnet IP 端口用于测试TCP端口的连通性。比如你访问某个Web服务总是不通先telnet 192.168.1.10 80如果提示连接成功说明网络和端口都没有问题问题应该出在应用层。telnet默认可能没有安装多数Linux发行版需要安装telnet包或者使用nc替代nc -vz IP 端口同样能测端口连通性而且支持批量测试多个端口。ncnetcat是一个功能强大的网络工具除了测试端口还能做简单的数据传输、端口监听、端口扫描不建议在未授权环境下使用。我在排查网络问题时常用nc -vz测试一组的端口是否开放比逐个telnet效率高不少。6.2 netstat与ss查看端口监听与连接状态netstat曾经是查看网络连接的默认工具现在新版本Linux逐渐用ss替代。ss -tlnp查看所有监听中的TCP端口及对应的进程-t表示TCP-l表示监听-n显示数字地址和端口不解析域名-p显示进程信息和PID。这条命令用来回答“某个端口是否被占用”以及“是哪个进程占用的”。如果你在旧系统上使用netstat对应的命令是netstat -tlnp。查看所有连接状态包括握手队列、已经建立的连接用ss -tunap这能帮助排查并发连接数是否有异常。如果某个连接的状态卡在SYN_RECV或TIME_WAIT数量异常多可能说明有网络攻击或服务端连接池配置不合理。有一次线上服务间歇性不可用我用ss -s查看系统级连接统计发现TIME_WAIT数量非常庞大HTTP端口被大量短连接占满最终通过调整内核参数net.ipv4.tcp_tw_reuse和复用长连接解决。6.3 curl与wgetHTTP接口调试与文件下载curl是调试HTTP接口最常用的命令行工具。最基本的用法是curl URL直接返回响应内容。我日常排查接口时会优先使用curl -i URL显示响应头信息这样能看到HTTP状态码、Content-Type、响应时间等关键信息。curl -X POST -d keyvalue URL发送POST请求用于测试接口的POST逻辑。curl -H Content-Type: application/json -d {name:test} URL发送JSON格式的数据。处理带鉴权的接口时curl -u username:password URL或者在Header中带上Token。curl -I URL只获取响应头curl -o 文件名 URL下载内容保存为文件。curl的-w参数可以输出请求的时间详情curl -w 连接时间: %{time_connect}s, 总时间: %{time_total}s\n URL这是测量接口响应时间的快速方式不用写复杂的脚本。wget更适合下载文件支持断点续传、递归镜像站点。wget -c断点续传下载大文件时中断了不用重新开始。wget的并发限制比curl宽松批量下载资源时更方便。7. 常用技巧与避坑指南提升效率的实践经验7.1 命令补全与历史记录的高效使用Tab键自动补全可能是Linux中回报率最高的操作技巧。输入命令的前几个字母按下Tab系统自动补全命令或文件名。如果有多条匹配项双击Tab显示所有可选项。很多初学者没有养成补全的习惯长路径和带参数的复杂命令全手敲既慢又容易出错。我的建议是能补全就补全不仅减少输入量还能避免路径打错。这也能帮助学习每次Tab补全都会让你更熟悉文件和目录的实际命名规则。我自己也是靠Tab减少了很多拼写错误而不是靠记忆去一个个字符输入。7.2 重定向把输出玩弄于股掌之间表示重定向输出比如echo hello /tmp/test.txt把文本写入文件。表示追加而不是覆盖。这个区别很重要会清空原有内容再写入在文件末尾追加。写日志脚本时用错符号可能导致日志覆盖丢失。2重定向错误输出21把错误输出合并到标准输出这在实际使用中很常见。比如command log.txt 21把标准输出和错误输出都写入同一个日志文件。如果只写command log.txt报错信息仍然会输出到终端因为错误输出没有重定向。我排查问题时会刻意把输出重定向到文件然后再用grep等工具分析而不是让内容刷满屏幕。比如journalctl -u nginx /tmp/nginx.log 21把服务的所有日志导出到文件里再分析。7.3 常见命令踩坑实录命令找不到是最常见的问题可能是软件没有安装也可能是PATH环境变量没有配置。我在一个新环境执行iftop时提示command not found然后我检查发现这个工具根本没有安装。你安装完一个新的软件或者工具后如果提示命令不存在先检查可执行文件的路径比如在/usr/local/bin下然后再确认是否加入了PATH。权限拒绝Permission denied大多是因为文件没有对应权限但也有可能是因为文件系统挂了只读模式mount -o remount,rw /可以重新挂载成读写模式。还有一个经常被忽略的情况执行某个Shell脚本时提示权限不足多半是没有执行权限或者脚本开头缺少#!/bin/bash或者编辑Windows传过来的脚本时存在CRLF换行符。误删文件的操作教训太常见了永久删除的文件大概率恢复不了最多通过文件系统快照或者备份找回。所以重要的数据定期备份到独立介质或远程存储这个习惯比任何恢复工具都可靠。设置alias rmrm -i是个有效防护但如果养成确认的习惯更好——我给自己定了个规矩任何删除操作先ls确认目录内容再执行删除。find / -name *.log全盘搜索日志文件也可能因为权限不足跳过部分目录实际排查时不妨限定在/var/log和/home等常用目录效率更高更安全。7.4 用其他场景中的常用命令迁移思考这篇内容看起来像是Linux命令专项但很多排查思路也能借鉴到其他平台的命令体系上比如在K8s环境里的kubectl命令和在容器环境里的docker命令它们本质上是把Linux命令的哲学迁移到了更上层的资源管理场景。你掌握了单机层面的进程、端口、日志排查能力到了容器编排环境下思路是完全一致的先查资源状态再看日志最后定位问题。8. 常见问题与排查技巧实录8.1 命令找不到的排查思路我经常遇到新手问“明明装了软件但输入命令提示command not found”。排查思路大概是这样的首先确认软件是否真的安装成功用which 命令名查看命令所在路径如果没有输出说明可执行文件不在PATH中。可以用find / -name 可执行文件 -type f 2/dev/null全局搜索找到后手动执行验证。然后确认PATH环境变量echo $PATH查看如果是某个用户专属的安装路径需要把路径加入.bashrc或.bash_profile。还有一类情况是安装了软件但版本过旧系统默认使用旧版本命令。这时可以用ls -l $(which 命令名)查看软链接指向上一个实际文件确认版本信息必要时用update-alternatives切换版本。8.2 目录空间不足时的应急处理磁盘满会引发各种连锁问题服务无法写日志、数据库无法写入、应用直接崩溃。应急处理流程我建议记录一下先用df -h确认是哪个分区满了然后用du -h --max-depth1逐层定位大目录重点检查日志目录、缓存目录、临时目录。常见的处理操作包括清理/var/log下历史日志、删除临时文件/tmp、/var/tmp、清理软件包缓存yum clean all或apt clean、清理docker日志文件如果容器一直输出大量日志。有一个比较容易忽视的问题某些进程即使在删除文件后仍然占用空间因为进程仍然按照文件描述符写入。这种情况下df -h显示的磁盘空间一直不会释放需要用lsof | grep deleted找到已被删除但仍被运行的进程然后重启对应服务。8.3 端口被占用的定位与分析启动某个服务时提示port already in use需要定位是哪个进程占用了端口。核心命令是ss -tlnp | grep 端口号或者lsof -i:端口号输出结果会包含进程PID和名称。拿到PID后用ps -ef | grep PID查看完整的进程启动命令判断是否是自己部署的应用还是系统其他服务。如果是异常的进程占用评估后决定是否结束它。如果ss -tlnp显示没有进程监听但服务仍然提示端口被占用这种情况通常是一个进程监听在两个地址上比如IPv4和IPv6需要检查ss -tlnp完整输出中是否存在不同状态的行。8.4 日志排查的实用流程日志是排查线上问题的重要线索我处理问题时有一套固定流程。先明确出问题的服务和时间范围然后journalctl -u 服务名 --since 2024-05-01 10:00:00查看系统服务日志。如果是应用自己的日志文件用tail -n 200 日志文件查看最近的内容结合grep -A 20 -B 10 关键字查看异常堆栈的上下文。还需要看错误日志error.log和访问日志access.log从错误日志中找原因从访问日志中观察流量特征。如果日志中看到某个接口大量报错且延迟很高再配合top、iostat等资源监控命令往往能快速定位是代码问题、数据库问题还是资源瓶颈。我在实际工作中发现很多问题表面上看起来是应用问题实际上是操作系统层面的资源耗尽或者配置错误。所以完整的排查思路应当是应用日志、系统日志、资源状态三条线同时拉起来交叉判断。9. 实战组合场景从一条需求到完整命令链9.1 场景一找出占用磁盘空间最大的日志文件这是一个我认为每个运维都应该熟练掌握的日常操作组合。df -h du -h --max-depth1 /var/log/ du -h --max-depth1 /var/log/nginx/ ls -lhS /var/log/nginx/解释一下这个命令链df -h首先看分区使用情况确认是否真的磁盘紧张du逐层查看目录大小逐步定位到大目录ls -lhS按文件大小排序直接列出最大的日志文件。最后一列是文件名你马上就能知道是哪一个日志最占空间。9.2 场景二排查某个Web服务无法访问这是一个非常典型的综合排查场景从网络、端口、服务、日志逐层深入。ping -c 4 服务器IP ss -tlnp | grep 80 curl -I http://127.0.0.1 systemctl status nginx tail -n 50 /var/log/nginx/error.log这个流程的思路是先确认网络连通性再确认端口是否在监听再用本地curl验证服务本身是否正常接着看服务运行状态最后查看错误日志。每一步都在缩小排查范围。如果curl访问本地正常但外部访问异常问题大概率在防火墙或云安全组如果本地curl都不正常说明服务或配置本身有问题重点看错误日志。9.3 场景三批量修改配置目录下所有文件的权限上线新的应用版本后配置文件权限往往需要统一调整。grep -r old_path /etc/app/conf.d/ | awk -F: {print $1} | sort -u sed -i s/old_path/new_path/g /etc/app/conf.d/*.conf chown -R appuser:appgroup /etc/app/ chmod -R 640 /etc/app/conf.d/这里的思路先用grep找出所有包含旧路径的文件再awk提取文件名sort -u去重然后sed批量替换。最后统一调整属主和权限。这种组合方式看起来每条都基础但串在一起就是一条高效的生产操作流程。10. 最后的实操体会和建议Linux常用命令的学习没有太多捷径但有一条高效路径不需要背诵几百条命令抓住文件操作、文本处理、权限管理、进程管理、网络排查这几大类的高频场景多敲多练就足够了。我自己带人的经验是让新人反复练习同一组组合命令比如排查测试环境的一个服务故障从网络连通性开始到端口检查、进程状态、日志定位把一条完整命令链跑通跑熟比零散看文档有用得多。我建议每个阶段给自己设置一个真实的任务比如“写一个脚本定时清理超过7天的日志文件并统计释放的空间”“找出服务器上内存占用排名前10的进程并输出到文件”。带着任务去用命令命令的掌握速度会快很多。踩过几次坑之后很多细节自然就记住了比如不要随便加rm -rf、注意chown的属主是否匹配、大日志不要用cat等等。最后分享一个我自己保持习惯的方式在终端里把高频别名配置好比如alias llls -lh、alias grepgrep --colorauto、alias clsclear这些小配置平时不觉得实际使用时能省下不少重复操作。如果这篇文章中的场景能帮你少走几个弯路那就是它最大的价值了。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。