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당 하나의 항목으로 제한하려면 어떻게 해야 합니까? SSID가 어느 채널/밴드에 있는지 알지 못한 채 이를 달성하고 싶습니다(이 경우 grep을 사용할 수 있음). 예를 들어, 신호 강도가 가장 높은 채널/대역에 대한 항목만 반환됩니다.
답변1
nmcli dev wifi | awk -F' +' '{ if (!seen[$2]++) print}'
awk 스크립트는 다음과 같이 작동합니다.
- -F' +' - 구분 기호는 두 개 이상의 공백입니다.
- 이전에 표시되지 않은 경우 두 번째 열(SSID)을 인쇄합니다. 그런 다음 값에 1을 추가하면 다음에 다시 인쇄되지 않습니다.