Maison  >  Article  >  Opération et maintenance  >  Une brève analyse de la vérification de l'occupation et de la suppression des ports dans Wind et Linux (avec code)

Une brève analyse de la vérification de l'occupation et de la suppression des ports dans Wind et Linux (avec code)

奋力向前
奋力向前avant
2021-09-03 09:46:094296parcourir

Dans l'article précédent "Un article expliquant les commandes de terminal courantes sous MacOS (avec code)", je vous ai donné un article expliquant les commandes de terminal courantes sous MacOS. L'article suivant vous apprendra comment vérifier l'occupation et la suppression des ports dans Wind et Linux. Voyons comment procéder.

Une brève analyse de la vérification de l'occupation et de la suppression des ports dans Wind et Linux (avec code)

Occupation du port et Kill (Fenêtre et Linux)

Windows utilise

netstat dans windowwindow中的netstat

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

  • -n 以数字形式显示地址和端口号。

  • -o 显示拥有的与每个连接关联的进程ID

查看所有端口占用情况

netstat  -ano

查看被占用端口3306对应的PID

netstat -ano | findstr 3306

查看指定端口3306的PID进程

tasklist | findstr 3306

结束进程

强制(/F参数)杀死 pid 为 12345 的所有进程包括子进程(/T参数): 

taskkill /T /F /PID 12345

Linux使用

使用netstat命令

-t (tcp)仅显示tcp相关选项

-u (ucp)仅显示ucp相关选项-n拒绝显示别名,能显示数字的全转成数字

-l 仅列出有在Listen(监听)的服务状态

-p 显示建立相关链接的程序名

看当前所有已经使用的端口情况

netstat   -nultp

查看某个端口使用情况

netstat   -anp |grep 3306

使用lsof命令

  • 默认 : 没有选项,lsof列出活跃进程的所有打开文件

  • 组合 : 可以将选项组合到一起,如-abc,但要当心哪些选项需要参数

  • -a : 结果进行“与”运算(而不是“或”)

  • -l : 在输出显示用户ID而不是用户名

  • -h : 获得帮助

  • -t : 仅获取进程ID

  • -U : 获取UNIX套接口地址

  • -F : 格式化输出结果,用于其它命令。可以通过多种方式格式化,如-F pcfn(用于进程id、命令名、文件描述符、文件名,并以空终止)

lsof -i:3306

常用

  • lsof abc.txt 显示开启文件abc.txt的进程

  • lsof -i :22 知道22端口现在运行什么程序

  • lsof -c abc 显示abc进程现在打开的文件

  • lsof -g gid 显示归属gid的进程情况

  • lsof +d /usr/local/ 显示目录下被进程开启的文件

  • lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长

  • lsof -d 4 显示使用fd4的进程

  • lsof -i 用以显示符合条件的进程情况

  • lsof -p 12 看进程号为12的进程打开了哪些文件

  • lsof +|-r [t] 控制lsof不断重复执行,缺省是15s刷新

  • lsof -r,lsof会永远不断的执行,直到收到中断信号

  • lsof +r,lsof会一直执行,直到没有档案被显示

  • lsof -s 列出打开文件的大小,如果没有大小,则留下空白

  • lsof -u username UID,列出打开的文件

使用ps命令

