011_Linux(ps,kill,top,df,iostat,sar)

本文详细介绍了Linux系统中的进程管理,包括查看所有进程、指定进程操作以及使用kill命令关闭进程。此外,还讲解了如何通过top命令监控主机的CPU、内存、磁盘和网络状态,以及df和iostat命令的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、进程管理 

1、查看进程 ps

2、查看指定进程

3、关闭进程 kill

二、主机状态

1、查看系统资源占用 top

(1)top命令内容详解

(2)top命令选项

(4)top交互式选项

2、磁盘信息监控

(1)查看硬盘使用情况 df

(2)查看CPU、磁盘相关信息 iostat

3、网络状态监控 sar -n DEV


一、进程管理 

1、查看进程 ps

  • ps [ -e -f ]
  • -e,显示出全部的进程
  • -f ,以完全格式化的形式显示全部信息
  • 一般使用方式是:ps -ef ,列出全部进程的全部信息

  • PPID:进程的父ID(启动此进程的其他进程);程序不仅可以被用户启动,也可以被用户的其他程序所启动
  • C:此进程的CPU占用率(百分比)
  • STIME:进程的启动时间
  • TTY:启动此进程的终端序号,若显示?,表示非终端启动
  • TIME:所使用的CPU时间
  • CMD:启动命令或启动路径

2、查看指定进程

  • ps -ef | grep tail

# 发现管道符左右是否有空格都不影响命令

3、关闭进程 kill

  • kill [ -9 ] 进程ID
  • -9,强制关闭;不使用此选项会向进程发送信号要求其关闭,但是否关闭看进程自身的处理机制

eg:不强制,而是请求关闭,显示已终止(自己终止自己)

eg:强制关闭,显示已杀死(强制杀死)

二、主机状态

1、查看系统资源占用 top

查看CPU、内存使用情况,类似Windows的任务管理器

  • top
  • 默认5秒刷新一次,退出:按q或ctrl+c

(1)top命令内容详解

第一行:

21:02:27 :当前系统时间;up 11min:启动了11分钟;4user:4个用户登录;load:1、5、15分钟平均负载(这里0.46表明1分钟有0.46颗CPU百分百繁忙,现在都很低,说明现在系统压力低)

第二行:

Takes:177个进程;running:1个进程正在运行;sleeping:176个进程正在睡眠;stopped:0个停止进程;zombie:0个僵尸进程

第三行:

%Cpu(s):CPU使用率,us:用户CPU使用率,sy:系统CPU使用率,ni:高优先级进程占用CPU时间百分比,id:空闲CPU率,wa:IO等待CPU占用率,hi:CPU硬件中断率,si:CPU软件中断率,st:强制等待占用CPU率

第四五行:

KiB Mem:物理内存,total:总量,free:空闲,used:使用,buff/cache:buff和cache占用

KiB Swap:虚拟内存(交换空间)(虚拟内存可以无限扩容,一般不关心)

  • PR:进程优先级,越小越高
  • NI:负值表示高优先级,正值表示低优先级
  • VIRT:进程使用虚拟内存(KB)
  • RES:进程使用物理内存(KB)
  • SHR:进程使用共享内存(KB)
  • S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)
  • %CPU:进程占用CPU率
  • %MEM:进程占用内存率
  • TIME+:进程使用CPU时间总计(10毫秒)
  • COMMAND:进程的命令或名称或程序文件路径

(2)top命令选项

eg:-p,显示进程号为1的进程

(4)top交互式选项

# 一般光top就够用了

2、磁盘信息监控

(1)查看硬盘使用情况 df

  • df [ -h ]
  • -h,以更人性化的单位显示

(2)查看CPU、磁盘相关信息 iostat

  • iostat [ -x ] [ num1 ] [ num2 ]
  • -x,显示更多信息
  • num1:数字,刷新间隔;num2:刷新几次

eg:直接iostat

tps:每秒传输次数;后面分别是:每秒读/写了多少kB,总的读取/写出kB数

eg:加上-x(主要关注标红的就行)

eg:num选项,每隔一秒刷新,总共刷新三次

3、网络状态监控 sar -n DEV

sar非常非常非常复杂,这里仅简单用于统计网络

  • sar -n DEV num1 num2
  • -n,查看网络
  • DEV,查看网络接口
  • num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填无限次数)

  • IFACE 本地网卡接口的名称
  • rxpck/s 每秒钟接受的数据包
  • txpck/s 每秒钟发送的数据包
  • rxKB/S 每秒钟接受的数据包大小,单位为KB
  • txKB/S 每秒钟发送的数据包大小,单位为KB
  • rxcmp/s每秒钟接受的压缩数据包
  • txcmp/s 每秒钟发送的压缩包
  • rxmcst/s 每秒钟接收的多播数据包

eg:加上num参数,每隔1秒刷新,刷新2次,最后会进行平均

出现这个错误的原因是在导入seaborn包时,无法从typing模块中导入名为'Protocol'的对象。 解决这个问题的方法有以下几种: 1. 检查你的Python版本是否符合seaborn包的要求,如果不符合,尝试更新Python版本。 2. 检查你的环境中是否安装了typing_extensions包,如果没有安装,可以使用以下命令安装:pip install typing_extensions。 3. 如果你使用的是Python 3.8版本以下的版本,你可以尝试使用typing_extensions包来代替typing模块来解决该问题。 4. 检查你的代码是否正确导入了seaborn包,并且没有其他导入错误。 5. 如果以上方法都无法解决问题,可以尝试在你的代码中使用其他的可替代包或者更新seaborn包的版本来解决该问题。 总结: 出现ImportError: cannot import name 'Protocol' from 'typing'错误的原因可能是由于Python版本不兼容、缺少typing_extensions包或者导入错误等原因造成的。可以根据具体情况尝试上述方法来解决该问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [ImportError: cannot import name ‘Literal‘ from ‘typing‘ (D:\Anaconda\envs\tensorflow\lib\typing....](https://blog.youkuaiyun.com/yuhaix/article/details/124528628)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值