MacBook/MacOS/Mac OS 查看进程/端口信息的相关命令

文章目录

  • 使用命令 lsof 查看某个端口的使用情况
  • 使用命令 netstat 查看某个端口的使用情况
  • 使用命令 ps 查看指定进程的信息
    • (一)命令:ps auwx | grep sshd
    • (二)命令:ps -ef | grep ssh
    • (三)命令:ps -Al | grep ssh
  • 使用命令 top 实时显示进程状态
  • 使用命令 kill 杀掉进程
  • 启动/停止/重启进程

使用命令 lsof 查看某个端口的使用情况

[~]$ sudo lsof -P -i tcp:8080
COMMAND  PID         USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
java    3933 liaowenxiong   50u  IPv6 0x72b25e6efd433f4b      0t0  TCP *:8080 (LISTEN)[~]$ sudo lsof -P -i:8080 # 
COMMAND  PID         USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
java    3933 liaowenxiong   50u  IPv6 0x72b25e6efd433f4b      0t0  TCP *:8080 (LISTEN)

选项说明:
sudo 表示以 root 的权限执行
-i 表示列出符合条件的且与网络相关的进程
-P 表示不解析端口号,直接显示端口号,而不是显示端口名称

字段说明:

字段名称说明
COMMAND使用端口的进程的名称,默认以 9 个字符长度显示的命令名称。可使用 +c 参数指定显示的宽度,若 +c 后跟的参数为零,则显示命令的全名。这个 +c 参数好像无效
PID进程标识符
PPID父进程标识符,父进程的IP号,默认不显示,当使用 -R 参数可打开。
USER进程所有者,命令的执行 UID 或系统中登陆的用户名称。默认显示为用户名,当使用 -l 参数时,可显示 UID。
PGID进程所属组标识符,进程组的ID 编号,默认也不会显示,当使用 -g 参数时可打开。
FDFile Descriptor Number,文件描述符,应用程序通过文件描述符识别文件,例如:cwd、txt 等
TYPE文件类型,例如: DIR、REG 等
DEVICE指定磁盘的名称,以逗号分隔设备编号,使用character special、block special表示的设备号
SIZE文件的大小,如果不能用大小表示的,会留空。使用-s参数控制。
NODE索引节点(文件在磁盘上的标识),本地文件的node码,或者协议,如TCP等
NAME打开文件的确切名称,挂载点和文件的全路径(链接会被解析为实际路径),或者连接双方的地址和端口、状态等
LISTEN代表该进程正处于监听状态,即该进程处于活跃中

关于命令 lsof 的用法说明,请点击查看文章《Linux 命令之 lsof – 列出当前系统已打开的文件列表》

使用命令 netstat 查看某个端口的使用情况

[~]$ netstat -nat | grep 8080
Proto Recv-Q  Send-Q Local Address         Foreign Address         State
tcp46      0      0  *.8080                 *.*                    LISTEN [~]$ netstat -anp tcp | grep 8080
tcp46      0      0  *.8080                 *.*                    LISTEN   [~]$ netstat -AaLlnW                
Current listen queue sizes (qlen/incqlen/maxqlen)
Socket           Flowhash Listen         Local Address                          
72b25e6ee785488b        0 0/0/128        *.56530                                       
72b25e6ef1269023        0 0/0/128        *.56530                                       
72b25e6ee7852d0b        0 0/0/1          127.0.0.1.8005                                
72b25e6efd433f4b        0 0/0/100        *.8080                                                                                   

选项说明:

-a 显示所有连线中的 Socket 的状态
-n 直接使用 ip 地址,而不通过域名服务器
-t 显示 TCP 传输协议的连线状况
-p 显示正在使用 Socket 的程序识别码和程序名称
-A 默认显示时,显示与套接字关联的任何协议控制块的地址和流散列;用于调试。
-L 显示各种侦听队列的大小。第一个计数显示不可接受的连接数。第二个计数显示不可接受的不完整连接的数量。第三个计数是排队连接的最大数量。
-l 打印完整的IPv6地址。
-n 将网络地址显示为数字(通常netstat解释地址并尝试以符号方式显示它们)。此选项可用于任何显示格式。
-W 在某些显示中,避免截断地址,即使这会导致某些字段溢出。

列说明:

Proto 连接使用的协议
Recv-QSend-Q 指接收队列和发送队列,这些数字一般都应该是 0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。
Local Address 本地机器名和本地打开并用于连接的端口
Foreign Address 远程机器名和端口
State 显示套接口当前的状态。