命令参数:

  • a 显示所有进程

  • -a 显示同一终端下的所有程序

  • -A 显示所有进程

  • c 显示进程的真实名称

  • -N 反向选择

  • -e 等于“-A

  • e 显示环境变量

  • f 显示程序间的关系

  • -H 显示树状结构

  • r 显示当前终端的进程

  • T 显示当前终端的所有程序

  • u 指定用户的所有进程

  • -au 显示较详细的资讯

  • -aux

    • -a Affiche toutes les connexions et ports d'écoute. 🎜
    • 🎜-n Affichez l'adresse et le numéro de port sous forme numérique. 🎜
    • 🎜-o Affiche le processus détenu ID associé à chaque connexion. 🎜

    Voir toutes les occupations de ports

    ps -ef|grep ssh

    Voir le PID correspondant au port occupé 3306

    chuchur@linux:~/share$ ps -ef|grep bash
    chuchur        9448  79650  0 06:05 pts/4    00:00:00 grep --color=auto bash
    chuchur       79650  79575  0 03:49 pts/4    00:00:00 bash

    Afficher le processus PID du port 3306 spécifié

    ps aux | egrep '(nginx|python)'

    Terminer le processus

    🎜Forcer (paramètre /F) pour tuer le pid Pour 12345 tous les processus, y compris les processus enfants (paramètre /T) : 🎜
    root         951  0.0  0.3 425268 27680 ?        Ssl   2020   9:48 /usr/libexec/platform-python -Es /usr/sbin/tuned -l -P
    root      212828  0.0  0.1 135300 13924 ?        Ss    2020   0:00 nginx: master process /usr/sbin/nginx
    root     2488443  0.0  0.1 164676 14892 ?        S    Mar06   0:00 nginx: worker process
    🎜Linux en utilisant 🎜

    En utilisant la commande netstat

    🎜-t (tcp)Affiche uniquement les options liées à tcp🎜🎜-u (ucp)Affiche uniquement ucp Options associées -n refuse d'afficher les alias et convertit tous les nombres pouvant être affichés en nombres🎜🎜-l Ne liste que ceux dans Écouter (écoute) L'état du service🎜🎜<code>-p affiche le nom du programme qui a établi le lien pertinent🎜

    Regardez tous les ports actuellement utilisés h3>
    kill -9 65300 #彻底干掉pid为65530的进程
    
    kill -9 $(ps -ef | grep guest) #干掉guest 用户进程
    #or
    kill -u guest

    Vérifier l'utilisation d'un certain port

    rrreee

    Utiliser la commande lsof

    • 🎜Par défaut : aucune option, lsof répertorie tous les fichiers ouverts des processus actifs🎜
    • 🎜Combinaison : les options peuvent être combinées pour Ensemble, comme -abc, mais attention aux options qui nécessitent des arguments 🎜
    • 🎜-a : le résultat est AND (et non ORed ”)🎜
    • 🎜-l  : affiche l'ID de l'utilisateur au lieu du nom d'utilisateur dans la sortie🎜
    • 🎜- h  : Obtenez de l'aide🎜
    • 🎜-t  : Obtenez uniquement l'ID🎜
    • 🎜 -U  : Obtenez l'adresse du socket UNIX 🎜
    • 🎜-F  : Formatez les résultats de sortie pour les autres commandes . Peut être formaté de plusieurs manières, telles que -F pcfn (pour le processus id, nom de commande, descripteur de fichier, nom de fichier et terminé par null) 🎜 li>
    rrreee

    Couramment utilisé

    • 🎜lsof abc.txt code > Afficher le processus d'ouverture du fichier <code>abc.txt 🎜
    • 🎜lsof -i :22 Sachez que le 22 le port est maintenant en cours d'exécution. Quel programme🎜
    • 🎜lsof -c abc affiche les fichiers actuellement ouverts par le processus abc🎜
    • 🎜lsof - g gid Affiche l'état du processus appartenant à gid🎜
    • 🎜lsof +d /usr/local/ code> Affiche les processus ouverts par le processus dans le répertoire Files🎜
    • 🎜lsof +D /usr/local/ Comme ci-dessus, mais il recherchera les répertoires sous le répertoire , ce qui prend plus de temps🎜
    • 🎜 lsof -d 4 affiche les processus utilisant fd comme 4🎜
    • 🎜lsof -i est utilisé pour afficher les conditions des processus qui remplissent les conditions🎜
  • 🎜lsof -p 12 Voir quels fichiers sont ouvert par le processus avec le numéro de processus 12🎜
  • 🎜lsof +|-r [t] Contrôle lsof pour être exécuté à plusieurs reprises. La valeur par défaut est 15s rafraîchissement🎜
  • 🎜lsof -r, lsof continuera à s'exécuter pour toujours jusqu'à ce qu'un signal d'interruption soit reçu🎜
  • 🎜lsof +r, lsof continuera à s'exécuter, jusqu'à ce qu'aucun fichier ne soit affiché 🎜
  • 🎜lsof -s Listez les taille du fichier ouvert, s'il n'y a pas de taille, laissez un blanc 🎜
  • 🎜lsof -u username Liste les fichiers ouverts avec UID🎜 li>

Utilisez la commande ps

🎜Paramètres de la commande : 🎜
  • 🎜a Afficher tous les processus🎜
  • 🎜-a Afficher tous les programmes sous le même terminal 🎜
  • 🎜 -A Afficher tous les processus 🎜
  • 🎜 c affiche le vrai nom du processus 🎜
  • 🎜-N sélection inversée 🎜
  • 🎜-e est égal à "-A"🎜
  • 🎜e Afficher les variables d'environnement🎜
  • 🎜f Afficher le programme La relation entre 🎜
  • 🎜-H affiche la structure arborescente 🎜
  • 🎜r affiche le processus du terminal actuel 🎜 li>
  • 🎜T Affiche tous les programmes dans le terminal actuel🎜
  • 🎜u Tous les processus de l'utilisateur spécifié🎜
  • 🎜-au affiche des informations plus détaillées🎜
  • 🎜-aux affiche tous les itinéraires incluant d'autres utilisateurs🎜
  • -C99a2c3ea6fd7e6f38f79ffc1b9e66846 列出指定命令的状况

  • --lines1dcc53fc8cc7b2478796660caa67152b 每页显示的行数

  • --width43fcd4448ba0fb0354190e42ef7c7dd3 每页显示的字符数

  • --help 显示帮助信息

  • --version 显示版本显示

查找特定进程

ps -ef|grep ssh

输出:

chuchur@linux:~/share$ ps -ef|grep bash
chuchur        9448  79650  0 06:05 pts/4    00:00:00 grep --color=auto bash
chuchur       79650  79575  0 03:49 pts/4    00:00:00 bash

通过服务名字查找PID

查找 nginxpython 占用情况

ps aux | egrep &#39;(nginx|python)&#39;

输出:

root         951  0.0  0.3 425268 27680 ?        Ssl   2020   9:48 /usr/libexec/platform-python -Es /usr/sbin/tuned -l -P
root      212828  0.0  0.1 135300 13924 ?        Ss    2020   0:00 nginx: master process /usr/sbin/nginx
root     2488443  0.0  0.1 164676 14892 ?        S    Mar06   0:00 nginx: worker process

结束进程

kill命令参数

  • -1 (HUP):重新加载进程。

  • -9 (KILL):杀死一个进程。

  • -15 (TERM):正常停止一个进程。

  • -KILL 强制杀死进程

kill -9 65300 #彻底干掉pid为65530的进程

kill -9 $(ps -ef | grep guest) #干掉guest 用户进程
#or
kill -u guest

推荐学习:windows教程

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer