iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么用Shell脚本一键干掉端口占用
  • 768
分享到

怎么用Shell脚本一键干掉端口占用

2023-06-17 02:06:16 768人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关怎么用shell脚本一键干掉端口占用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 前言在 WEB 开发中,经常会遇到「端口被占用」的场景常规解决方案是:使用 lsof -

这篇文章将为大家详细讲解有关怎么用shell脚本一键干掉端口占用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

1. 前言

WEB 开发中,经常会遇到「端口被占用」的场景

常规解决方案是:

  • 使用 lsof -i 命令查询占用端口的进程 PID

  • 利用 kill -9 PID 干掉目标进程

虽然只有 2 步,我也觉得很繁琐,即:既要记住命令,又要输入两次

本篇文章将编写 Shell 脚本,来实现一键干掉端口占用

2. 实现

相比 python,Shell 脚本常用于处理偏操作系统底层的业务,简单、开发效率高

Mac OSX 为例,在本地创建一个 .sh 文件,实现步骤如下:

2-1 定义端口号及过滤内容参数

将要处理的端口号及命令行过滤内容参数化,然后在 Shell 脚本中赋值给两个变量

  • $1

执行脚本的第一个参数,即:端口号

  • $2

执行脚本的第二个参数,即:过滤进程命令内容

# 要干掉的端口号 port_be_kill=$1  # 过滤内容 filter_content=$2

2-2 获取端口占用进程返回值

使用端口号组成 lsof -i 命令,执行这条命令,将返回值赋值给变量 ip_status

# 获取Shell返回值 ip_cmd='lsof -i tcp:'$port_be_kill  echo "获取端口号对应的进程命令:"$ip_cmd echo "过滤命令字符串为:"$filter_content  # 执行命令 ip_status=`$ip_cmd`

注意:ip_status 数据类型为字符串

2-3 转为数组

由于字符串不便于 PID 过滤,我们需要将上面的 ip_status 变量按「空格」分割成一个数组

# 以空格来分隔,转为一个数组变量 array=(${ip_status// / })

2-4 遍历数组,过滤 PID

首先,遍历上面的数组,提取每一个元素

然后,过滤出所有类型为 number、并且上一个值包含过滤内容的数据

# 判断数据的类型 function check(){     local a="$1"     printf "%d" "$a" &>/dev/null && echo "integer" && return     printf "%d" "$(echo $a|sed 's/^[+-]\?0\+//')" &>/dev/null && echo "integer" && return     printf "%f" "$a" &>/dev/null && echo "number" && return     [ ${#a} -eq 1 ] && echo "char" && return     echo "string" }

最后,使用 kill -9 PID 命令处理对应的进程

# 遍历数组 for i in "${!array[@]}"; do     # 注意:赋值等号=前后不能有空格     item="${array[i]}"      # 注意:过滤十六进制字符串     # 先转为字符串,然后判断是否以0x开头     # echo $item     if [[ $item != 0x* ]]     then         # 非十六进制数据,即:PID         if [ $(check $item) = "integer" ]         then             # 判断上一个元素是否包含关键字             # 命令行是否包含关键字             item_pre="${array[i-1]}"             # echo $item_pre             # echo $filter_content             if [[ $item_pre =~ $filter_content ]]             then                 # echo $item                 # 调用kill-9 pid命令干掉进程                 kill_cmd="kill -9 "$item                 echo $kill_cmd                 # 执行命令,干掉进程                 $kill_cmd             fi         fi     fi   done

2-5 设置 Alias

为了一键运行 Shell 脚本,我们使用 Alias 给命令设置一个别名

修改「.bash_profile」文件,将 Shell 脚本文件的完整路径及执行命令写入到一个自定义的函数中

# vim .bash_profile # alias定义 kill_port() {   cd /Users/xingag/Desktop/work   ./kill_port_with_args.sh $1 $2 } alias kp=kill_port

2-6 实战一下

使用 source .bash_profile 命令刷新配置文件,让 Alias 配置立即生效

假如现在 8000 被占用,我们只需要打开终端输入「kp 8000 Python」命令即可以快速干掉目标进程

运行截图如下:

怎么用Shell脚本一键干掉端口占用

4. 最后

需要指出的是,linux 下需要预先安装 lsof 命令,以 Centos 为例

# Centos安装lsof yum install lsof

如果是 windows,处理端口占用的 Shell 脚本不一样;它需要使用 netstat/tasklist/taskkill 命令去改写

另外,PC 端执行 Shell 脚本建议使用 git Bash

# Win处理端口占用 # 1、打开cmd终端 cmd  # 2、查找端口占用的进程及PID netstat -aon|findstr PORT  # 3、根据PID查询进程名称 tasklist|findstr PID  # 4、使用taskkill命令或在任务管理器中关掉进程

关于“怎么用Shell脚本一键干掉端口占用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: 怎么用Shell脚本一键干掉端口占用

