Liunx进程与端口

目录

查看进程

进程状态 (了解)

TTY (拓展)

查看进程PID

1. pgrep

2. pidof

  动态查看查看进程

top与htop的操作:

计算cpu负载:

进程控制

kill与pkill

查看端口

1. netstat

2. ss

3. lsof


查看进程

ps :process nsapashot命令在Unix基础的系统中,被广泛用来查看当前系统的进程状态。这个命令有许多参数,其中一些常用的参数如下:

  1. -e:列出所有进程。
  2. -f:全格式输出。
  3. -l:长格式输出。
  4. -a:显示终端上的所有进程,包括其他用户的进程。
  5. -u:用户为有效用户的进程。
  6. -x:显示没有控制终端的进程。
  7. -p:随后可以指定进程ID,显示该ID的进程的状态。
  8. -T:显示各个线程的状态。
  9. -o:自定义输出格式。

因此,常见的几种 ps 组合参数包括(黑体加粗的是最常用):

  • ps -e:显示所有进程。
  • ps -ef:以全格式显示所有进程。
  • ps -aux:显示包括其他用户在内的所有进程,并包含每个进程的CPU使用率、内存使用率、启动时间等详细信息。
  • ps -l:长格式输出,包括进程状态、UID、GID等详细信息。
  • ps -p:查看指定PID的进程的状态。

[root@localhost ~]# ps aux 
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
============================================================================
USER: 	#运行进程的用户
PID:   #进程ID
%CPU:   #CPU占用率
%MEM:   #内存占用率
VSZ	    进程占用的虚拟内存大小。
RSS     占用的物理内存大小
STAT:  #进程状态  ---了解
?    表示没有占用终端
R 	运行
S 	可中断睡眠 Sleep
D	不可中断睡眠
T 	停止的进程 
Z 	僵尸进程
X    死掉的进程
START:	#进程的启动时间
TIME:	#进程占用CPU的总时间
COMMAND: #进程文件,进程名
[root@localhost ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
=============================================================
UID       用户ID
PID       进程ID
PPID      父进程ID
C         CPU占用率
STIME     开始时间
TTY       开始此进程的TTY----终端设备
TIME      此进程运行的总时间
CMD       命令名

进程状态 (了解)

R:运行(running)或可运行(runnable)(在运行队列中)
S:中断(interruptable sleep),等待某个条件结束
D:不可中断(uninterruptable sleep),通常是进行I/O操作
T:停止(stoppped),可能被作业控制或因为被追踪(traced)
Z:僵尸(zombie)状态,进程已经终止,但父进程尚未获取其终止状态
X:进程不存在
I:空闲(idle)状态
W:换页(paging )
<:高优先级(high-priority )
N:低优先级(low-priority)
L:内存泄漏(leaky:pages locked into memory)
s:进程领导者(session leader)
l:多线程(multi-threaded)
+:前台进程组(foreground process group)Sl:此进程是多线程的,通常表示它是一个服务进程
Ss:此进程是当前会话的领导者
R+:此进程处于前台进程组
S<:此进程的优先级较高
SN:此进程的优先级较低

TTY (拓展)

在Unix和Unix-like操作系统中,TTY是Teletypewriter的缩写,指的是终端。最早,TTY是指打字机式打印设备,是人类与计算机交互的最早设备。随着技术的进步,现在的终端设备已经从打字机式的设备发展为电子显示屏和键盘。

在Linux系统中,每一个登录的用户都会被分配一个终端(TTY)。这个终端可能是一个实体的控制台、或者是一个远程的终端、或者是伪终端(例如SSH进入系统得到的终端,或者是图形界面打开的终端模拟器所得到的终端)。

通过 who 命令查看当前系统中所有已登录用户使用的终端,也可以通过 tty 命令查看当前操作使用的是哪个终端,如果有多个终端连接系统,w命令可以显示全部并将当前终端用w标识。

[root@localhost ~]# w15:46:23 up  2:01,  1 user,  load average: 0.00, 0.01, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.226.1    13:45    7.00s  0.03s  0.00s w
[root@localhost ~]# who
root     pts/0        2024-04-28 13:45 (192.168.226.1)
[root@localhost ~]# tty
/dev/pts/0

查看进程PID

1. pgrep

pgrep 命令用于查找符合指定条件的进程,并将找到的进程的进程ID输出到标准输出。这个命令有很多选项,可以按名称、用户、进程组等条件搜索进程。pgrep命令更强大,可以通过进程名称、用户UID、终端等各种参数来匹配进程。

例如,pgrep sshd 命令会找到名为"sshd"的所有进程的PID。

[root@localhost ~]# pgrep sshd
889
1143
1150

2. pidof

pidof 命令用于查找具有特定名字的进程的进程ID,它是killallpkill命令的低级版本。

例如, pidof sshd 命令会找到名为"sshd"的进程的PID。

[root@localhost ~]# pidof sshd
1150 1143 889

  动态查看查看进程

[root@localhost ~]# top  #动态显示信息,三秒刷新一次。
或
[root@localhost ~]# yum install -y htop
[root@localhost ~]# htop  #top的升级版top和htop都是Linux系统中用于动态观察系统和进程状态的实用工具,但两者之间存在一些差异。
top:
top命令可以动态观察系统状态,包括查看CPU使用情况、内存使用情况、运行的进程等信息。top 是一个非常常用的命令,几乎所有的Linux发行版都会内置。它提供了实时的视图来显示正在运行的系统上哪些进程占用了最多的CPU。
htop:
htop 是 top 的一个增强版。与top相比,htop提供了一个颜色丰富,更易于阅读和理解的界面。除了可以显示基本的系统状态和进程信息,htop 还可以直接对进程进行管理,比如结束进程等。
在htop中,有一些额外的功能,例如:显示所有CPU的负载图。(在多核CPU中非常有用)更好的内存使用显示。滚动查看和管理所有进程。可以直接操作进程,例如结束进程,而无需知道进程ID。top - 19:46:13 up  6:01,  1 user,  load average: 0.00, 0.01, 0.04
Tasks: 107 total,   1 running, 104 sleeping,   2 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   995676 total,   521300 free,   164960 used,   309416 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   682392 avail Mem PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                                                           1 root      20   0  125512   4060   2620 S  0.0  0.4   0:00.79 systemd                                                                                                                           2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                                                                                                          4 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                                                                                                      6 root      20   0       0      0      0 S  0.0  0.0   0:00.11 ksoftirqd/0                                                                                                                       7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0                                                                                                                       8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh                                                                                                                            9 root      20   0       0      0      0 S  0.0  0.0   0:00.25 rcu_sched                                                                                                                         10 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 lru-add-drain                                                                                                                     11 root      rt   0       0      0      0 S  0.0  0.0   0:00.13 watchdog/0                                                                                                                        13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs                                                                                                                         14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns                                                                                                                             15 root      20   0       0      0      0 S  0.0  0.0   0:00.01 khungtaskd                                                                                                                        16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback                                                                                                                         17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd                                                                                                                       18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset                                                                                                                            us: 用户模式 (user time),花在用户模式进程上的CPU时钟时间百分比。
sy: 系统模式 (system time),花在内核模式进程上的CPU时钟时间百分比。
ni: 用户模式的 nice 权重(调整过优先级)的进程的CPU时钟时间百分比。
id: 空闲时间 (idle time),CPU空闲的时间百分比。
wa: I/O等待 (iowait),由于等待I/O操作(例如读写硬盘)而空闲的CPU时钟时间百分比。
hi: 硬中断时间 (hardware irq),处理硬中断请求(hardware IRQ)的CPU时钟时间百分比。
si: 软中断时间 (software irq),处理软中断请求(software IRQ)的CPU时钟时间百分比。
st: 用在虚拟机环境,表示被hypervisor偷走的时间。进程优先级 nice :
nice 值越高:表示优先级越低,例如+19,该进程容易将CPU 使用量让给其他进程。
nice 值越低:表示优先级越高,例如-20,该进程更不倾向于让出CPU。修改进程优先级(了解)
renice
-n:设置新的优先级值
-p:后接进程ID (PID)
-g:后接进程组 ID
-u:后接用户名或者用户ID
例:
#对 PID 为 1234 的进程设置新的 nice 值 10
renice -n 10 -p 1234
#将用户名为 'username' 所有进程的优先级都提高 5
renice -n -5 -u username
#对进程组ID为 456 的进程组设置新的 nice 值 5
renice -n 5 -g 456PID: Process ID,就是进程的ID号。
USER: 进程的拥有者。
PR: Priority,进程的优先级状态,越小越优先被执行。
NI: Nice value,一个值,用来设定进程被调度的优先级;
VIRT: Virtual Memory Usage,进程用掉的虚拟内存总量,包含了进程使用的库、代码、数据等。
RES: Resident Memory Usage,驻留内存大小,即进程使用的物理内存大小。
SHR: Shared Memory Size,共享内存大小,即该进程使用的可共享的内存大小。
S: 进程状态。包括:'D' 不可中断的睡眠状态,'R' 运行中,'S' 睡眠状态,'T' 被跟踪或已停止,'Z' 僵尸进程。
%CPU: 进程占用CPU的使用率。
%MEM: 进程使用的物理内存和总物理内存的百分比。
TIME+: 该进程启动后占用的总的CPU时间。
COMMAND: 进程启动命令名称。

top与htop的操作:

> 往下翻页
< 往上翻页
q 退出   
z 彩色显示
W 保存

排序:

在top运行时,你可以通过按相应的按键来改变进程列表的排序方式。比如以下几个常用的键:

P: 以CPU使用率排序。

M: 以内存使用率排序。

T: 以运行时间排序。

刷新频率:

默认情况下,top每3秒刷新一次。你可以通过按s键,然后输入一个新的数字来改变刷新的频率。例如,按s,然后输入1, top就会每秒刷新一次。

在工作中必须监控的东西 load average(平均负载)等待cpu处理的队列长度也是个数。
1分钟   第一个数字
5分钟   第二个数字
15分钟  第三个数字

计算cpu负载:

load average的三个值: 0.10, 0.16, 0.12,分别除cpu的个数,得出的值,如果值大于1那么那时候的负载高。

进程控制

kill与pkill

[root@localhost ~]# kill -l   #查看所有信号
#在显示的64个信号中,总结来讲只需要记住五个即可
-1   HUP  重新加载进程或者重新加载配置文件,PID不变   
-9   KILL 强制杀死
-15  TERM 正常杀死(这个信号可以默认不写)
-18  CONT 激活进程
-19  STOP 挂起进程例:
kill -1 59363  #发送重启信号,例如vsftpd的配置文件发生改变,希望重新加载
kill 59363 #正常杀死进程,信号为-15可以默认不写。
kill -9 67003  #强制杀死,一般用于不能正常停止的情况下
pkill -9 vsftpd  #使用pkill可以指定进程名字kill 和 pkill 的主要区别在于:
kill 需要明确的进程ID,而 pkill 可以通过进程的其他属性(如名字)来指定目标进程。pkill使用服务名的时候会杀死所有包含服务名的服务。

查看端口

1. netstat

使用前提是需要有net-tools包才可使用。

  • -a : 显示所有连接和侦听端口。

  • -n : 显示数字格式的地址和端口号,而不是尝试查找并显示名称。

  • -t : 显示TCP连接。

  • -u : 显示UDP连接。

  • -l : 仅显示在侦听状态的套接字(即正在等待连接的服务器端的套接字)

  • -p : 显示与套接字关联的进程ID和名称。

  • -r : 显示路由表。

  • -i : 显示网络接口信息。

  • -e : 参数可以显示更多关于网络接口的详细信息

  • -s : 显示网络统计信息,如IP, TCP, UDP等协议的统计信息。

例:可以将多个参数一起使用如果你想看所有的TCP连接,并且你希望看到数字格式的地址和端口号,你可以使用

netstat -nt

如果你想知道哪个进程正在使用某个端口,你可以使用

netstat -anp

如果你想要同时查看TCP和UDP连接,你可以使用 

netstat -tu

2. ss

ss的参数一样可用netstat的参数使用。ss -tnlp 常用组合命令

例:

显示所有打开的网络连接:

ss

如果你想看到数字形式的端口和地址,而不是尝试获取名称,你可以使用-n参数:

ss -tun

 显示系统中所有监听的 TCP 套接字以及关联的进程信息

ss -tnlp

3. lsof

前提需要有lsof包才可使用。

  • -a:该参数用于连接参数和表达式条件,可以理解为“与”的逻辑。
  • -c:后接进程名,表示列出该进程所打开的文件。
  • -p:后接进程ID,表示列出该进程ID所打开的文件。
  • -u:后接用户名,表示列出该用户进程打开的文件。
  • -i:该参数后面可以跟网络协议(如 TCP 或 UDP)、端口号等,用来显示网络连接情况。
  • -d:后接文件描述符,用于显示该描述符的进程。
  • -n:此参数让 lsof 显示网络连接的数字IP地址。
  • -P:此参数让 lsof 显示数字形式的端口号。
  • -t:此参数让 lsof 仅打印进程 ID ,常用于 shell 脚本。

例:

查看用户 nginx 打开的所有文件:

lsof -u nginx

列出 PID 为 123 的进程所有打开的文件:

lsof -p 123

列出所有监听 TCP 或 UDP 端口的进程:

lsof -i tcp,udp

列出所有由 root 打开的网络连接:

lsof -u root -i 

列出所有80端口的HTTP连接:

lsof -i tcp:80

列出所有端口为22的网络连接:

lsof -i :22

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

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

相关文章

Linxu系统服务管理,systemd知识/进程优先级/平均负载/php进程CPU100%怎么解决系列知识!

shell脚本&#xff08;命令&#xff09;放后台 sleep 300& 放到后台运行&#xff0c;脚本或命令要全路径 nohup&#xff1a;用户推出系统进程继续工作 【功能说明】 nohup 命令可以将程序以忽略挂起信号的方式运行起来&#xff0c;被运行程序的输出信息将不会显示到终端 如…

小程序的合同是怎么样写的

​很多商家找第三方做小程序都遭遇到了各种问题&#xff0c;如访问速度慢、服务器关闭、反复收费等。如果当初商家找的是正规的第三方服务商&#xff0c;双方签订了明确的合同条款&#xff0c;出现任何问题后&#xff0c;相信都能够进行解决。下面将具体介绍合同内容&#xff0…

数据结构之顺序表的基本操作

搭配食用更佳哦~~ 数据结构之顺顺顺——顺序表-CSDN博客 1.定义一个动态顺序表 创建一个头文件 SeqList.h&#xff0c;进行准备工作 #pragma once #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<assert.h> #include&q…

大田场景下的路径检测论文汇总

文章目录 2020Visual Servoing-based Navigation for Monitoring Row-Crop Fields 2020 Visual Servoing-based Navigation for Monitoring Row-Crop Fields code: https://github.com/PRBonn/visual-crop-row-navigation 摘要&#xff1a; 自主导航是野外机器人执行精确农业…

ElasticSearch自动补全

一、拼音分词器&#xff1a; 当用户在搜索框输入字符时&#xff0c;我们应该提示出与该字符有关的搜索项&#xff0c;如图&#xff1a; 这种根据用户输入的字母&#xff0c;提示完整词条的功能&#xff0c;就是自动补全了。 GET /_analyze {"text":"我爱螺蛳粉…

opencv图片绘制图形-------c++

绘制图形 #include <opencv2/opencv.hpp> #include <opencv2/core.hpp> #include <filesystem>bool opencvTool::drawPolygon(std::string image_p, std::vector<cv::Point> points) {cv::Mat ima cv::imread(image_p.c_str()); // 读取图像&#xf…

【ARMv9 DSU-120 系列 3 -- DSU-120 系统控制寄存器】

请阅读【Arm DynamIQ™ Shared Unit-120 专栏 】 文章目录 DSU-120 系统控制寄存器系统控制寄存器的访问方式Cluster 通用系统控制寄存器寄存器重置值Generic System Control registers summaryCluster Configuration RegisterDSU-120 系统控制寄存器 在ARMv9架构中,DSU-120(…

制造业智慧工厂

在信息化、智能化浪潮的推动下&#xff0c;制造业正迎来一场前所未有的变革。智慧工厂&#xff0c;作为这一变革的核心载体&#xff0c;正逐渐成为制造业发展的新引擎。HiWoo Cloud平台&#xff0c;以其卓越的物联网云技术&#xff0c;为制造业智慧工厂的构建提供了强有力的支持…

Linux逻辑方式合并物理磁盘

在日常生活中&#xff0c;我们总是遇到一个文件太大&#xff0c;以至于我们的两个磁盘都装不下&#xff0c;这时我们就需要将两块物理磁盘逻辑化的连接在一起&#xff0c;把物理磁盘使用逻辑化的方法合并在一起&#xff0c;形成卷组&#xff0c;使得磁盘空间可以公用&#xff1…

【 AIGC 研究最新方向(上)】面向平面、视觉、时尚设计的高可用 AIGC 研究方向总结

目前面向平面、视觉、时尚等设计领域的高可用 AIGC 方向有以下 4 种&#xff1a; 透明图层生成可控生成图像定制化SVG 生成 本篇&#xff08;上篇&#xff09;介绍 1、2&#xff0c;而下篇将介绍 3、4。 透明图层生成 LayerDiffuse 代表性论文&#xff1a;Transparent Imag…

请编写函数fun,该函数的功能是:实现B=A+A‘,即把矩阵A加上A的转置,存放在矩阵B中。计算结果在main函数中输出。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法完整代码和详细的解析。 题干 请编…

redis基础(一)

启动与关闭 启动命令在/usr/local/bin目录 服务端后台启动&#xff1a;redis-server opt/redis-6.2.1/redis.conf 客户端连接&#xff1a;执行 redis-cli 关闭操作 ​ 方式1&#xff1a;进入终端后关闭 ​ 方式2&#xff1a;直接kill 掉进程 方式3&#xff1a;通过实例关闭 …

【力扣周赛】第394场周赛

文章目录 1.统计特殊字母的数量2.使矩阵满足条件的最少操作次数 1.统计特殊字母的数量 题目链接 &#x1f34e;该题涉及的小技巧&#xff1a;&#x1f425; &#x1f427;①大写字母和对应的小写字母低5位都是相等的&#xff1b; &#x1f427;②大写字母ASCII二进制第 6 位…

应用实战|只需几步,即可享有外卖订餐小程序

本示例是一个简单的外卖查看店铺点菜的外卖微信小程序&#xff0c;小程序后端服务使用了MemFire Cloud&#xff0c;其中使用到的MemFire Cloud功能包括&#xff1a; 其中使用到的MemFire Cloud功能包括&#xff1a; 云数据库&#xff1a;存储外卖微信小程序所有数据表的信息。…

实时采集麦克风并播放(springboot+webscoekt+webrtc)

项目技术 springbootwebscoektwebrtc 项目介绍 项目通过前端webrtc采集麦克风声音&#xff0c;通过websocket发送后台&#xff0c;然后处理成g711-alaw字节数据发生给广播UDP并播放。 后台处理项目使用线程池(5个线程)接受webrtc数据并处理g711-alaw字节数组放到Map容器中&…

AIGC技术的探讨

一、简介 AIGC&#xff08;人工智能生成内容&#xff09;技术是利用人工智能自动生产内容的一种方式&#xff0c;它在多个领域中的应用不断扩展&#xff0c;同时也带来了伦理和风险问题的考量。 二、技术应用 AIGC技术在各个领域的应用情况广泛&#xff0c;从文本生成到图像…

PotatoPie 4.0 实验教程(26) —— FPGA实现摄像头图像拉普拉斯锐化

为什么要对图像进行拉普拉斯锐化 对图像进行拉普拉斯锐化的目的是增强图像的边缘和细节&#xff0c;使图像看起来更加清晰和锐利。这种技术常用于图像处理中&#xff0c;具体原因如下&#xff1a; 增强图像的边缘信息&#xff1a;拉普拉斯锐化可以突出图像中的边缘特征&#x…

FPGA中乘除法运算实现途径

主要介绍在FPGA中实现乘除法的方式 准则 虽然verilog中可以直接写* 或者/来表示乘除&#xff0c;但建议不要这样使用。如果是一个比较简单的话&#xff0c;还可以勉强使用。但遇到浮点之类的&#xff0c;肯定不可以了 。 具体官方给出了三种方式&#xff1a; 1.采用左移或右移…

程序不包含适用于入口点的静态Main方法

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…

西湖大学赵世钰老师【强化学习的数学原理】学习笔记1节

强化学习的数学原理是由西湖大学赵世钰老师带来的关于RL理论方面的详细课程&#xff0c;本课程深入浅出地介绍了RL的基础原理&#xff0c;前置技能只需要基础的编程能力、概率论以及一部分的高等数学&#xff0c;你听完之后会在大脑里面清晰的勾勒出RL公式推导链条中的每一个部…