С помощью iw
Я не nm-tool
установил, поэтому я использую iw
.
Эта команда сортирует точки доступа по силе сигнала, самый сильный сначала:
sudo iw dev wlan0 scan | egrep "signal:|SSID:" | sed -e "s/\tsignal: //" -e "s/\tSSID: //" | awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}' | sort
Каждая команда объяснила:
iw dev wlan0 scan
: Поиск точек доступа, доступных через интерфейс wlan0
egrep "signal:|SSID:"
: Получить линии с уровнем сигнала и SSID из iw
выходных данных. Вывод теперь выглядит так:
сигнал: -77,00 дБм
SSID: nameOfAccessPoint1
сигнал: -71,00 дБм
SSID: nameOfAccessPoint2
sed -e "s/\tsignal: //" -e "s/\tSSID: //"
: Уменьшите egrep
вывод до этого:
-77,00 дБм
nameOfAccessPoint1
-71,00 дБм
nameOfAccessPoint2
awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}'
: Приведите уровень сигнала и SSID на одной линии. Более конкретно, когда номер строки ( NR
) четный, т. Е. Мы находимся на линии, показывающей точку доступа, разделитель выходной записи ( ORS
) должен быть разрывом строки. В противном случае мы находимся на линии, содержащей силу сигнала, поэтому мы присоединяемся к линии, создавая ORS
простой пробел.
Если мы получим sort
этот вывод, мы получим список уровней сигнала и точек доступа, показывающий точку доступа с самым сильным сигналом сверху:
-71.00 dBm nameOfAccessPoint2
-77.00 dBm nameOfAccessPoint1
Осторожно: некоторые точки доступа могут иметь расширенные возможности: Расширенные возможности: * Список SSID
Таким образом, сокращение «SSID:» вместо «SSID» помогает избежать этого дополнительного вывода, что в противном случае могло бы привести к сбою команды.