Za pomocą iw
Nie mam nm-tool
zainstalowanego, więc używam iw
.
To polecenie sortuje punkty dostępu według siły sygnału, najpierw najsilniejsze:
sudo iw dev wlan0 scan | egrep "signal:|SSID:" | sed -e "s/\tsignal: //" -e "s/\tSSID: //" | awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}' | sort
Każde polecenie wyjaśniło:
iw dev wlan0 scan
: Wyszukaj punkty dostępowe dostępne za pośrednictwem interfejsu wlan0
egrep "signal:|SSID:"
: Uzyskaj linie o sile sygnału i identyfikatorach SSID z iw
wyjścia. Dane wyjściowe wyglądają teraz tak:
sygnał: -77,00 dBm
SSID: nameOfAccessPoint1
sygnał: -71,00 dBm
SSID: nameOfAccessPoint2
sed -e "s/\tsignal: //" -e "s/\tSSID: //"
: Zmniejsz egrep
wydajność do tego:
-77,00 dBm
nameOfAccessPoint1
-71,00 dBm
nameOfAccessPoint2
awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}'
: Ustaw siłę sygnału i identyfikator SSID na tej samej linii. Mówiąc dokładniej, gdy numer linii ( NR
) jest parzysty, tj. Znajdujemy się na linii pokazującej punkt dostępu, separatorem rekordów wyjściowych ( ORS
) powinien być podział linii. W przeciwnym razie znajdujemy się na linii zawierającej siłę sygnału, więc dołączamy do linii, tworząc ORS
prostą spację.
Jeśli otrzymamy sort
to wyjście, otrzymamy listę mocy sygnału i punktów dostępu, pokazując punkt dostępu z najsilniejszym sygnałem na górze:
-71.00 dBm nameOfAccessPoint2
-77.00 dBm nameOfAccessPoint1
Uwaga: niektóre punkty dostępu mogą mieć rozszerzone możliwości: Rozszerzone możliwości: * Lista SSID
Zatem grepping „SSID:” zamiast „SSID” pomaga uniknąć tego dodatkowego wyjścia, które w przeciwnym razie spowodowałoby niepowodzenie polecenia.