更改无线网卡状态的脚本

更改无线网卡状态的脚本

鉴于笔记本电脑上的热键不会改变无线卡的状态,我想创建一个简短的脚本来执行此操作,然后将其映射到该键。

我的研究告诉我,.sh文件是可以“执行”(以某种方式)的 bash 脚本文件,所以我着手.sh使用以下脚本创建一个文件;

#!/bin/bash

if
    ( ip link set wlan0 "up" );
then
    sudo ip link set wlan0 down
else
    sudo ip link set wlan0 up
fi

我正在使用该命令运行脚本./,它在一个方向上工作,但反之则不然;

上→下

**编辑**

我忘了提及我的版本是 Kali Linux (Debian) 并且我正在使用 iproute2

答案1

如果 Kali 使用 NetworkManager,您应该有可用的 nmcli 命令,然后只需使用以下命令打开/关闭 wifi 无线电

nmcli radio wifi off
nmcli radio wifi on

答案2

非常感谢@GAD3R

虽然你的脚本不适合我,但我稍微修改了一下,这样就可以了。

我的机器无法从 读取任何内容/sys/class/net/wlan0/carrier,因此我过去常常grep从那里读取ip a并确定状态是否应更改为“向上”或“向下”。

除此之外;我还曾经zenity在屏幕上显示我所做的更改的通知。脚本最终看起来像这样;

#!/bin/bash


if
ip a | grep -q "wlan0: <BROADCAST,MULTICAST>";

then
ip link set wlan0 up
zenity --notification --text="Wireless state changed to UP"

else
ip link set wlan0 down
zenity --notification --text="Wireless state changed to DOWN"

fi

然后,我使用键盘快捷键在按下热键时运行此命令。

再次感谢任何帮助。

杰克

答案3

检查 wifi 接口的状态/sys/class/net/wlan0/carrier,例如:

#!/bin/bash

if grep -q 0 /sys/class/net/wlan0/carrier ; then  
ip link set wlan0 up
else
ip link set wlan0 down
fi

相关内容