ワイヤレスネットワークカードの状態を変更するスクリプト

ワイヤレスネットワークカードの状態を変更するスクリプト

ラップトップのショートカットがワイヤレスカードの状態を変更しないことを考慮して、それを実行してからキーにマッピングする短いスクリプトを作成したいと思いました。

私の研究では、ファイルは(とにかく)「実行」できる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

関連情報