状态说明
LISTEN侦听来自远方的TCP端口的连接请求
SYN-SENT再发送连接请求后等待匹配的连接请求(如果有大量这样的状态包,检查是否中招了)
SYN-RECEIVED再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood攻击了)
ESTABLISHED代表一个打开的连接
FIN-WAIT-1等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2从远程TCP等待连接中断请求
CLOSE-WAIT等待从本地用户发来的连接中断请求
CLOSING等待远程TCP对连接中断的确认
LAST-ACK等待原来的发向远程TCP的连接中断请求的确认(不是什么好东西,此项出现,检查是否被攻击)
TIME-WAIT等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED没有任何连接状态

使用命令 ps 查看指定进程的信息

(一)命令:ps auwx | grep sshd

查看 sshd 相关的进程:

liaowenongdeair:etc root# ps auwx|grep sshd
root              1987   1.0  0.0  4285816    724 s000  S+    2:37下午   0:00.00 grep sshdliaowenongdeair:etc root# ps auwx|grep ssh
root              2158   0.0  0.0  4259000    228 s000  R+    3:30下午   0:00.00 grep ssh
root              1982   0.0  0.0  4280264    192   ??  Ss    2:35下午   0:00.00 ssh-agent
liaowenxiong       934   0.0  0.0  4289736   1336   ??  S     8:49上午   0:00.04 /usr/bin/ssh-agent -l

从结果来看,根本查找不到 sshd 进程。

命令说明:

  1. a 显示现行终端机下的所有程序,包括其他用户的程序
  2. u 以用户为主的格式来显示程序状况
  3. w 采用宽阔的格式来显示程序状况
  4. x 显示所有程序,不以终端机来区分

结果说明:
第 1 列:进程所属用户,列名:USER,-- root
第 2 列:进程号,列名:PID,-- 1987
第 3 列:使用掉的 CPU 资源百分比,列名:%CPU,-- 1.0
第 4 列:所占用的物理内存百分比,列名:%MEM,-- 0.0
第 5 列:使用掉的虚拟内存量,列名:VSZ,-- 4285816
第 6 列:固定占用的内存量,列名:RSS,-- 724
第 7 列:登陆者的终端机位置,列名:TTY,-- s000
第 8 列:进程目前的状态,列名:STAT,-- S+,后面的加号 + 说明进程是“在前台进程组”,也就是进程可以使用键盘输出
第 9 列:进程被触发启动的时间,列名:START,-- 2:37下午
第 10 列:进程实际使用 CPU 运作的时间,列名:TIME,-- 0:00.00
第 11 列:该进程实际的命令,列名:COMMAND,-- grep sshd

liaowenxiongdeMacBook-Air:~ liaowenxiong$ ps -ef | grep ssh501   934     1   0 六08上午 ??         0:00.05 /usr/bin/ssh-agent -l0  1982     1   0 六02下午 ??         0:00.00 ssh-agent501 22930 22923   0 四03下午 ttys000    0:01.99 ssh root@47.114.59.224501 27379 27219   0  5:47下午 ttys001    0:00.00 grep ssh

(二)命令:ps -ef | grep ssh

查看 ssh 相关的进程:

liaowenongdeair:etc root# ps -ef|grep ssh501   934     1   0  8:49上午 ??         0:00.04 /usr/bin/ssh-agent -l0  1982     1   0  2:35下午 ??         0:00.00 ssh-agent

命令说明:

  1. -e 显示所有进程
  2. -f 显示 uid,ppip,cstime 栏位

结果说明:
第 1 列:进程所属用户的 ID,列名:UID
第 2 列:进程 ID,列名:PID
第 3 列:父进程的 ID,列名:PPID
第 4 列:CPU 资源使用百分比,列名:C
第 5 列:进程被触发启动的时间,列名:STIME
第 6 列:启动进程的终端机位置,列名:TTY,? 表示与终端机无关
第 7 列:实际使用 CPU 运作的时间,单位秒,列明:TIME
第 8 列:进程的命令,列名:COMMAND

(三)命令:ps -Al | grep ssh

查看与 ssh 相关的进程的详细信息:

