![更改无线网卡状态的脚本](https://linux22.com/image/133384/%E6%9B%B4%E6%94%B9%E6%97%A0%E7%BA%BF%E7%BD%91%E5%8D%A1%E7%8A%B6%E6%80%81%E7%9A%84%E8%84%9A%E6%9C%AC.png)
鉴于笔记本电脑上的热键不会改变无线卡的状态,我想创建一个简短的脚本来执行此操作,然后将其映射到该键。
我的研究告诉我,.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