랩톱의 단축키가 무선 카드의 상태를 변경하지 않는다는 점을 고려하여 이를 수행한 다음 이를 키에 매핑하는 짧은 스크립트를 만들고 싶었습니다.
내 연구에 따르면 파일은 (어쨌든) "실행"될 수 있는 bash 스크립트 파일이므로 다음 스크립트를 사용하여 파일을 만들기 .sh
시작했습니다 ..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 명령을 사용할 수 있어야 하며 다음 명령을 사용하여 Wi-Fi 라디오를 켜거나 끄십시오.
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
Wi-Fi 인터페이스의 상태를 확인하세요 /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