1. 前言
大家好,我是安果!
在 Web 开发中,经常会遇到「端口被占用」的场景
常规解决方案是:
虽然只有 2 步,我也觉得很繁琐,即:既要记住命令,又要输入两次
本篇文章将编写 Shell 脚本,来实现一键干掉端口占用
2. 实现
相比 Python,Shell 脚本常用于处理偏操作系统底层的业务,简单、开发效率高
以 Mac OSX 为例,在本地创建一个 .sh 文件,实现步骤如下:
2-1 定义端口号及过滤内容参数
将要处理的端口号及命令行过滤内容参数化,然后在 Shell 脚本中赋值给两个变量
执行脚本的第一个参数,即:端口号
执行脚本的第二个参数,即:过滤进程命令内容
2-2 获取端口占用进程返回值
使用端口号组成 lsof -i 命令,执行这条命令,将返回值赋值给变量 ip_status
注意:ip_status 数据类型为字符串
2-3 转为数组
由于字符串不便于 PID 过滤,我们需要将上面的 ip_status 变量按「空格」分割成一个数组
2-4 遍历数组,过滤 PID
首先,遍历上面的数组,提取每一个元素
然后,过滤出所有类型为 number、并且上一个值包含过滤内容的数据

最后,使用 kill -9 PID 命令处理对应的进程
2-5 设置 Alias
为了一键运行 Shell 脚本,我们使用 Alias 给命令设置一个别名
修改「.bash_profile」文件,将 Shell 脚本文件的完整路径及执行命令写入到一个自定义的函数中
2-6 实战一下
使用 source .bash_profile 命令刷新配置文件,让 Alias 配置立即生效
假如现在 8000 被占用,我们只需要打开终端输入「kp 8000 python」命令即可以快速干掉目标进程
运行截图如下:
4. 最后
需要指出的是,linux 下需要预先安装 lsof 命令,以 CentOS 为例
如果是 Windows,处理端口占用的 Shell 脚本不一样;它需要使用 netstat/tasklist/taskkill 命令去改写
另外,PC 端执行 Shell 脚本建议使用 Git Bash
linux中如何删除各个脚本?
rm -f 命令删除 ,后面跟脚本文件名,可以使用通配符 * ?等
如何利用linux系统去破解软件的应用?
使用Linux操作系统,装完系统后就是装各种常用软件了。 Linux系统集成了很多软件,可是对于一些习惯了的windows文件兼容性不太好,所以还是要下一些比较全面的软件或代替或补充。 Linux下安装软件感觉很复杂,一种软件包就有一种安装方法,不象windows找到就万事大吉了,而且不少软件都要很复杂的编译、配置,感觉头很大,这几天我唯一的工作就是不停的下载、安装。 虽然开源是件很诱惑的事,可是感觉没有windows的标准化的确大大削弱了linux的市场。 把这几天用过的一些安装方法总结一下吧,以备日后。 一、rpm包 是Redhat提供的一种已经编译过的包封的安装装格式。 一般使用rpm命令直接执行安装,比较简单。 常用的格式是: rpm -ivh <文件名> (-i是安装,-v是校验,-h是显示安装进度) 卸载同样也是一条命令就完成了: rpm -e <软件名> 这里的软件名跟rpm包的文件名不一样,通常不包括软件版本号,可以通过rpm命令先查看已安装的rpm软件包,再卸载列表中的软件。 二、deb包 它是Debain Linux提供的一种已经编译过的包封的安装装格式。 安装方法跟rpm 类似。 dpkg -i dpkg -e <软件名> 三、tar包 这种安装包是Unix下tar工具的压缩包,有时经过2次会在后面加上2、等扩展名。 这种包多数都提供源代码,开放性最好(可以选择甚至修改模块,也不局限于某个发行版本)但安装和卸载也最多问题。 一般安装tar包的步骤如下: 1:解压压缩包——tar -xvzf 压缩包名 或者 tar -xvzf 压缩包名(-z是调用gzip解压,-x是解压,-v是校验,-f是显示文件结果,-y是调用bzip2解压) 2:配置安装选项——./configure,一般用prefix参数配置安装路径,其他的参数也很有用。 3:编译安装文件——make。 4:安装——make install 5:清除安装产生的临时文件——make clean 有些软件不完全遵循这个步骤,(比如luma qq解压后直接./lumaqq就能运行,有点象windows的绿色软件)如果英文过关最好是阅读压缩包里的intall文件或者readme文件。 一般来说,安装后的可执行文件会存放在/usr/local/bin目录下,但也不是唯一的,还是要仔细阅读这两个文件。 卸载tar包可以进入安装目录执行make uninstall ,如果软件不提供uninstall,就必须手动rm -rf删除了,如果文件分散地安装在系统的多个目录中,除非安装时记住了所有路径,否则就很难清除干净了。 四、安装脚本 目前有些软件提供安装和卸载的SHELL脚本,只要运行甚至可以直接从网站下载软件一并安装到本地,同时运行就卸载该软件。 一些常用软件的安装和配置方法 linux找到一个适用的、完整的应用软件版本至关重要,这点我深有体会,我要安装的东西不多,但这几天就不停的各种版本来尝试,有些还会引起软件冲突,有些安装了发现没有传说中的功能又得下插件什么的。 linux的发行版本又多,各种体会和经验都是因人而异了。
linux shell脚本读取用户输入的参数
$# 是传给脚本的参数个数$0 是脚本本身的名字$1是传递给该shell脚本的第一个参数$2是传递给该shell脚本的第二个参数$@ 是传给脚本的所有参数的列表例如:#!/bin/shecho arg_num: $#echo shell_name: $0echo first_arg : $1echo second_arg : $2echo args : $@
发表评论