当前位置: 首页 > news >正文

linux命令-系统信息与监控-2

大纲

文本查看与处理

直接用就行、head\tail\less\cat用的很多

命令功能典型场景
cat连接文件并打印cat file1 file2 > merged
tac倒过来看日志tac file.log
head显示文件开头部分head -n 20 file.log
tail显示文件末尾部分tail -f app.log (实时追踪)
less分页浏览文件(可回滚)less +F syslog
nl显示行号nl -b a file.py, 类似cat -n

系统信息与监控

命令功能关键参数
top动态进程监控top -c(显示完整命令)
ps进程快照ps aux(详列所有进程)
lsof进程监控lsof -i
free内存使用情况free -h(人类可读格式)
uptime系统运行时间与负载uptime
date显示/设置系统时间date +"%Y-%m-%d %H:%M"

top

  • 常用启动参数

    参数功能描述示例
    -d设置刷新间隔(秒)top -d 2(每 2 秒刷新)
    -n指定刷新次数后退出top -n 5(刷新 5 次后退出)
    -p监控指定 PID 进程top -p 1234(查看 PID 1234 进程)
    -b批处理模式(输出到文件)top -b -n 10 > top.log
    -c显示完整命令路径top -c(默认仅显示命令名)
    -H线程模式top -H -p pidof mysqld
  • 交互快捷键(运行中使用)

    按键功能
    q退出 top
    P按 CPU 使用率排序(降序)
    M按内存使用率排序(降序)
    T按累计 CPU 时间排序
    f自定义显示列(按 a-z 切换列的显示/隐藏)
    k终止指定进程(需输入 PID 并确认信号)
    1切换显示单个/所有 CPU 核心信息
  • 栏位信息简介

    us	    sy	   ni 		  id	wa		 hi		si			  st
    用户空间 内核空间 调整nice时间 空闲 等待IO时间  硬中断  软中断(模式切换) 虚拟机偷走的时间
    
  • top 命令各列含义详解

    • PR: 进程调度优先级

      • 值越小优先级越高(实时优先级:099;普通优先级:100139 - 负值表示高优先级进程
      • 优先级由内核动态调整,nice 值影响普通优先级范围
    • NI:用户态优先级修正值

      • 范围:-20(最高)到 19(最低) - 通过 nice 命令调整,影响 CPU 时间分配权重
      • NI 值修改进程的调度竞争能力,非 root 用户只能调低优先级
    • VIRT:虚拟内存总量(KB)

      • 公式:VIRT = SWAP + RES
      • 假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
    • RES:实际使用的物理内存(KB)

      • 公式:RES = CODE + DATA
      • 如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
      • 关于库占用内存的情况,它只统计加载的库文件所占内存大小
    • s:进程状态

      • R=运行, S=睡眠, D=不可中断睡眠, Z=僵尸, T=暂停
      • 僵尸进程(Z)需手动清理;D 状态进程通常等待 I/O 操作
    • SHR:共享内存量(KB)

      • 除了自身进程的共享内存,也包括其他进程的共享内存
      • 共享库整体映射到 VIRT,但仅实际加载部分计入 RES
      • 计算某个进程所占的物理内存大小公式:RES – SHR
      • swap out后,它将会降下来
    • %CPU: CPU 时间占用百分比

      • 统计周期:上次刷新到当前的时间片占用多核环境下可能超过 100%(如 200%=占满 2 核)
    • %MEM:物理内存占用百分比

      • 公式:(RES / 总物理内存) * 100% 直接关联 RES
    • TIME+:累计 CPU 占用时间

      • 格式:分:秒.毫秒 ,精度为 1/100 秒(比 TIME 列更精确)
      • 统计进程生命周期内消耗的总 CPU 时间
    • COMMAND:进程名称/命令行

      • 默认显示程序名(如 java) - 按 c 键切换完整命令行路径(如 /usr/bin/java -Xmx2G
      • f 键可自定义显示列(如增加 PPIDUSER 等)
  • 物理内存 vs 虚拟内存

    • RES 是实际消耗的物理内存,直接影响系统性能;
    • VIRT 包含磁盘映射和预留空间,不直接占用物理资源

ps

  • 参数

    参数组合功能描述适用场景
    ps -e显示系统中所有进程快速查看整体进程数量
    ps -f全格式输出(含UID、PID、PPID等)需详细进程关系时使用
    ps -ef显示所有进程的全格式信息系统级进程排查
    ps -u 用户名查看指定用户的进程按用户维度监控资源
    ps aux显示所有用户进程(BSD风格)包含CPU/内存占用率
    ps -C 命令名列出指定命令的进程查找特定应用的运行状态
  • 状态码

    状态代码描述
    R运行中
    S休眠状态,可被信号唤醒
    D不可中断休眠(通常为IO等待)
    T进程被暂停(如收到SIGSTOP信号)
    Z僵死进程,需父进程释放资源
    +前台进程
    l多线程进程
    L内存分页并带锁
    N低优先级进程
    <高优先级进程
    s会话领导者(子进程发起者)
  • 示例

    # 查询你拥有的所有进程
    ~]# ps -x# 显示指定用户名(RUID)或用户ID的进程
    ~]# ps -fU root# 显示指定的进程ID对应的进程~]# ps -fp 925
    UID         PID   PPID  C STIME TTY          TIME CMD
    root        925      1  0 20:52 ?        00:00:02 /usr/bin/dockerd -H fd:// --containerd=/run/contai
    

