NetworkManagerのグラフィカルインターフェイス(トレイアイコンを介して)を使用すると、約10個のSSID(現在の場所について)が表示されます。ただし、使用するとnmcli dev wifi
約55項目が返されます。その理由は、同じSSIDが異なる信号強度(時には転送速度も異なる)に複数回戻ってくるからです。ほとんどの冗長SSIDは異なるチャネル/帯域を持っていますが、一部は同じチャネル/帯域を持っています。
サンプル出力
IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITY
G4_9647 Infra 11 65 Mbit/s 84 ▂▄▆█ WPA2
Telekom Infra 11 130 Mbit/s 64 ▂▄▆_ --
Airport-Frankfurt Infra 11 130 Mbit/s 62 ▂▄▆_ --
FRAWiSe Infra 11 130 Mbit/s 60 ▂▄▆_ WPA2 802.1X
FRAWiSe Infra 48 405 Mbit/s 60 ▂▄▆_ WPA2 802.1X
Airport-Frankfurt Infra 48 405 Mbit/s 60 ▂▄▆_ --
Ca81pVb5jKTw Infra 11 130 Mbit/s 59 ▂▄▆_ WPA2
Telekom Infra 48 405 Mbit/s 59 ▂▄▆_ --
Airport-Frankfurt Infra 36 270 Mbit/s 57 ▂▄▆_ --
Telekom Infra 36 270 Mbit/s 55 ▂▄__ --
FRAWiSe Infra 36 270 Mbit/s 55 ▂▄__ WPA2 802.1X
Ca81pVb5jKTw Infra 11 130 Mbit/s 54 ▂▄__ WPA2
AndroidAP 3 Infra 6 65 Mbit/s 50 ▂▄__ WPA2
FRAWiSe Infra 11 130 Mbit/s 50 ▂▄__ WPA2 802.1X
次のコマンドは、約55の接続もリストします。
sudo iwlist wlp4s0 scan | grep ESSID
sudo iw dev wlp4s0 scan | grep SSID
NetworkManager GUIを使用してnmcli
同じ結果を取得し、結果を一意のSSIDごとに1つの項目に制限するにはどうすればよいですか? SSIDがどのチャンネル/バンドにあるかを知らずにこれを達成したいです(この場合はgrepを使用できます)。たとえば、信号強度が最も高いチャンネル/帯域のエントリのみが返されます。
答え1
nmcli dev wifi | awk -F' +' '{ if (!seen[$2]++) print}'
awkスクリプトは次のように動作します。
- -F '+' - 区切り文字は2つ以上のスペースです。
- 以前に表示されていない場合は、2番目の列(SSID)を印刷します。その後、値に1を追加すると、次に再印刷されません。