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

news2024/11/17 6:25:25

在这里插入图片描述

文章目录

  • 一. 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 scale
  l,t,m     Toggle Summary: 'l' load avg; 't' task/cpu stats; 'm' memory info
  0,1,2,3,I Toggle: '0' zeros; '1/2/3' cpus or numa node views; 'I' Irix mode
  f,F,X     Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-width

  L,&,<,> . Locate: 'L'/'&' find/again; Move sort column: '<'/'>' left/right
  R,H,V,J . Toggle: 'R' Sort; 'H' Threads; 'V' Forest view; 'J' Num justify
  c,i,S,j . Toggle: 'c' Cmd name/line; 'i' Idle; 'S' Time; 'j' Str justify
  x,y     . Toggle highlights: 'x' sort field; 'y' running tasks
  z,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 criteria
  n,#,^O  . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s)
  C,...   . Toggle scroll coordinates msg for: up,down,left,right,home,end

  k,r       Manipulate tasks: 'k' kill; 'r' renice
  d or s    Set update interval
  W,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是超级难的命令了,主要原因在于参数太多,需要把每个参数吃透,又得大半天的时间,你学会了吗?

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/192607.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL(八):事务的隔离级别、MVCC的原理

目录一、事务的隔离级别1.1 事务的隔离性1.2 事务并发执行引发的一致性问题1.2.1 脏写1.2.2 脏读1.2.3 不可重复读1.2.4 幻读1.3 SQL标准中的四种隔离级别1.4 MySQL中支持的4中隔离级别二、MVCC原理2.1 版本链2.2 ReadView2.3 READ COMMITED 每次读取数据前都生成一个ReadView2…

使用独立显卡安装黑苹果,但无法扩展显示器的解决方案

使用独立显卡安装黑苹果&#xff0c;但无法扩展显示器的解决方案 网上的教程 本文的外部链接&#x1f517; 引用文中的一句话&#xff1a;“这也许是无法驱动独显的黑苹果笔记本想要外接显示器的唯一方案。” ---- 购买拥有displaylink的外置显卡的usb转接器 文章作者给我了…

word@菜单自定义和公式输入

菜单栏快捷键设置 word 设置(选项) Word options (General) - Microsoft Support 点击文件->选项 自定义word菜单 自定义功能区 Customize the ribbon in Word - Microsoft Support Customizing the source list of commandsThe ribbon listAdd or remove commandsReor…

[golang Web开发] 2.golang web开发:操作数据库,增删改查,单元测试

简介 Go 语言中的 database/sql包定义了对数据库的一系列操作,database/sql/driver包定义了应被数据库驱动实现的接口&#xff0c;这些接口会被sql包使用.但是 Go语言没有提供任何官方的数据库驱动&#xff0c;所以需要导入第三方的数据库驱动,不过连接数据库之后对数据库操作的…

超经典JavaIDEA 10个插件 Java开发工程师

工欲善其事&#xff0c;必先利其器。 作为一名合格的程序员&#xff0c;合理配置我们所用的IDEA&#xff0c;是高效开发的必修课。而如今的插件工具也越来越好用&#xff0c;不仅基本具备了智能提示&#xff0c;还可以自动补全代码&#xff0c;甚至能够在查出bug的同时提供修改…

如何彻底删除硬盘数据?电脑高手也恢复不了

实用的小命令,就是彻底删除硬盘上的数据,硬盘恢复软件也恢复不了! 1.以管理员身份运行cmd窗口,打开cmd,如下图所示: 2.在命令提示窗口中,直接输入cipher /w:路径,输入这个命令加上路径即可将文件彻底删除! 可以从整个命令说明上看到是从整个卷上可用的未使用磁盘空间…

Git (2) :Git练习--分支的新建与合并

一.首先有个问题 &#xff1f; 在进行git练习前&#xff0c;有个问题需要提下。。。。 csdn无法登录了。 查了一下资料&#xff0c;是因为CSDN服务器的各地相应速度不一样&#xff0c;辽宁的响应是超时的&#xff0c;所以通过在hosts文件中指定域名http://csdnimg.cn的服务器…

机器学习之卷积操作

很多好主意一旦踏上语义鸿沟&#xff0c;就再也听不到。 卷积&#xff0c;在图像、视觉领域乃老生常谈的内容&#xff0c;但是对于具体工作细节仍然值得我去学习。 卷积原理 卷积&#xff0c;就是利用一个小的矩阵(或者更高维向量)作用于图像矩阵(或者特征矩阵)&#xff0c;然…

Web测试、APP测试常用技巧(错过你一定会后悔)