lsof

  • 参数

    参数含义示例
    -c <进程名>显示指定进程打开的文件lsof -c ssh(显示ssh进程相关文件)
    -u <用户名>显示指定用户打开的文件lsof -u root(root用户的打开文件)
    -p <PID>显示指定进程ID的文件lsof -p 1234(进程1234的打开文件)
    -i显示网络文件(TCP/UDP)lsof -i:8080(查看8080端口占用)
    -t <文件路径>仅输出占用文件的进程IDlsof -t /var/log/syslog(获取占用日志的PID)
  • 示例

    ~]# lsof -c ssh  # 这里要用进程名,而不是pid号
    ~]# lsof -p 1234 # 这里要用pid号~]# lsof -a -u root -p9534  # 查看全部进程用户为root pid=9534
    
  • lsof 命令各列含义详解

    • COMMAND:进程名称(如 pure-ftpdnginx)。表示打开文件的进程对应的程序名
    • PID:进程ID;
    • USER:进程所有者;
    • FD:文件描述符
      • 数字(如 4u):文件句柄编号,后缀表示模式(u=读写,r=读,w=写)
      • 特殊值cwd(当前工作目录)、txt(程序代码文件)、rtd(根目录)
    • TYPE:文件类型
      • REG:普通文件
      • DIR:目录
      • IPv4/IPv6:网络连接(TCP/UDP)
      • CHR:字符设备 • FIFO:管道文件
    • NAME:文件或资源的完整路径/标识
      • 本地文件/var/log/syslog
      • 网络连接TCP *:8080 (LISTEN)(监听8080端口的TCP连接)

free

  • 参数

    参数说明
    -b/-m/-g以字节/MB/GB为单位
    -h易读格式
    -o不显示-/+buffers/cache行
    -t显示RAM + swap的总和
    -s n刷新间隔为n秒
    -c n刷新n次后即退出
  • 示例

    [root@localhost cc]# free -b  # 以字节为单位total        used        free      shared  buff/cache   available
    Mem:    10464804864   171970560 10020167680    12226560   272666624  9999290368
    Swap:    5234487296           0  5234487296[root@localhost cc]# free -m  # 以MB为单位total        used        free      shared  buff/cache   available
    Mem:           9980         163        9556          11         260        9536
    Swap:          4991           0        4991[root@localhost cc]# free -g  # 以GB为单位total        used        free      shared  buff/cache   available
    Mem:              9           0           9           0           0           9
    Swap:             4           0           4[root@localhost cc]# free -h  # 易读格式total        used        free      shared  buff/cache   available
    Mem:           9.7G        163M        9.3G         11M        260M        9.3G
    Swap:          4.9G          0B        4.9G[root@localhost cc]# free -th	# swap跟物理内存总数total        used        free      shared  buff/cache   available
    Mem:           9.7G        163M        9.3G         11M        260M        9.3G
    Swap:          4.9G          0B        4.9G
    Total:          14G        163M         14G
    

