查看程序 - 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
:显示使用fd
为4
的进程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
查看进程完整信息
通过ps
及top
命令查看进程信息时,只能查到相对路径,查不到的进程的详细信息,如绝对路径等。
Linux
在启动一个进程时,系统会在/proc
下创建一个以PID
命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为exe
的文件即记录了绝对路径,通过ll
或ls –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
,比如下图中所示的PID
是21048
- 输入
tasklist | findstr "21048"
。下图中可以看到,占用3001
端口的是node
进程
- 也可以使用任务管理器查看。找到对应
PID
的进程
发表评论