liaowenongdeair:bin root# ps -Al | grep ssh501   934     1     4144   0  20  0  4289736    948 -      S                   0 ??         0:00.04 /usr/bin/ssh-agent -l0  1982     1       44   0  31  0  4280264    160 -      Ss                  0 ??         0:00.00 ssh-agent0 15372  1638     4006   0  31  0  4268408    684 -      S+                  0 ttys000    0:00.00 grep ssh501  9961  6327     4006   0  31  0  4298388   1904 -      S+                  0 ttys001    0:02.80 ssh root@47.114.59.224

说明:

  1. -l 采用详细的格式来显示程序状况
  2. -A 显示所有程序,和选项 -e 相同

预知更多关于命令 ps 的使用介绍,请点击查看文章《Linux 命令之 ps – 显示进程状态》

疑问:在 MacOS 下使用命令 ps,根本无法得知进程是否启动,因为看不到相关进程的信息。奇怪!!!

使用命令 top 实时显示进程状态

使用命令 top 可以查看所有进程的实时状态,关于命令 top 的用法说明,请点击查看文章《Linux 命令之 top 命令-实时显示进程动态》

关于排序:

先输入 o,然后输入 cpu 则按 cpu 使用量排序,输入 rsize 则按内存使用量排序。

使用命令 kill 杀掉进程

liaowenxiongdeMacBook-Air:~ liaowenxiong$ sudo kill -9 PID

说明:-9 表示强制杀掉进程

关于命令 kill 的用法说明,请点击查看文章《Linux 命令之 kill – 杀死进程》

启动/停止/重启进程

请查看文章《MacOS 关于启动/停止/重启进程的命令》

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

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

相关文章

mfc 弹簧_弹簧和线程:异步

mfc 弹簧以前,我们开始使用spring和TaskExecutor ,因此我们对如何在spring应用程序中使用线程更加熟悉。 但是,使用任务执行程序可能比较麻烦,尤其是当我们需要执行简单的操作时。 Spring的异步方法可以解决。 您不必为可运行对…

g30u盘启动 中科曙光1620_I620-G30

