nmcli device wifi list
是 NetworkManager 的命令行工具 nmcli
的一部分,它用于列出当前可用的无线网络。它的作用和 wpa_cli
的扫描功能类似,但有一些不同点。
1. nmcli device wifi list
功能:
nmcli device wifi list
命令用于显示当前设备扫描到的可用 Wi-Fi 网络。- 它会列出附近的所有 Wi-Fi 网络,并显示每个网络的基本信息,例如 SSID、信号强度、频率、加密类型等。
nmcli
命令是 NetworkManager 的工具,因此它不仅仅是一个简单的扫描命令,还提供了一整套管理和配置网络连接的功能。
示例:
nmcli device wifi list
输出示例:
IN-USE SSID MODE CHAN RATE SIGNAL BARS SECURITYHomeWiFi Infra 11 54 Mbit/s 100 ▂▄▆█ WPA2PublicWiFi Infra 6 54 Mbit/s 80 ▂▄▆█ WPAMyWiFi Infra 1 54 Mbit/s 60 ▂▄▆_ WEP
输出字段:
- IN-USE: 显示当前正在使用的网络(会显示
*
或x
表示当前连接的网络)。 - SSID: 无线网络的名称(SSID)。
- MODE: 网络模式(例如,
Infra
表示基础设施模式)。 - CHAN: 网络使用的信道。
- RATE: 网络的速率。
- SIGNAL: 信号强度(以百分比表示)。
- BARS: 信号强度的条形图表示。
- SECURITY: 无线网络的加密方式(如 WPA2, WEP 等)。
优点:
- 更高层次的网络管理:
nmcli
提供了更多的网络管理功能,不仅仅局限于扫描和显示 Wi-Fi 网络,还可以用于连接、断开网络,管理 IP 配置等。 - 便于自动化:可以将
nmcli
命令放入脚本中,进行自动化的网络配置。
2. wpa_cli scan
和 wpa_cli scan_result
功能:
wpa_cli
是与 wpa_supplicant(Wi-Fi 配置和管理工具)交互的命令行工具,专门用于控制和调试 Wi-Fi 连接。wpa_cli scan
是向 wpa_supplicant 发出扫描请求,获取周围可用的 Wi-Fi 网络。wpa_cli scan_result
用于显示扫描结果。
示例:
sudo wpa_cli scan
sudo wpa_cli scan_result
输出示例:
bssid / frequency / signal level / flags / ssid
00:11:22:33:44:55 2412 -50 [WPA2-PSK] MyWiFi
00:11:22:33:44:56 2417 -70 [WPA-PSK] AnotherWiFi
输出字段:
- BSSID: 无线网络的 MAC 地址(基础设施网络的唯一标识符)。
- Frequency: 网络的频率(通常为 2.4 GHz 或 5 GHz)。
- Signal level: 信号强度(单位:dBm)。
- Flags: 加密类型、网络状态等。
- SSID: 无线网络的名称(SSID)。
优点:
- 低级别的管理工具:
wpa_cli
更底层,直接与 wpa_supplicant 通信,提供了更多关于 Wi-Fi 协议栈的信息。 - 适用于调试和更细粒度的控制:适合用于调试 Wi-Fi 连接和进行更细粒度的控制(如修改 Wi-Fi 加密方式、配置等)。
3. 区别:
特性 | nmcli device wifi list | wpa_cli scan 和 wpa_cli scan_result |
---|---|---|
功能 | 提供可用 Wi-Fi 网络列表,并具有完整的网络管理功能 | 通过 wpa_supplicant 扫描 Wi-Fi 网络,仅显示扫描结果 |
依赖工具 | 依赖 NetworkManager | 依赖 wpa_supplicant |
输出格式 | 更友好的输出格式,适合普通用户查看 | 输出格式较为基础,适合技术人员调试和使用 |
适用场景 | 一般网络管理、连接、断开 Wi-Fi 网络 | 更底层的 Wi-Fi 配置和调试,适用于开发和调试 |
加密支持 | 显示加密类型(WPA2, WPA 等) | 显示加密类型及更多 Wi-Fi 相关信息(如信号强度、BSSID 等) |
命令功能 | 仅限列出 Wi-Fi 网络,但可以执行更多网络操作 | 仅提供扫描和获取结果的功能,但支持更多 Wi-Fi 连接配置 |
系统兼容性 | 更适合现代 Linux 系统(如 Ubuntu),更方便的管理工具 | 适用于大部分使用 wpa_supplicant 的 Linux 系统 |
总结:
nmcli device wifi list
:适用于更高层次的网络管理,适合一般用户用来查看和管理 Wi-Fi 网络,输出信息简洁,易于理解。wpa_cli scan
和wpa_cli scan_result
:提供更底层的 Wi-Fi 管理和调试功能,适用于开发人员和技术人员,能够显示更多详细的扫描信息并进行调试。
根据你的需求,选择使用合适的命令。例如,如果你需要更简便的 Wi-Fi 网络扫描和连接管理,nmcli
是一个更好的选择;如果你需要更底层的操作或调试,wpa_cli
更适合。