news 2026/6/5 5:54:56

linux基础随心记五-系统管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
linux基础随心记五-系统管理

一、软件包管理

1、rpm

安装-ivh xxx.rpm
查看-qa |grep xxx.rpm 查看软件包是否安装
-ql xxx.rpm 查看软件包内容
-qf 绝对路径 查看所归属的软件包
升级-Uvh xxx.rpm
删除-e xxx.rpm

2、yum

一、配置yum源(/etc/yum.repos.d/)

查看yum源列表

yum repolist

配置为阿里云
https://developer.aliyun.com/mirror/ 官方地址

#/etc/yum.repos.d/CentOS-Base.repo[base]#源名字name=CentOS-$releasever- Base - mirrors.aliyun.com#详细名字failovermethod=priority#如果yum地址失败了,就用下面的地址baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/gpgcheck=1#校验gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7#校验enabled=1

二、yum命令配置文件(/etc/yum.conf)

几乎很少修改,可以将yum安装过的rpm包保存下来,否则自动删除

[main]cachedir=/var/cache/yum/$basearch/$releasever#缓存路径keepcache=0#是否开启缓存debuglevel=2logfile=/var/log/yum.log#日志路径

三、增删改查

安装yum install -y tree
查看yum provides tree 精确查询
yum search tree 模糊查询
yum list available/installed/all
查看源列表yum repolist
清空缓存yum clean all
删除软件包以及依赖,不建议用,因为不但会删除软件包,还会删除相关依赖建议使用rpm -e进行卸载yum remove xxx
更新yum update

二、进程管理

R(running) S(sleeping) T(stopped) Z(zombie) D(Disk sleep) X(dead)
R+ 前台运行进程
R 后台运行进程
S 可中断进程(大部分进程)
T 后台挂起进程
D 不可中断进程(io进程)
Ss 可中断进程 管理进程
S< 可中断的高优先级进程
SN 可中断的低优先级进程
Ssl 可中断的多线程的管理进程
Z 僵尸进程

1、ps

  • ps -ef
UIDPIDPPIDC STIME TTY TIME CMD root100Mar18 ? 00:01:34 /usr/lib/systemd/systemd
  • ps aux
#VSZ 占用虚拟内存#RSS 占用物理内存#TIME 占用cpu时间USERPID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root10.00.11281846872? Ss Mar181:34 /usr/lib/systemd/systemd
  • pstree -p
  • ps axo user,pid,%cpu
psaxo user,pid,%cpu,stat,commandUSERPID %CPU STAT COMMAND root10.0Ss /usr/lib/systemd/systemd --switched-root--systempsaux|awk{'print $1'}

2、top

排序P 按CPU使用率排序
M 按内存占用排序
T 按运行时间排序
N 按PID排序
进程操作k 终止进程
r 调整进程优先级
视图控制1 展开/折叠多核CPU详情(显示每个核心状态))
u 按用户过滤进程
f 自定义显示的列
h 打开帮助菜单
刷新设置空格 立即刷新
s 修改刷新间隔
颜色设置z 进入颜色模式
x 标记以哪列排序(shift+< 或 shfit+> 向左或向右选择)
退出q/ctrl C
top-13:59:24 up6days,20:03,2users,`load average:0.00,0.01,0.05`Tasks:114total,1running,113sleeping,0stopped,`0zombie`%Cpu(s):`0.0us`,`0.2sy`,0.0ni,99.8id,`0.0wa`,0.0hi,0.0si,0.0st KiB Mem:3861300total,1932072free,363900used,1565328buff/cache KiB Swap:3145724total,`3145724free`,0used.`3191208avail Mem`PIDUSERPR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND702root20027297668523660S0.30.210:52.14 vmtoolsd

非交互模式

-b 非交互模式 -n1 只输出一次结果

[root@xkm ~]# top -bn1 | awk 'NR==2{print $(NF-1),$NF}'0zombie

3、后台运行

方法说明
&最常用,如果命令会持续输出到终端时不可用
先运行命令,再按下ctrl+zbg 后台,fg前台
screen稳定
nohup ** &会记录输出到一个nohup.out文件
jobs查看后台运行的程序

4、java系统负载高排查

lscpu查看核心数,如果平均负载接近核心数,说明负载高
流程

  1. 通过监控软件发现系统负载高

  2. 判断是cpu还是io导致的负载高
    ·cpu高:top中的ur sy
    ·io高:top中的wa

  3. 如果是cpu导致的,排查出是哪个进程,通过ps aux过滤出具体进程;
    如果是io导致的,排查出是哪个进程,通过iotop -o查看具体进程

  4. 找出原因并找出对应的进程,根据进程找服务相关日志

  5. 通过jstack查看进程中的线程信息
    jstack中的线程是十六进制
    1、通过top -Hp 进程id,显示该进程中的线程信息,根据cpu的使用率,找出异常的线程的id
    2、异常的线程id转换成十六进制,echo “obase=16|线程id”|bc
    3、jstack过滤十六进制线程id,jstack 进程id | grep -i -A10 十六进制线程id

  6. jmap导出jvm信息,通过mat工具进行内存分析