目录 1. web元素定位七种方式 2. app元素定位3种方式 3. adb常用命令 4. 键盘操作常用函数 5. 鼠标操作常用函数 6. apppium&#xff1a; 7. fixture 1. web元素定位七种方式 优先使用的6种 find_element_by_id (返回一个元素)find_element(s)_by_class_name (根据类名…

2023-02-01 pthread线程局部数据-记录

摘要: pthread线程局部数据-记录 参考: https://www.akkadia.org/drepper/tls.pdf https://en.wikipedia.org/wiki/Thread-local_storage https://download.csdn.net/download/adofsauron/87408865 测试代码: 示例一: #include<stdio.h> #include<stdlib.h> #…

pip install timeout错误解决方案

大家好&#xff0c;我是爱编程的喵喵。双985硕士毕业&#xff0c;现担任全栈工程师一职&#xff0c;热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。喜欢通过博客创作的方式对所学的知识进行总结…

java spring Bean生命周期

首先 要搞清楚大概念 什么是生命周期&#xff1f; 学过vue和react的前端会有概念 简单说 就是一个对象从创建到销毁的整个过程 那么 bean的生命周期 我们先文字描述 然后再看效果 第一 阶段 通过构造器创建bean实例 就是找到bean对象配置的 类中的无惨构造 创建对象 第二阶段…

React学习笔记-(Bilibili李立超)

写法的变更 之前 const divNode <div>你好,React</div> ReactDOM.render(divNode,document.getElementById(root))会警告 现在 <script type"text/babel">const divNode <div>你好,React</div>const root ReactDOM.createRoot(…

【PHP 随记】—— laravel 项目环境搭建

&#x1f449;总目录&#x1f448;\large\colorbox{skyblue}{&#x1f449;总目录&#x1f448;}&#x1f449;总目录&#x1f448;​ 文章目录1、安装 laravel 以及 phpstorm 开发插件2、配置虚拟主机与绑定 hosts 文件① 配置虚拟主机② hosts 绑定③ 验证3、配置数据库① 配…

【MyBatis持久层框架】使用Java注解完成CRUD详细解读

文章目录1. 前言2. 实战案例2.1 准备工作2.2 编写接口方法2.3 映射SQL语句2.4 编写测试方法3. SQL语句构建器4. 总结1. 前言 之前我们通过 XML 配置文件的方式映射 sql 语句&#xff0c;将 sql 语句与 Java 代码分离&#xff0c;大大的提高了开发的效率并且解决了 JDBC 原生方…

MySQL - 为什么索引存储要用B+树,用链表不行吗?

MySQL - 为什么索引存储要用B树&#xff0c;用链表不行吗&#xff1f; 时间&#xff1a;2023年2月1日22:19:09 一、先来比较一下链表和树&#xff1f; 二、为什么数据库索引要用B树&#xff1f; 为什么要用索引&#xff0c;数据直接Load到内存里查不可以吗&#xff1f;&#…

Hive最全总结,学习与面试,收藏这一篇就够了!

Hive基础概念和用途 Hive是Hadoop下的顶级 Apache项目&#xff0c;早期的Hive开发工作始于2007年的 Facebook。 ⬛ Apache Hive是一款建立在Hadoop之上的开源数据仓库系统&#xff0c;可以将存储在Hadoop文件中的结构化、半结构化 数据文件映射为一张数据库表&#xff0c;基…

操作系统(day05)-- 进程调度、调度算法

文章目录进程调度&#xff08;低级调度&#xff09;进程调度的时机进程调度的方式调度算法的评价指标FCFS&#xff0c;SJF&#xff0c;HRRN调度算法先来先服务&#xff08;FCFS&#xff09;短作业优先&#xff08;SJF&#xff09;高响应比优先&#xff08;HRRN&#xff09;进程…

从0开始用hooks搭建一个事件待办的demo(一)

需求一&#xff1a;实现header&#xff0c;点击加号展示input&#xff0c;再次点击隐藏input 分析&#xff1a; 首先&#xff0c;需要两个子组件header和addInput&#xff1b; header组件负责展示图一的内容&#xff0c;给加号添加一个点击事件&#xff0c;来触发展示input的函…

zookeeper源码分享五 --- 数据结构

zookeeper 内存数据结构 zookeeper在内存当中是有一份完整的数据&#xff0c;底层数据结构是基于hashMap去实现的。 在map的key是path&#xff0c;value是具体节点信息(DataNode)。 在map的顶层中有所有节点的path信息&#xff0c;每个节点都要子节点的path(不是具体的节点信息…