Linux下查看某程序或端口

查看程序 - ps

ps参数如下:

  • -a:与任何用户标识和终端相关的进程
  • -e:所有进程(包括守护进程)
  • -p pid:与指定PID相关的进程
  • -u userid:与指定用户标识userid相关的进程
  • -ef:显示所有用户进程,完整输出
  • -a:显示所有非守护进程
  • -t:仅显示所有守护进程
# 显示所有当前进程 # -a 代表 all,同时加上x参数会显示没有控制终端的进程。 ps -ax # less便于查看 ps -ax | less # 列出目前所有的正在内存当中的程序 ps aux # 要查看用户'webadmin'的进程 ps -u webadmin # 查看所有关于java的进程 ps -ef | grep java

查看端口 - lsof

列出当前系统打开文件的工具

lsof常用命令:

  • lsof -i:8080:查看8080端口占用
  • lsof abc.txt:显示开启文件abc.txt的进程
  • lsof -c abc:显示abc进程现在打开的文件
  • lsof -c -p 1234:列出进程号为1234的进程所打开的文件
  • lsof -g gid:显示归属gid的进程情况
  • lsof +d /usr/local/:显示目录下被进程开启的文件
  • lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
  • lsof -d 4:显示使用fd4的进程
  • lsof -i -U:显示所有打开的端口和UNIX domain文件
# 查看8000端口占用情况 lsof -i:8000

查看端口 - netstat

netstat参数

  • -t(tcp) 仅显示tcp相关选项
  • -u(udp)仅显示udp相关选项
  • -n:拒绝显示别名,能显示数字的全部转化为数字
  • -l:仅列出在Listen(监听)的服务状态
  • -p:显示建立相关链接的程序名

netstat常用命令:

  • netstat -ntlp:查看当前所有tcp端口
  • netstat -ntulp | grep 80:查看所有80端口使用情况
  • netstat -ntulp | grep 3306:查看所有3306端口使用情况
# 查看8000端口占用情况 netstat -tunlp | grep 8000

查看进程完整信息

通过pstop命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等。

Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe的文件即记录了绝对路径,通过llls –l命令即可查看。

# 查看pid为12345的进程详细信息 ll /proc/12345

结果中常用的几个字段介绍:

  • cwd:进程运行目录;
  • exe:执行程序的绝对路径;
  • cmdline:程序运行时输入的命令行命令;
  • environ:进程运行时的环境变量;
  • fd:目录下是进程打开或使用的文件的符号连接。

杀进程 - kill

可以使用kill命令杀掉PID对应的进程

# 杀掉PID为12345的进程 kill -9 12345

扩展:window下查看端口

  • 打开cmd

  • 输入netstat -ano | findstr "3001"。输出的结果中最后一列是PID,比如下图中所示的PID21048

netstat -ano

  • 输入tasklist | findstr "21048"。下图中可以看到,占用3001端口的是node进程

tasklist

  • 也可以使用任务管理器查看。找到对应PID的进程

任务管理器


创作不易,若本文对你有帮助,欢迎打赏支持作者!

 分享给好友: