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

linux基本功系列-top命令实战

在这里插入图片描述

文章目录

  • 一. top命令介绍
  • 二. 语法格式及常用选项
  • 三. 参考案例
    • 3.1 显示进程信息
    • 3.2 显示完整的进程命令
    • 3.3 以批处理的形式展示
    • 3.4 设置信息更新频次
    • 3.5 显示指定进程号的信息
    • 3.6 top面板中常用参数
    • 3.7 其他用法
  • 四. top的相关说明
    • 4.1 交互命令介绍
    • 4.2 top面板每行信息的含义
      • 4.2.1 第一行信息详解
      • 4.2.2 第二三行信息详解
      • 4.2.3 第四五行信息详解
      • 4.2.4 第7行进程信息
  • 五. 更强大的工具htop推荐
  • 总结

前言🚀🚀🚀
想要学好Linux,命令是基本功,企业中常用的命令大约200多个,不管是写shell脚本还是管理操作系统,最常用的命令必须要牢牢掌握,像我们以前学乘法口诀一样,烂熟于心,唯有如此,才能打牢基础。
💓 知识最重要的是记忆
💓 入门须知: 想要人生从容,必须全力以赴,努力才是你最终的入场券🚀🚀🚀
💕 最后: 努力成长自己,愿我们都能在看不到的地方闪闪发光 ,一起加油进步🍺🍺🍺

一. top命令介绍

top命令的功能是用于实时显示系统运行状态,包含处理器、内存、服务、进程等重要资源信息。

我们常常会把top命令比作是“加强版的Windows任务管理器”,因为除了能看到常规的服务进程信息以外,还能够对处理器和内存的负载情况一目了然。

使用top命令可以实时感知系统全局的运行状态,非常适合作为接手服务器后执行的第一条命令。

在top命令中按f按可以查看显示的列信息,按对应字母来开启/关闭列,大写字母表示开启,小写字母表示关闭。带*号的是默认列

二. 语法格式及常用选项

依据惯例,拿到一个命令首先查看 帮助, top 没有hlep帮助命令,可以使用man top查看

root@itlaoxin41 ~]# man top
[root@itlaoxin41 ~]# man top >> man_top.txt
[root@itlaoxin41 ~]# vim man_top.txt 

man的帮助手册一千多行,我们可以放到一个文档中只挑选对自己有用的,后续再去看参数。

命令格式:
top [参数】

常用选项:

-b:以批处理模式操作;
-c:显示完整的进程信息;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i<时间>:设置间隔时间;
-u<用户名>:指定用户名;
-p<进程号>:指定进程;
-n<次数>:循环显示的次数。

三. 参考案例

3.1 显示进程信息

此时,无需加任何参数 直接执行top即可

#top

执行结果如下图:
在这里插入图片描述

3.2 显示完整的进程命令

-c 参数 ,与不使用-c参数做对比,查看后面的command的变化

#top -c 

在这里插入图片描述
如果我们要查看前10行,可以使用

 top -c |head 

但这么查看不会一直动态显示,会自动退出。

3.3 以批处理的形式展示

这里会用到-b的参数

[root@mufeng ~]# top -b 

此时需要执行ctrl +c 才能退出。

3.4 设置信息更新频次

-n 参数,用来设置信息的更新次数,这里改成5,意味着刷新5次后自己退出。

# top -n 5

-d 参数是用来设置秒数,默认为三秒,可以改为5

top -d 5

两个参数也可以一起用:

[root@mufeng ~]# top -d 1 -n 3 

表示每一秒钟刷新一次,一共刷新3次后退出。

3.5 显示指定进程号的信息

我们先查看到进程号,比如 17447
这时候用 -p 参数后面直接跟17447即可:

root@mufeng ~]# top -p 17447

在这里插入图片描述

3.6 top面板中常用参数

  • 键盘数字1 : 可以查看每个逻辑cpu的状况,再按一次1 就返回top的基本界面
    在这里插入图片描述
  • 字母b 可以打开和关闭正在运行的进程高亮显示
  • 字母y 可以关闭或者打开运行态进程的加亮效果