本文链接: https://www.lsjlt.com/news/286896.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用Shell脚本一键干掉端口占用
    这篇文章将为大家详细讲解有关怎么用Shell脚本一键干掉端口占用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1. 前言在 Web 开发中,经常会遇到「端口被占用」的场景常规解决方案是:使用 lsof -...
    99+
    2023-06-17
  • 怎么用Shell脚本一键安装Nginx服务
    这篇文章主要介绍“怎么用Shell脚本一键安装Nginx服务”,在日常操作中,相信很多人在怎么用Shell脚本一键安装Nginx服务问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Shell脚本一键安装N...
    99+
    2023-06-29
  • 怎么用shell脚本一键部署LNMP架构
    本篇内容介绍了“怎么用shell脚本一键部署LNMP架构”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!LNMP架构介绍LNMP:Linux系...
    99+
    2023-06-09
  • 扫描端口占用情况的python脚本
        之前项目上线前,领导要求让写一个脚本用来判断端口的占用情况。由于现在python3使用也比较多,基于python2修改了一下,做了个python3版本的,现在做一下总结。一、python脚本实现扫描端口:    pthon2下代码如...
    99+
    2023-01-31
    端口 脚本 情况
  • 怎么在Shell脚本中调用另一个脚本
    这期内容当中小编将会给大家带来有关怎么在Shell脚本中调用另一个脚本,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。forkfork 是最普通的, 就是直接在脚本里面用 path/to/foo.sh 来调...
    99+
    2023-06-09
  • shell脚本怎么用
    这篇文章主要介绍了shell脚本怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。shell脚本?在说什么是shell脚本之前,先说说什么是shell。shell是外壳的意...
    99+
    2023-06-09
  • 如何编写自动杀掉占用较多CPU资源的Shell脚本
    本篇内容主要讲解“如何编写自动杀掉占用较多CPU资源的Shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何编写自动杀掉占用较多CPU资源的Shell脚本”吧!代码如下:#!/bin/...
    99+
    2023-06-09
  • Linux shell脚本怎么用
    这篇文章主要为大家展示了“Linux shell脚本怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux shell脚本怎么用”这篇文章吧。 Linux 脚本编写基础1 语法基本介绍1...
    99+
    2023-06-09
  • Shell脚本中怎么调用和引用另外一个脚本文件
    这篇文章主要讲解了“Shell脚本中怎么调用和引用另外一个脚本文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell脚本中怎么调用和引用另外一个脚本文件”吧!脚本 first (测试示...
    99+
    2023-06-09
  • 怎么用Shell脚本查看进程内存真实占用情况
    这篇文章主要介绍“怎么用Shell脚本查看进程内存真实占用情况”,在日常操作中,相信很多人在怎么用Shell脚本查看进程内存真实占用情况问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Shell脚本查看进...
    99+
    2023-06-09
  • shell脚本中sed怎么用
    这篇文章主要介绍了shell脚本中sed怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过。...
    99+
    2023-06-09
  • shell怎么调用perl脚本
    要在shell中调用Perl脚本,需要执行以下步骤:1. 确保已经安装了Perl解释器。可以在终端中输入perl -v来检查Perl...
    99+
    2023-10-21
    perl shell
  • windows443端口和80端口被占用怎么解决
    本篇内容介绍了“windows443端口和80端口被占用怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!443端口和80端口被占用的解...
    99+
    2023-07-01
  • 利用Java怎么查看本机端口是否被占用
    本篇文章为大家展示了利用Java怎么查看本机端口是否被占用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。127.0.0.1代表本机主要原理是:Socket socket = new Socket(A...
    99+
    2023-05-31
    java ava
  • 怎么用Tomcat安装shell脚本
    本篇内容主要讲解“怎么用Tomcat安装shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Tomcat安装shell脚本”吧!一、JAVA环境安装首先,要安装Tomcat,我们就...
    99+
    2023-07-02
  • 怎么复用外部Shell脚本
    这篇文章主要为大家展示了“怎么复用外部Shell脚本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么复用外部Shell脚本”这篇文章吧。执行外部脚本的方式假如在当前目录有 a.sh 脚本,内容...
    99+
    2023-06-15
  • Linux 中怎么使用Shell脚本
    Linux 中怎么使用Shell脚本,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Linux Shell脚本示例在Linux上完成的大多数shell脚本都涉及bash sh...
    99+
    2023-06-16
  • shell脚本语言怎么使用
    Shell脚本语言是一种在Unix/Linux操作系统上使用的脚本语言,用于编写批处理命令。下面是使用Shell脚本的基本步骤:1....
    99+
    2023-08-18
    shell
  • 怎么使用shell脚本查看网络接口信息
    这篇文章主要介绍“怎么使用shell脚本查看网络接口信息”,在日常操作中,相信很多人在怎么使用shell脚本查看网络接口信息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用shell脚本查看网络接口信息...
    99+
    2023-06-27
  • phpmyadmin端口3306被占用怎么办
    端口 3306 被占用时连接 phpmyadmin 的解决方案:检查其他 mysql 进程并停止;更改 mysql 端口;使用 ssh 隧道从另一个端口重定向流量;联系技术支持寻求帮助。...
    99+
    2024-04-08
    mysql phpmyadmin
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作