在Ubuntu 11.04中,我使用InSSIDer扫描可用的AP并按信号强度对其进行排序。
不幸的是,该程序似乎在Ubuntu 11.10中已损坏,并且
iwlist wlan0 scan
不会返回任何有意义的信息。
我可能需要使用GUI来扫描可用无线访问点的哪些选项?
sudo iwlist wlan0 scanning | egrep 'Cell |Encryption|Quality|Last beacon|ESSID'
应该有所帮助。
在Ubuntu 11.04中,我使用InSSIDer扫描可用的AP并按信号强度对其进行排序。
不幸的是,该程序似乎在Ubuntu 11.10中已损坏,并且
iwlist wlan0 scan
不会返回任何有意义的信息。
我可能需要使用GUI来扫描可用无线访问点的哪些选项?
sudo iwlist wlan0 scanning | egrep 'Cell |Encryption|Quality|Last beacon|ESSID'
应该有所帮助。
Answers:
sudo iwlist wlan0 scanning | egrep 'Cell |Encryption|Quality|Last beacon|ESSID'
应该有所帮助。
它是sudo
(以root身份运行,执行特权操作),iwlist wlan0 scanning
(在STDOUT上产生一些输出),管道符号“ |”的组合 (将命令的STDOUT左侧连接到右侧进程的STDIN),以及egrep
带有“单引号” 的命令(以防止shell解释“ |”字符)正则表达式以过滤STDIN 。见man bash
,man sudo
,man iwlist
,man egrep
,并man re_format
了解详细信息。
在执行其他人的命令字符串之前,请务必进行任何操作(如上所述)。自我教育比盲目信任要安全得多。
/
。许多新的Linux用户都害怕手册页的大小以及无法快速找到正确信息的能力。
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:"
:从iw
的输出中获取具有信号强度和SSID的线路。现在的输出如下所示:
信号:-77.00 dBm SSID:nameOfAccessPoint1 信号:-71.00 dBm SSID:nameOfAccessPoint2
sed -e "s/\tsignal: //" -e "s/\tSSID: //"
:将egrep
的输出减少为:
-77.00 dBm的 nameOfAccessPoint1 -71.00 dBm的 nameOfAccessPoint2
awk '{ORS = (NR % 2 == 0)? "\n" : " "; print}'
:将信号强度和SSID放在同一条线上。更具体地说,当行号(NR
)是偶数时,即我们在显示访问点的行上,则输出记录分隔符(ORS
)应该是换行符。否则,我们将处于包含信号强度的直线上,因此我们通过创建ORS
一个简单的空格来加入该直线。
如果是sort
此输出,则最终得到信号强度和接入点的列表,在顶部显示信号最强的接入点:
-71.00 dBm nameOfAccessPoint2
-77.00 dBm nameOfAccessPoint1
当心:某些接入点可以具有扩展功能:扩展功能:* SSID列表
因此,grepping“ SSID:”而不是“ SSID”有助于避免过多的输出,否则将导致命令失败。
grep
要sed
到awk
,你不喜欢的Linux!非常好的综合答案。我知道我不应该写一个补充评论,但这确实值得一提,您甚至还提供了中间输出。
nm-tool | grep "Freq.*Strength" | sed -ne "s|\(.*Strength \([0-9]\+\).*\)|\2}\1|p" | sort -n -r
nm-tool
获取无线访问点列表sed
在每行前面添加信号电平nm-tool
是“网络管理器”软件包的一部分,该软件包显然安装在典型的Ubuntu系统中。