栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Linux工作中常用的命令netstat、lsof、ps区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux工作中常用的命令netstat、lsof、ps区别

文章目录
  • netstat(端口占用查看)
  • lsof命令(文件查看)
  • ps命令(进程查看)
  • 举例

ps------- lsof------netstat
强大,强大,都强大!总之查看进程、进程号、端口号是否存在,这三个命令都可以实现,用哪个随你
ps -ef|grep java (进程名)
ps -ef|grep 8080 (端口号)
ps -ef|grep 2556 (进程号)

lsof -i:8080(只能查端口号)

netstat -apn|grep 9090 (端口号占用查看)

netstat(端口占用查看)

查看系统端口使用情况
netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知目前都有哪些网络连接正在运作!

Proto:协议名(tcp协议还是udp协议)
recv-Q:网络接收队列
表示收到的数据已经在本地接收缓冲,但是还有多少没有被进程取走
send-Q:网路发送队列
对方没有收到的数据或者说没有Ack的,还是本地缓冲区.
Local Address 部分的0.0.0.0:22 表示监听服务器上所有ip地址的所有(0.0.0.0表示本地所有ip),比如你的服务器是有172.172.230.210和
172.172.230.11两个ip地址,那么0.0.0.0:22此时表示监听172.172.230.210,172.172.230.211,127.0.0.1三个地址的22端口
Foreign Address与本机端口通信的外部socket。显示规则与Local Address相同
State链路状态,共有11种state列共有12中可能的状态,前面11种是按照TCP连接建立的三次握手和TCP连接断开的四次挥手过程来描述的。
PID/Program PID即进程id,Program即使用该socket的应用程序

lsof命令(文件查看)

用于查看你进程打开的文件,打开文件的进程,进程使用的端口号(TCP、UDP)。找回/恢复删除的文件。是十分方便的系统监视工具,因为 lsof 需要访问核心内存和各种文件,所以需要root用户执行。
lsof -i:9090 -i:后面只可以跟端口号-------显示所有占用9090端口的进程
lsof -p 8080 -p后面跟进程号-------显示那些文件被pid为8080的进程打开过 (一般不用,因为太多文件被使用某端口号开放的服务打开过…例如你Java程序开放的端口访问过的文件,数不胜数)

ps命令(进程查看)

ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令
ps -ef //显示所有命令,连带命令行

UID :程序被该 UID 所拥有

PID :就是这个程序的 ID (一般看它)

PPID :则是其上级父程序的ID

C :CPU使用的资源百分比

STIME :系统启动时间

TTY :登入者的终端机位置

TIME :使用掉的CPU时间。

CMD :所下达的是什么指令

ps -ef |grep java //检查java 进程是否存在 (经常用的命令,grep后可以跟端口号,进程号(PID),还可以跟服务名(java))


解释: | 是管道命令 ,是指 ps命令与grep同时执行
grep是查找命令,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

举例

1.以查redis为例:其监听端口为6379:
ps:

netstat:


lsof:

2.实战应用:公司内部的一个老服务运行在192.168.1.1:50060上,服务将于一周之后停用,再在要查一下本机上有没有进行在调用该服务。
使用命令netstat -pt可以输出PID及程序名:

Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 localhostname:16061 192.168.1.1:50060 ESTABLISHED 22000/java

是本机的16061端口在调192.168.1.1:50060上的服务,且本机16061端口上跑的是一个java程序,进程ID是22000

lsof -i:@192.168.1.1:50060,输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 22000 root 106u IPv4 1592198833 0t0 TCP localhostname:16061->192.168.1.1:50060 (ESTABLISHED)
FD表示文件描述符,应用程序通过文件描述符来识别文件,文件描述符后有u表示程序是以读写的权限打开文件的(r只读w只写)
ps -ef | grep 22000

输出:
UID PID PPID C STIME TTY TIME CMD
在CMD列你可以看到程序名
或者用ps aux | grep 22000
输出:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
aux比-ef输出的信息更多,比如%CPU和%MEM。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/434314.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号