下图是敲击b之后的效果,要注意如果没有正在运行的进程,可能没啥效果:
在这里插入图片描述

3.7 其他用法

  • 显示某个进程的信息
# top -u httpd
  • 显示线程信息而不是进程的信息
# top -H
  • 找出系统中使用CPU最多的进程:

运行top , 找出使用CPU最多的进程 ,按大写的P,可以按CPU使用率来排序显示

在这里插入图片描述

四. top的相关说明

4.1 交互命令介绍

在top命令执行过程中可以使用的一些交互命令。这些命令都是单字母的,如果在命令行中使用了-s选项, 其中一些命令可能会被屏蔽。

参数描述
h显示帮助画面,给出一些简短的命令总结说明;
k终止一个进程;
i忽略闲置和僵死进程,这是一个开关式命令;
q退出程序;
r重新安排一个进程的优先级别;
S切换到累计模式;
s改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s;
f或者F从当前显示中添加或者删除项目;
o或者O改变显示项目的顺序;
l切换显示平均负载和启动时间信息;
m切换显示内存信息;
t切换显示进程和CPU状态信息;
c切换显示命令名称和完整命令行;
M根据驻留内存大小进行排序;
P根据CPU使用百分比大小进行排序;
T根据时间/累计时间进行排序;
w将当前设置写入~/.toprc文件中。

top命令交互

  1. 基础操作
  • 1:显示CPU详细信息,每核显示一行
  • d / s :修改刷新频率,单位为秒
  • h:可显示帮助界面
  • n:指定进程列表显示行数,默认为满屏行数
  • q:退出top
  1. 面板隐藏显示
  • l:隐藏/显示第1行负载信息;
  • t:隐藏/显示第2~3行CPU信息;
  • m:隐藏/显示第4~5行内存信息;
  1. 进程列表排序
  • M:根据驻留内存大小进行排序;
  • P:根据CPU使用百分比大小进行排序;
  • T:根据时间/累计时间进行排序;

这里使用频率最高的是P、T、M

因为通常使用top,我们就想看看是哪些进程最耗cpu资源、占用的内存最多;

注:通过”shift + >”或”shift + <”可以向右或左改变排序列;

如果只需要查看内存:可用free命令。

只查看uptime信息(第一行),可用uptime命令;

详细交互指令:h / ? 可显示帮助界面

Help for Interactive Commands - procps-ng version 3.3.10
Window 1:Def: Cumulative mode Off.  System: Delay 3.0 secs; Secure mode Off.Z,B,E,e   Global: 'Z' colors; 'B' bold; 'E'/'e' summary/task memory scalel,t,m     Toggle Summary: 'l' load avg; 't' task/cpu stats; 'm' memory info0,1,2,3,I Toggle: '0' zeros; '1/2/3' cpus or numa node views; 'I' Irix modef,F,X     Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-widthL,&,<,> . Locate: 'L'/'&' find/again; Move sort column: '<'/'>' left/rightR,H,V,J . Toggle: 'R' Sort; 'H' Threads; 'V' Forest view; 'J' Num justifyc,i,S,j . Toggle: 'c' Cmd name/line; 'i' Idle; 'S' Time; 'j' Str justifyx,y     . Toggle highlights: 'x' sort field; 'y' running tasksz,b     . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')u,U,o,O . Filter by: 'u'/'U' effective/any user; 'o'/'O' other criterian,#,^O  . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s)C,...   . Toggle scroll coordinates msg for: up,down,left,right,home,endk,r       Manipulate tasks: 'k' kill; 'r' reniced or s    Set update intervalW,Y       Write configuration file 'W'; Inspect other output 'Y'q         Quit( commands shown with '.' require a visible task display window ) 
Press 'h' or '?' for help with Windows,
Type 'q' or <Esc> to continue 

4.2 top面板每行信息的含义

在这里插入图片描述

4.2.1 第一行信息详解

第一行内容和uptime弹出的信息一样

参数描述
09:42:57当前时间
up 5:38系统运行时间,说明服务器运行了5个小时38分
3users当前登录用户数
load average: 0.06, 0.60, 0.48系统负载,即任务队列的平均长度。 三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。

4.2.2 第二三行信息详解

此处当有多个CPU时,这些内容可能会超过两行

信息描述
Tasks210 total进程总数
4running正在运行的进程数
204 sleeping睡眠的进程数
2 stopped停止的进程数
0 zombie僵尸进程数
Cpu(s): 0.0% us系统用户进程使用CPU百分比。
4.8% sy内核中的进程占用CPU百分比
0.0% ni用户进程空间内改变过优先级的进程占用CPU百分比
94.4% id空闲CPU百分比
0.0% wacpu等待I/0完成的时间总量,也就是等待输入输出的CPU时间百分比
0.0% hiCPU服务于硬件中断所耗费的时间, 也就是硬中断占的CPU百分比。
0.0% si软中断消耗时间也就是软中断占的CPU百分比。
0.0 stst:虚拟机hypervisonr偷去的cpu的时间。比如:物理机已经运行了KVM,XEN虚拟机。KVM虚拟机也占用物理机的cpu时间

这里提到了几个概念: 硬中断,软中断

  • 硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。

  • 软中断: 通常,软中断是一些对I/O的请求。

这些请求会调用内核中可以调度I/O发生的程序。对于某些设备,I/O请求需要被立即处理,而磁盘I/O请求通常可以排队并且可以稍后处理。

根据I/O模型的不同,进程或许会被挂起直到I/O完成,此时内核调度器就会选择另一个进程去运行。I/O可以在进程之间产生并且调度过程通常和磁盘I/O的方式是相同。

4.2.3 第四五行信息详解

第四五行是内存信息

在这里插入图片描述

信息描述
Mem : 1863252 total物理内存总量
72956 free空闲内存总量
786372 used,使用的物理内存总量
1003924 buff/cache用作内核缓存的内存量和free -k是一个意思
Swap: 2017948k total交换分区总量
2048756free空闲交换分区总量
48392 used使用的交换区总量
6960648 avail Mem缓冲的交换区总量

这里还要解释一下缓冲(buffer)和缓存(cache)的区别:

  • 缓存(cache)是在读取硬盘中的数据时,把最常用的数据保存在内存的缓存区中,再次读取该数据时,就不去硬盘中读取了,而在缓存中读取。
  • 缓冲(buffer)是在向硬盘写入数据时,先把数据放入缓冲区,然后再一起向硬盘写入,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。

简单来说,缓存(cache)是用来加速数据从硬盘中"读取"的,而缓冲(buffer)是用来加速数据"写入"硬盘的。

4.2.4 第7行进程信息

在这里插入图片描述

信息含义
PID进程ID
user进程所有者的用户名
PR优先级(由内核动态调整),用户不能自己调整
NI进程优先级。 nice值,负值表示高优先级,正值表示低优先级,用户可以自己调整
VIRT(virtual memory usage)虚拟内存,是进程正在使用的所有内存(ps中标为VSZ)
RES(resident memory usage)是进程所使用的物理内存。实际实用内存(ps中标为RSS) ,常驻内存
SHR共享内存
S进程的状态
%CPU上次更新到现在的CPU时间占用百分比
%MEM进程使用的物理内存百分比
TIME+进程使用的CPU时间总计,单位1/100秒
COMMAND命令名/命令行

五. 更强大的工具htop推荐

htop 是一个 Linux 下的交互式的进程浏览器,可以用来替换Linux下的top命令。不过这个工具再2018年之后就没有在更新过了,目前最新的包是:
在这里插入图片描述

与Linux传统的top相比,htop更加人性化。它可让用户交互式操作,支持颜色主题,可横向或纵向滚动浏览进程列表,并支持鼠标操作。

与top相比,htop有以下优点:

  • 可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令行。
  • 在启动上,比top 更快。
  • 杀进程时不需要输入进程号。
  • htop 支持鼠标操作。

总结

top是超级难的命令了,主要原因在于参数太多,需要把每个参数吃透,又得大半天的时间,你学会了吗?

💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~

请添加图片描述
在这里插入图片描述

相关文章:

linux基本功系列-top命令实战

文章目录一. top命令介绍二. 语法格式及常用选项三. 参考案例3.1 显示进程信息3.2 显示完整的进程命令3.3 以批处理的形式展示3.4 设置信息更新频次3.5 显示指定进程号的信息3.6 top面板中常用参数3.7 其他用法四. top的相关说明4.1 交互命令介绍4.2 top面板每行信息的含义4.2.…...

6.5 拓展:如何实现 Web API 版本控制,同时兼容无版本控制的原始接口?

第6章 构建 RESTful 服务 6.1 RESTful 简介 6.2 构建 RESTful 应用接口 6.3 使用 Swagger 生成 Web API 文档 6.4 实战&#xff1a;实现 Web API 版本控制 6.5 拓展&#xff1a;如何实现 Web API 版本控制&#xff0c;同时兼容无版本控制的原始接口&#xff1f; 6.5 拓展&#…...

Springboot依赖注入Bean的三种方式,final+构造器注入Bean

文章目录Springboot依赖注入Bean的方式一、Field 注入/属性注入二、set注入三、构造器注入Springboot依赖注入Bean的方式 一、Field 注入/属性注入 Autowired注解的一大使用场景就是Field Injection。 Controller public class UserController {Autowiredprivate UserServic…...

【java】Spring Cloud --Spring Cloud Alibaba 微服务解决方案

文章目录1、Spring Cloud Alibaba 是什么先说说 Spring CloudSpring Cloud Alibaba和Spring Cloud 的区别和联系Spring Cloud Alibaba2、Spring Cloud Alibaba 包含组件阿里开源组件阿里商业化组件集成 Spring Cloud 组件3、Spring Cloud Alibaba 功能服务注册与发现支持多协议…...

CSS 6种选择器(超详细)

CSS6大种选择器(超详细) 一、常用的css基本选择器(4种) 1、标签选择器 结构&#xff1a; 标签名{css属性名&#xff1a;属性值} 作用&#xff1a;通过标签名&#xff0c;找到页面中所有的这类标签&#xff0c;设置样式 注意&#xff1a;1.标签选择器选择的是一类标签&#…...

mysql8.0.32-手动配置安装-具体流程步骤

文章目录1.下载mysql压缩编译版2.修改配置文件3.数据库初始化&#xff0c;安装windows服务&#xff0c;启动服务4.修改root密码5.作者答疑1.下载mysql压缩编译版 作者从官方下载&#xff1a;https://download.csdn.net/download/m0_67316550/87485720 2.修改配置文件 修改my…...

【项目】Vue3+TS 退出登录 menu header搭建

&#x1f4ad;&#x1f4ad; ✨&#xff1a;【项目】Vue3TS 退出登录 menu header搭建   &#x1f49f;&#xff1a;东非不开森的主页   &#x1f49c;: 今天永远比昨天更好&#x1f49c;&#x1f49c;   &#x1f338;: 如有错误或不足之处&#xff0c;希望可以指正&#x…...

LoRaWAN模块在车辆跟踪定位中的应用

目前 GPS已经在资产的管理中得到了越来越多的运用&#xff0c;如车辆跟踪、车队跟踪、资产监控等&#xff1b;人员跟踪&#xff0c;宠物跟踪&#xff0c;等等。在所有追踪装置中&#xff0c;最重要的是它的电池期望和监视距离。鉴于 LoRaWAN的功率消耗很小&#xff0c;而且能在…...

软件测试分类

软件测试分类 从上图我们发现软件测试根据不同的分类条件会有不同的结果. 1. 按照阶段进行划分 1.1 单元测试(Unit Testing) 单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位&#xff1a;模块。 测试阶段&#x…...

外置的媒体查询,对性能又一次的优化提升

通常情况下我们写媒体查询都是写在一个样式文件中&#xff0c;对于浏览器加载的时候&#xff0c;会解析到最后一行样式时才会渲染页面&#xff0c;这样就会造成页面的白屏时间过长。 但是通常情况下大量的媒体查询样式都是无用的&#xff0c;现在浏览器允许我们在引用样式文件…...

【Galois工具开发之路】关于IDEA的gradle工程执行两次premain的bug~

文章目录关于premain方法问题记录解决方式关于premain方法 是Java Agent技术的一种&#xff0c;通过 -javaagent: 的方式&#xff0c;添加外部代理&#xff0c;代理入口方法为 premain 。另一种Java Agent技术则是动态attach到java进程的方式&#xff0c;这种方式则是使用 age…...

云计算 概念与技术

如果我倡导的计算机在未来得到使用&#xff0c;那么有一天&#xff0c;计算也可能像电话一样成为共用设施。计算机应用将成为一全新的、重要的产业的基础。 ——John McCarthy 云计算的概念 定义 Garther公司的定义 一种计算方式&#xff0c;能通过Internet技术将可扩展的和…...

基于追踪标记的WAF设计思路

一 相关背景 目前&#xff0c;市面上的WAF产品通常采用”发现即阻断“的策略&#xff0c;以防护针对业务系统的Web攻击行为。虽然该策略可及时阻断攻击&#xff0c;但形式上过于简单&#xff0c;并不能有效掌握攻击者进一步的攻击意图&#xff0c;也不能有效提高攻击者的成本投…...

Java StringBuffer StringBuilder,超详细整理,适合新手入门

目录 一、StringBuffer和StringBuilder的区别是什么&#xff1f; 二、StringBuffer的示例 三、StringBuilder的示例 四、为什么StringBuffer和StringBuilder比String更适合在循环中使用&#xff1f; 五、如何将String对象转换为StringBuilder或StringBuffer对象&#xff1…...

数据结构—堆(完全解析)

数据结构—堆&#xff08;完全解析&#xff09; 数据结构——堆&#xff08;Heap&#xff09;大根堆、小根堆 详解数据结构——堆 堆的基本存储 【从堆的定义到优先队列、堆排序】 10分钟看懂必考的数据结构——堆 【堆/排序】堆排序的两种建堆方法 【算法】排序算法之堆排序 C…...

深度卷积对抗神经网络 进阶 第三部分 GANs Unpaired Translation with Cycle GAN 模型

非配对的图像转换应用 Unpaired Image-to-Image Translation Unpaired image-to-image translation 主要用于学习两组图像之间的对应关系&#xff0c;检查和寻找两堆数据中的共同内容&#xff08;content&#xff09;以及每堆独有的特点&#xff08;style&#xff09;。而这个…...

常见的排序算法 | 直接插入排序 | 希尔排序 | 选择排序 | 堆排序 | 冒泡排序 | 快速排序 | 归并排序 |(详解,附动图,代码)

思维导图&#xff1a; 一.插入排序 1.直接插入排序&#xff08;InsertSort&#xff09; ①手机通讯录时时刻刻都是有序的&#xff0c;新增一个电话号码时&#xff0c;就是使用插入排序的方法将其插入原有的有序序列。 ②打扑克 步骤&#xff1a; ①如果一个序列只有一个数&am…...

深入浅出 MySQL 索引(一)

MySQL 索引&#xff08;基础篇&#xff09; 你好&#xff0c;我是悟空。 本文目录如下&#xff1a; 一、前言 最近在梳理 MySQL 核心知识&#xff0c;刚好梳理到了 MySQL 索引相关的知识&#xff0c;我的文章风格很多都是原理 实战的方式带你去了解知识点&#xff0c;所以…...

FinClip 的 2022 与 2023

相比往年&#xff0c;今年复盘去年与展望新年的文章来的稍慢一点。不过也希望能够借这篇文章&#xff0c;和关注 FinClip 的用户朋友们一起聊聊&#xff0c;我们在去年和今年的想法与计划。 2022 在过去的一年中&#xff0c;我们的身边发生了很多事情&#xff0c;这些事情在不…...

Python 泛型 - 如何在实例方法中获取泛型参数T的类型?

先上解决方法&#xff1a;https://stackoverflow.com/questions/57706180/generict-base-class-how-to-get-type-of-t-from-within-instance 再来简单分析下源码。 talk is cheap, show me the code. from typing import Dict Dict[str, int]Dict只是一个类型&#xff0c;并不…...

Shell语法基础总结

Shell 变量使用变量只读变量删除变量变量类型Shell 字符串单引号与双引号字符串获取字符串长度提取子字符串拼接字符串Shell 数组定义数组读取数组获取数组的长度Shell 传递参数Shell 基本运算符算术运算符关系运算符布尔运算符逻辑运算符字符串运算符Shell 信息输出命令Shell …...

架构基本概念和架构本质

什么是架构和架构本质 在软件行业&#xff0c;对于什么是架构&#xff0c;都有很多的争论&#xff0c;每个人都有自己的理解。此君说的架构和彼君理解的架构未必是一回事。因此我们在讨论架构之前&#xff0c;我们先讨论架构的概念定义&#xff0c;概念是人认识这个世界的基础&…...

taobao.trade.ordersku.update( 更新交易的销售属性 )

&#xffe5;开放平台免费API必须用户授权 只能更新发货前子订单的销售属性 只能更新价格相同的销售属性。对于拍下减库存的交易会同步更新销售属性的库存量。对于旺店的交易&#xff0c;要使用商品扩展信息中的SKU价格来比较。 必须使用sku_id或sku_props中的一个参数来更新&a…...

算法实战应用案例精讲-【图像处理】使用scikit-image做图像处理(最终篇)(附python代码实现)

目录 高级滤波 autolevel bottomhat 与 tophat enhance_contrast entropy equalize gradient 其它滤波器...

数据结构与算法(四):树结构

前面讲到的顺序表、栈和队列都是一对一的线性结构&#xff0c;这节讲一对多的线性结构——树。「一对多」就是指一个元素只能有一个前驱&#xff0c;但可以有多个后继。 一、基本概念 树&#xff08;tree&#xff09;是n&#xff08;n>0&#xff09;个结点的有穷集。n0时称…...

taobao.trade.shippingaddress.update( 更改交易的收货地址 )

&#xffe5;开放平台免费API必须用户授权 只能更新一笔交易里面的买家收货地址 只能更新发货前&#xff08;即买家已付款&#xff0c;等待卖家发货状态&#xff09;的交易的买家收货地址 更新后的发货地址可以通过taobao.trade.fullinfo.get查到 参数中所说的字节为GBK编码的&…...

VS Code安装及(C/C++)环境配置(Windows系统)

参考资料2份&#xff1a; 从零开始的vscode安装及环境配置教程(C/C)(Windows系统)_光中影zone的博客-CSDN博客_vscode运行配置https://blog.csdn.net/qq_45807140/article/details/112862592 VSCode配置C/C环境 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/87864677 五…...

【Spring Cloud Alibaba】006-OpenFeign

【Spring Cloud Alibaba】006-OpenFeign 文章目录【Spring Cloud Alibaba】006-OpenFeign一、概述1、Java 项目实现接口调用的方法HttpclientOkhttpHttpURLConnectionRestTemplate WebClient2、Feign 概述二、Spring Cloud Alibaba 快速整合 OpenFeign1、添加依赖2、启动类加注…...

挚文集团短期内不适合投资,长期内看好

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 挚文集团&#xff08;MOMO&#xff09;在新闻稿中称自己是“中国在线社交和娱乐领域的领军企业”。 该公司旗下的陌陌是中国“陌生人社交网络”移动应用类别的领导者&#xff0c;并在2022年9月拥有超过1亿的月活跃用户。探…...

clion开发的常用快捷键以及gitcrlf的问题

前段报错&#xff1a;git config core.autocrlf false 然后删除app目录下的文件&#xff0c;除了.git文件夹然后 git bash ,执行 git reset --hardclion常用快捷键&#xff1a;Double shift 搜索文件F9调试F9运行到断点Ctrl F8 打断点F7单步步入Shift F8 单步跳出F8执行下一行代…...