当前位置:首页>Linux>别再死记硬背了,这10个linux核心技能,解决80%的运维难题

别再死记硬背了,这10个linux核心技能,解决80%的运维难题

  • 2026-09-02 20:34:09
别再死记硬背了,这10个linux核心技能,解决80%的运维难题

在我们日常运维的工作中,涉及linux系统方面的运维工作超80%。从服务器部署、服务监控到故障排查,运维工作的每一个环节几乎都离不开Linux操作。很多运维同行经常会陷入“学了很多命令,遇到问题仍手足无措”的困境,核心原因是没抓住核心知识点,缺乏实战场景的串联。今天这篇文章,我整理了运维工作中使用频率最高、最能解决实际问题的10个Linux知识点,既有基础命令的深层用法,也有一定的系统调优技巧,大家可以收藏起来,遇到问题直接按图索骥。一、效率基石:3个超实用组合命令,覆盖超80%运维场景1. 文件定位三剑客: find + grep + xargs 

示例:查找/data目录下包含LOGIN内容的log文件

#查找/data目录下包含LOGIN内容的log文件find /data -type f -name "*.log" |xargs grep -i "LOGIN"
#查找/data目录下的7天内修改的日志文件并删除(用delete和xargs都可以)#1、先查找并预览find /data -type f -name "*.log"   -mtime -7 -print#2、在执行删除,试用xasgs或deletefind /data -type f -name "*.log"  -mtime -7 |xargs rm -f find /data -type f -name "*.log"  -mtime -7 -delete 

避坑点:

  • 删除文件前务必加 -print 预览,避免误删系统文件;

  • 对于文件名含有特殊字符的主要使用-print0;

  • 生产环境建议先备份。

#删除有空格等特殊格式的使用该命令find /data -type f -name "*.log" -mtime -7 -print0 |xargs -0 rm -f#对安全要求更高的操作是交互式确认find /data -type f -name "*.log" -mtime -7 -ok rm -f #目录为okdir参数

2. 进程管理:从查看、杀死到监控关键命令

  • ps aux (查看进程);

  • top (实时监控资源);

  • kill (终止进程)。

实战场景:CPU飙升三步排查法?

1.  top命令查看占用CPU最高的进程PID(第一列,top下按P键);

2.  ps aux | grep 进程PID 确认进程详情;

3. 若为无用进程, kill -15 进程PID 终止,若无效再用 kill -9。

实用技巧:

  • 亲身经历:我负责的某k8s集群就出现过凌晨三点出现用户查询变得缓慢。现场值班人员排查日志无明显异常,束手无策。我赶到现场后发现集群某重要节点cpu飙升,进程占用率飙升导致整改linux系统运行缓慢,进而影响集群性能。经过排查为普罗米修斯监控软件导致,kill后业务恢复正常。第二天经确认为某员工为了监控程序自行在这重要节点部署监控软件,导致cpu飙升所致。

  • 用pstree 查看进程树(需先安装,yum -y install psmisc),快速定位父进程;

4. 权限管理:避免“Permission denied”的终极方案核心逻辑:
  • Linux权限分所有者(u)、组(g)、其他(o)

  • 权限值 r=4、w=2、x=1 

  • 常用 chmod 755 文件 (所有者可读可写可执行,其他只读)。

  • 高频需求:给脚本添加执行权限( chmod +x 脚本.sh );

  • 递归修改目录权限( chmod -R 777 目录 ,谨慎使用,避免权限过大)。

避坑点: 授权后仍提示权限不足,需检查selinux 状态( getenforce ),临时禁用( setenforce 0 ),永久禁用需修改 /etc/selinux/config 并重启。

getenforce  #检查selinux 状态setenforce 0  #临时关闭selinuxvim /etc/selinux/config  #永久禁用,修改配置为disable

二、进阶核心:4个效率提升工具,让运维效率翻倍

1. 日志分析三板斧:grep+awk+sed

grep:精准过滤

grep -n "error" 日志文件 #显示行号grep -C 5 "error" 日志文件  #显示匹配行前后5行

示例:

 #检查系统登录日志中有error的信息并显示行号 grep -n "error" secure*   #/var/log下的日志  #检查系统登录日志中保存error的信息的前后5行数据 grep -C 5 "error" 日志文件

awk:数据提取神器

awk '{print$1}' access.log    #提取第一列

示例:查看通过ssh登录服务器的ip地址(包含成功和失败)