请选择国家/地区Afghanistan (93)Albania (355)Algeria (213)Andorra (376)Angola (244)Antigua and Barbuda (1268)Argentina (54)Armenia (374)Australia (61)Austria (43)Azerbaijan (994)Bahamas (1242)Bahrain (973)Bangladesh (880)Belarus (375)Belgium (32)Belize (501…

局域网限速软件_8款Windows实用软件推荐,纯干货,总有一款是你必备的

开学后,有些小伙伴得走进大学校门,有些小伙伴走向公司大门,不管你做出了哪种选择,最终都会走向社会,走向岗位。我已经毕业走向社会近10年了,珍藏了一些小视频,呃说错了,是珍藏了一些…

MySQL 插入数据时,中文乱码问题的解决

当向 MySQL 数据库插入一条带有中文的数据如下: insert into employee values(null,张三,female,1995-10-08,2015-11-12,Sales,2000,是个好员工!); 出现乱码时,可以使用语句 show variables like character%; 来查看当前数据库的字符编码集…

javaserver_什么是JavaServer Faces(JSF)

javaserver这是一个分为两部分的系列,其中我介绍了JSF 2及其如何适合Java EE生态系统。 在第1部分中,我将介绍JavaServer Pages(JSF)背后的基本思想 ,在第2部分中,我将介绍Facelets声明语言 。 在构建Web…

安装计算机一级出现appcrash,win10系统运行程序出现appcrash错误的办法

win10系统使用久了,好多网友反馈说win10系统运行程序出现appcrash错误的问题,非常不方便。有什么办法可以永久解决win10系统运行程序出现appcrash错误的问题,面对win10系统运行程序出现appcrash错误的图文步骤非常简单,只需要1、同…

winpe镜像文件iso下载_下载:微软正式发布Win10 2004版并即日起开始推送

PS:关于Windows 10 v2004版蓝点网早前已建立专题,目前该专题已收录关于该版本的101篇文章,微信篇幅有限无法全部发过来,准备升级的用户建议点击阅读原文按钮或使用电脑访问蓝点网首页查看Windows 10 v2004专题。刚刚微软在官方博客…

Linux 命令之 cat -- 在终端设备上显示文件内容(查看文件内容/浏览文件内容)

文章目录一、命令介绍二、命令选项三、参考示例(一)查看文件的内容,并显示行数编号(二)把 test4.txt 的内容加上行号后输出到 test3.txt 这个文档里(三)清空 test4.txt 的内容(四&am…

少儿计算机兴趣小组活动记录,2013年度儿童画兴趣小组活动记录Word编辑

《2013年度儿童画兴趣小组活动记录Word编辑》由会员分享,可在线阅读,更多相关《2013年度儿童画兴趣小组活动记录Word编辑(16页珍藏版)》请在人人文库网上搜索。1、传播优秀Word版文档 ,希望对您有帮助,可双击去除!岑兜…

java变量_Java变量

java变量变数 变量是Java程序中基本的存储单元。 变量由标识符,类型和可选的初始化程序的组合定义。 此外,所有变量都有一个范围,该范围定义了它们的可见性和生存期。 接下来将检查这些元素。 声明变量 在Java中,必须先声明所有变…

iphone固件降级_我在iPhone上装了个安卓

目前使用Android系统设备的好处就是可以执行更多的操作。主要是因为安卓拥有自己的开源计划AOSP(Android Open Source Project),比iOS开放了更多的应用接口API,商家可以用Android源码进行二次开发,相对iOS开放很多。图片来自百度iPhone跟Andr…

c# char unsigned_c – unsigned char和char指针之间的区别

我对unsigned char(在WinAPI中也是BYTE)和char指针之间的差异感到困惑.目前我正在使用一些基于ATL的遗留代码,我看到很多表达式如下:CAtlArray rawContent;CALL_THE_FUNCTION_WHICH_FILLS_RAW_CONTENT(rawContent);return ArrayToUnicodeString(rawContent);// or r…

名词解释多媒体计算机,多媒体-名词解释及填空

上传的两个关于多媒体技术的文档是本人提取教材中的部分,用于考试复习所用。因为在网上甚少找到此类信息,仅供大家参考。◆多媒体:指信息表示媒体的多样化,常见的多媒体有文本、图形、图形、声音、音乐、视频、动画等多种形式。◆多媒体技术:…

jshell_五分钟的JShell

jshell这篇文章建立在我的My Java 9顶级功能文章的基础上,通过对这些功能的深入研究。 在这里,我们向您展示如何在五分钟内学习jshell并改善Java 9开发经验。 入门 假设您已经下载并安装了Java 9,则可以通过键入以下内容启动Shell&#xff1…

极速pdf编辑器的水印如何去掉_如何修改PDF?有没有详细的PDF编辑器操作方法?...

在工作中我们每天都会处理很多文件,而PDF格式因为其格式稳定也被越来越多的人接受并使用,但也正因为如此,PDF的修改相比较以前常用的Word会复杂很多。那么应该如何修改PDF呢?其实使用PDF编辑器就能让PDF文档像Word一样轻松编辑。1…

python django开发网站项目难吗_用django开发网站时遇到的问题

1.网站的登录功能怎么实现:密码的存储机制、重置密码时链接的生成算法,第三方认证的原理等等。django的密码储存是 Hashsalt 并迭代 第三方认证是用oauth2django-admin里面有写了哦 循环1000次加密算法google关键词 hash salt,oauth22.介绍设…

查看 Linux 系统版本(发行版本)信息的相关命令语句

文章目录一、查看 version 文件二、只查看内核版本号三、查看系统内核版本信息四、查看系统基础版本及发行版本信息五、仅查看发行版本信息一、查看 version 文件 [roothtlwk0001host ~]# cat /proc/version Linux version 4.18.0-193.6.3.el8_2.x86_64 (mockbuildkbuilder.bs…

计算机网络专科升本科,目前专科升本科有哪几种途径?

原标题:目前专科升本科有哪几种途径?随着社会的高速发展,只有专科学历是远远不够自身发展需求的。于是有不少同学就想专科升本科学历来提高自己的职业竞争力,但他们对于目前专科升本科的几种途径还不够了解。那么,目前…

java私有属性和私有方法_Java 9中什么是私有的?

java私有属性和私有方法在进行面试时,我发现大多数应聘者都不知道Java中的private修饰符真正意味着什么。 他们对此有所了解,足以应付日常编码,但还远远不够。 这不成问题。 足够了解就足够了。 但是,了解Java的一些内部工作仍然很…

stata F值缺失_stata面板数据回归操作之GMM

新手面板数据回归之GMM 的 stata 操作步骤广义矩估计( Generalized Method of Moments 即 GMM ) 原理就是回归!就是一种高级点的回归!我也是新手,也有很多不太懂的地方。断断续续学习了两个月,看了很多文献…