date

  • 格式与选项

    标记含义示例(当前时间:2025-10-28 22:45:44)
    %Y4位年份2025
    %m月份(01-12)10
    %d日期(01-31)28
    %H24小时制小时(00-23)22
    %M分钟(00-59)45
    %S秒(00-60)44
    %F日期(%Y-%m-%d)2025-10-28
    %T时间(%H:%M:%S)22:45:44
  • 关键选项

    • 示例1:date -d "2025-10-28 +1 month" +%F → 2025-11-28

    • 示例2:date -d "2025-10-28 -1 year" +%Y → 2024

    • 示例3: date +%s # 转换为时间戳

      ~]# date -d "$(echo 20251029 23:59:59)"
      20251029日 星期三 23:59:59 CST~]# date -d "$(echo 20251029 23:59:59)" +%s
      1761753599
      
    • 示例4: 将时间戳转换为时间

      ~]# date -d @1761753599
      20251029日 星期三 23:59:59 CST
      
    • 示例5: 显示日历

      ~]# cal -y 2025
      
    • 示例6:查看时区

      ~]# ll  /etc/localtime 
      ---- /etc/localtime -> ../usr/share/zoneinfo/Asia/Shanghai
      

uptime

  • 理论

    • 通常每个CPU内核的当前活动进程数不大于3,那么系统的性能良好。如果每个CPU内核的任务数大于5,那么此主机的性能有严重问题

    • 同学需要平均负载:指在特定时间间隔内运行队列中的平均进程数

    • 如果linux主机是1个双核CPU,当Load Average 为6的时候说明机器已经被充分使 用

  • 示例

    # 显示当前时间以及系统负载~]#   uptime21:32:32 up 40 min,  1 user,  load average: 0.09, 0.06, 0.05
    
http://www.dtcms.com/a/545186.html

相关文章:

  • 【Ubuntu】安装amd驱动及ROCM后,系统起不来的问题分析及解决方案
  • 外国网站后台设计iis网页提示网站建设中
  • 镇江网站建设多少钱北京seo网站优化公司
  • 【第一章】金融数据的获取——金融量化学习入门笔记
  • MoonBit Pearls Vol.13:使用 MoonBit 开发一个 HTTP 文件服务器
  • 网站建设如何描述htm网站制作
  • SAP PP模块中流程制造
  • 网站攻击企业做营销型网站
  • SpringBoot项目集成easy-es框架
  • MySQL | 对数据库及数据库表格进行操作(实例)
  • 安装 ElasticSearch、Logstash、Kibana、Kafka 和 Filebeat
  • 从数据采集到智能诊断:阿尔泰科技实时高精度远距离管道状态监测全流程
  • MLGO微算法科技 LOP算法:实现多用户无线传感系统中边缘协同AI推理的智能优化路径
  • 签约快讯 | 当换科技携手体验家,重构二手3C全旅程体验
  • 2017网站开发新技术网站排名方法
  • flash打开网站源码网站开发亿玛酷出名5
  • ic电子网站建设网络营销策划推广方案
  • 视觉SLAM十四讲2nd—学习笔记(二)20250817
  • ADXL345 SPI加速度传感器Linux驱动开发笔记
  • 【自适应PF例程】基于Sage Husa的自适应粒子滤波与经典PF对比,MATLAB编写,可直接运行。三维状态量,非线性的状态与观测。附代码下载链接
  • 阿里云市场网站建设多语言做网站
  • 广东省城乡建设厅网站网站建设要解决哪些方面的事项
  • Docker篇4-本地项目app.py与docker加载项目镜像的开发顺序
  • FastMCP + cursor最小示例
  • 当机器学会“识人”:人脸识别技术原理与应用探析
  • 【总结】DHCP
  • 快速搭建LangChain4J与阿里通义千问对话系统
  • 购物网站设计开题报告电商网站建设目的及网站的优势
  • 网站建设与实现 文献综述wordpress 附件自定义
  • 万圣节流量高峰:基于 KEDA 的 EKS 弹性伸缩实践