#查看系统安全日志secure中通过ssh登录服务器的ip地址(去重)grep -E 'Accepted| Failed' secure |awk '{print$11}' |sort -u
sed:日志替换/删除
sed -i 's/旧内容/新内容/g' 日志文件 #全局替换sed -i '/关键字/d' 日志文件  #删除包含关键字的行
实例:将AB.txt文件中的123替换成321
2. 系统监控:不止top
内存监控
free -g
vmstat 1 5 #每1秒输出1次,共5次,查看内存交换情况
实例:每1秒输出1次,共5次,查看服务器的内存、cpu等情况
磁盘监控
df -h  #系统磁盘使用情况 du -sh #目录下系统文件或文件夹占用情况 
实例:展示当前目录下的文件大小并按从小到大的顺序进行排序
网络监控
ss -an (比netstat更快,查看端口连接状态)
ss -an |grep 80 
ping + traceroute (排查网络连通性)。
ping x.x.x.x   #连通性测试traceroute www.xxx.com   #路由追踪
实例:查询有哪些程序通过80端口建立连接
ss -an |grep 80
3. 管道与重定向  :运维的“粘合剂”
管道符 |
将前一个命令的输出作为后一个命令的输入。
ps aux | grep nginx
重定向
 > (覆盖写入)、 >> (追加写入)、 2> (错误输出)。日常用于将特定信息单独输出到文件中。
示例:将所有secure日志中的包含error的错误信息输出到a.txt文本中。
cat /var/log/secure* |grep "error" >a.txt
4. 计划任务:crontab的正确姿态
基本格式: 分 时 日 月 周 命令 。
示例:每天凌晨3点执行数据库备份脚本
* 3 * * * sh /usr/bin/bakup.sh 
避坑点:
  • crontab执行时环境变量可能缺失,脚本时显式设置。
  • 脚本中需写绝对路径(如 /usr/bin/mysql 而非 mysql )。
  • 添加任务后用 crontab -l 查看,service crond restart 或systemctl restart crond重启服务。
三、实战必备:3个常用故障排查关键步骤,快速定位问题
1. 磁盘满了怎么办?三步定位
步骤1:df -h 查看哪个分区满了(使用率100%);步骤2:du -sh /* 找到占用空间最大的目录,逐步向下查找;步骤3:删除无用大文件(日志、备份),或扩展磁盘空间。注意:勿直接删除 /var/log 下的系统日志,可用 echo "" > 日志文件 清空。
避坑点:du -sh /* 有时候运行比较慢,可以使用下面命令替代。
du -sh /var/log/* 2>dev/null |sort -rh |head -10 #查找最大的10个文件
也可以使用ncdu命令进行图形化交换式定位大目录文件
ncdu / #需要安装,交换可视化分析磁盘使用,快速定位大目录
find / -size +1G -exec ls -ls {} \; 2>/dev/null |head 10 #方法2
对于需要删除的日志,建议采用重定向的方式,避免正在写入的文件句柄出现问题。
tail -n 10000 > log.log
2. 端口被占用,无法启动服务?快速解决
查找占用端口的进程: lsof -i :80  或  netstat -tuln | grep 80 或ss;
lsof -i:80  # 查看端口对应的进程(优先)netstat -tuln | grep 80  # 查看80端口对应的进程ss -tunl |grep 80  # 查看80端口对应的进程(优先)
kill -9  #冲突进程id  
若端口仍被占用,检查是否为系统服务(如防火墙),关闭对应服务即可。
3. 服务启动失败,如何快速定位?五步排查法
新手容易懵,按照下面5个步骤进行排查。
步骤1:查看服务状态: systemctl status 服务名 ;
systemctl status httpd    #查看httpd服务的状态
步骤2:查看启动日志: journalctl -u 服务名  -f --since “5 minutes ago”(或直接 journalctl -u或去对应目录查看)
journalctl -u httpd -f --since "5 minutes"  #实时跟踪日志
步骤3:检查检查确认 ,如nginx -t
httpd -t #检查配置文件
步骤4:检查权限和上下文,如文件权限、防火墙、selinux等
ls -lZ  /ect/httpd #检查上下文关系getenforce  #检查seliunx的状态
步骤5:查端口与依赖。ss -tlnp,systemctl list-dependencies 服务名
ss -anlp |grep httpd  #查看httpd的端口systemctl list-dependencies  #查看依赖关系
四、写到最后:3个核心学习原则1. 以用代学:遇到问题再查,用一次胜过背十次;2. 重视基础:权限、进程、文件系统是Linux的基础;3. 积累实战案例:记录每次故障排查,形成自己的“运维手册”。互动时间:
你在Linux运维中遇到过最头疼的问题是什么?欢迎评论区分享讨论。
转发这篇文章给你的运维同事,下次遇到同样的问题火速解决。
本文思维导图
#linux运维#运维实战#程序员必备#运维人必备#系统监控#故障处理
本文仅用于学习交流,不得用于其他目的

最新文章

随机文章