jmap-heapjava-pid# 打印java进程的jvm内存使用情况,jdk8及之前可以jmap-dump:format=b,file=8080.hprof java-pid# 生成堆转储文件

三、服务管理

1、管理命令

#检查服务状态systemctl status firewalld#开机自启动systemctlenablenginx#运行systemctl start nginx#所有服务运行情况systemctl list-units

2、运行级别

运行级别c7
0关机 init 0
1救援模式secure(找回root密码)
2多用户模式(无网络)
3多用户模式 multiuser(命令行模式)
4多用户模式
5图形化界面模式
6重启 init 6

3、linux启动流程

按下电源 -> 开机自检(bios) -> MBR、GPT引导系统启动(硬盘、光盘) -> GRUB菜单(选择内核、救援模式)-> 加载内核(/boot内核文件加载到内存中) -> 运行systemd进程 -> 读取运行级别 -> 系统初始化 -> 并行启动服务 -> 运行getty显示登录界面

4、root密码找回

  1. 重启linux
  2. 进入GRUB菜单,按e编辑内核配置
  3. 找到linux16的行,将这一行的ro改为rw,在最后输入 init=/bin/bash,按ctrl+x启动系统进入救援模式
  4. 将/etc/passwd下root行的x去掉
  5. 重启后passwd设置密码

四、磁盘管理

1、RAID

提高数据可靠性和 I/O 性能
参考 RAID相关描述
老男孩相关总结:

2、磁盘分区

分区->格式化->挂载

一、MBR与GPT

MBR:4个主分区或3个主分区加一个扩展分区加不限数量的逻辑分区
MBR和GPT详解

二、MBR创建分区

#分区fdisk/dev/sdb#格式化,创建文件系统mkfs.xfs /dev/sdb#临时挂载mount/dev/sdb /mntdf-h#永久挂载1、使用rc.local,把挂载命令写入到/etc/rc.lpcal下2、专业的开机自动挂载配置文件/etc/fstab,根据要求写入

三、lvm

lvm相关动态扩容操作
lvm相关操作
动态扩容操作
可以lvm+raid搭配使用
raid5+lvm结合

四、swap

交换分区/虚拟内存
swapon /tmp/1g 挂载

五、磁盘空间不足

  1. 经典:block块大量占用
    现象:提示空间不足,df -h查看空间存在不足
    解决:df -h 与 du -sh结合

  2. inode大量占用(存在大量小文件)
    现象:提示空间不足,df -h查看发现空间充足,df -i查看发现inode存在不足
    解决:
    1、find 找出目标路径下size较大的目录,比如大于1M
    find / -type d -size +1M
    2、find 找出目标路径下文件较多的目录
    find / type f |xargs dirname |sort |uniq -c

  3. 文件未彻底删除
    现象:df -h发现空间不足,删除较大的文件后再次df -h发现空间还是不足,du -sh发现不存在磁盘占用较大的文件,原来的文件也已经被删掉
    解决:文件被彻底删除需要1、硬链接数为0,2、文件没有被服务或线程调用
    lsof查看文件是否被调用,kill掉相关进程或重启服务

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 5:53:58

多维聚合实战:从groupby到业务决策的七步炼金术

1. 项目概述&#xff1a;为什么多维聚合不是“加个groupby”就能搞定的事我在银行数据平台组干了八年&#xff0c;从最早用SQL写几十行嵌套子查询做客户分层&#xff0c;到后来带团队搭实时风险计算引擎&#xff0c;踩过的坑比写的代码还多。今天聊的这个主题——“多维聚合中的…

作者头像 李华
网站建设 2026/6/5 5:48:36

MATLAB版点云粗配准工具:双ICP算法实现+PLY示例数据+零依赖运行

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;直接运行就能用的MATLAB点云粗配准方案&#xff0c;包含两个独立实现的ICP核心脚本——ICP_MATLAB_Implementation.m和ICP_NEW.m&#xff0c;专为初始位姿偏差较大时的快速对齐设计。配套提供两组真实PLY格式点…

作者头像 李华
网站建设 2026/6/5 5:43:00

高校机房管理毕业设计源码:SpringBoot后端+Vue前端+MySQL建库脚本全包

本文还有配套的精品资源&#xff0c;点击获取 简介&#xff1a;直接可运行的机房管理毕设项目&#xff0c;后端用SpringBoot搭建&#xff0c;涵盖教师管理、课程录入、课表维护、机房信息登记、维修工单处理、机房借用申请等完整业务接口&#xff1b;前端基于Vue.js开发&…

作者头像 李华
网站建设 2026/6/5 5:41:14

CANN/asc-devkit同步控制函数

asc_sync_block_wait 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://gi…

作者头像 李华