柳罐罐
2018-06-24 07:49
采纳率: 30.8%
浏览 2.2k

linux环境下怎么实现添加和删除一条wifi连接信息

如题,想知道在不与AP连接的情况下如何用代码实现添加一条wifi的信息(ssid和password)等
还有如何用一些代码的形式删除连接过的wifi的信息
这些wifi的信息一般都储存在哪里呢,可以直接进入文件编辑吗?

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

8条回答 默认 最新

  • devmiao 2018-06-24 15:55
    已采纳
    打赏 评论
  • qq_38914951 2018-06-24 08:32

    在linux下除了图形方式连接wifi,还可以使用命令行方式连接,这种方式方便没有图形界面的linux、无显示器、裁剪系统等嵌入式设备。
    获取nmcli方法 如果在你的设备可以访问互联网的情况下sudo apt-get install network-manager 通过上述命令直接安装network-manager,包含了nmcli 命令
    如果在你的设备无法访问互联网的情况下,你可以下载一份源码,通过目标板编译或者交叉编译的方式编译出network-manager工具,这里不多做描述。
    nmcli扫描并查看wifi情况 使用方法: nmcli d wifi connect password iface 例如:连接KFC_free 通过ifconfig 获取网卡描述,一般默认wlan0nmcli d wifi connect "KFC_free" password "12345678" wlan0 连接成功后通过ifconfig 查看一下是否获得了ip
    如果出现下面的情况Error: Failed to add/activate new connection: (32) Not authorized to control networking. 尝试切换root用户尝试。
    连接成功后,每次开机默认都会去连接wifi,此时去切换别的wifi会失败,可提前断开连接nmcli dev dis wlan0 或者nmcli con del KFC_free 断开连接后,再连接别的wifi就正常了。
    彻底删除wifi连接的方法
    nmcli c 这个命令可以获取到当前设备所有连接过多的历史连接及对于UUID号码
    通过nmcli c del 72ffd5f4-71f8-0001-b434-6122908cfd4e
    del 后边是UUID号码

    打赏 评论
  • scjss 2018-06-24 09:13

    首先第一件事,你必须要知道网络接口的名字,通常会是 wlan0 或 wlp2s0,但是也有很多例外。
    要确认你自己的网络接口,输入 iwconfig 命令并记下来。

    运行命令:
    cd /etc/netctl/examples
    在这个目录里,有很多不同的配置文件例子。

    拷贝将用到的配置文件例子到 /etc/netctl/your_profile
    cp /etc/netctl/examples/wireless-wpa /etc/netctl/your_profile
    你可以用这个命令来查看配置文件内容: cat /etc/netctl/your_profile

    用 gedit 编辑你的配置文件的下面几个部分:
    gedit /etc/netctl/your_profile

    • Interface:比如说 wlan0
    • ESSID:你的无线网络名字
    • key:你的无线网络密码

    运行命令:
    cd /etc/netctl
    ls
    你一定会看到 wifi-menu 生成的配置文件,比如 wlan0-SSID;会看到你自己创建的配置文件。

    运行命令启动连接配置:netctl start your_profile。
    用下面的命令测试连接:
    ping -c 3 www.google.com

    最后,你必须运行下面的命令:netctl enable your_profile。
    netctl enable your_profile

    打赏 评论
  • m0_37670881 2018-06-24 10:56

    $ iwconfig

    一般来说,无线接口都叫做 wlan0。当然也有例外的

    以防万一,你得确认下以使此接口服务是启动着的:

    $ sudo ip link set wlan0 up
    一但确认了无线接口是工作着的,你就可以用如下命令来扫描附近的无线网络了:

    $ sudo iw dev wlan0 scan | less

    根据扫描出的结果,可以得到网络的名字(它的 SSID),它的信息强度,以及它使用的是哪个安全加密的(如:WEP、WPA/WPA2)。从此时起,将会分成两条路线:情况很好、很容易的以及情况稍微复杂的。

    如果您想连接的网络是没有加密的,您可以用下面的命令直接连接:

    $ sudo iw dev wlan0 connect [网络 SSID]
    如果网络是用 WEP 加密的,也非常容易:

    $ sudo iw dev wlan0 connect [网络 SSID] key 0:[WEP 密钥]
    但网络使用的是 WPA 或 WPA2 协议的话,事情就不好办了。这种情况,您就得使用叫做 wpasupplicant 的工具,它默认是没有的。然后需要修改 /etc/wpasupplicant/wpa_supplicant.conf 文件,增加如下行:

    network={ ssid="[网络 ssid]" psk="[密码]" priority=1}
    建议你​​在文件的末尾添加它,并确保其他配置都注释掉。要注意 SSID 和密码字串都是大小写敏感的。在技术上您也可以把接入点的名称当做是 SSID,使用 wpa_supplicant 工具的话会有合适的 SSID 来替代这个名字。

    一旦配置文件修改完成后,在后台启动此命令:

    $ sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
    最后,无论是连到开放的网络还是加密的安全网络,您都得获取 IP 地址。简单地使用如下命令:

    $ sudo dhcpcd wlan0
    如果一切顺利的话,您应该已经通过 DHCP 获取到了一个全新的本地 IP,这个过程是在后台自动完成的。如果想确认下是否真正连接上的话,您可以再一次输入如下命令检查:

    $ iwconfig

    最后,我认为多次重复第一步的检查操作是很有必要的。您永远不会知道什么时候您的图形用户界面挂了,或者是什么时候不能访问无线连接了,所以现在就准备着用命令来检测吧。还有,前面提到过的,有很多种方式(如 NetworkManager、wicd、netcfg、wifi 等等)来管理无线连接。我坚持使用最基本的方式,但在某些情况下,我使用的工具可能您还没有,所以您在之前就得先下载它们。另一方面,有很多高级的应用程序,他们确实是不包含在“默认包”里面的,使用它们会大大简化操作过程。

    打赏 评论
  • jiaszcd 2018-06-25 01:50

    找到wifi信息,rm -f

    打赏 评论
  • 紫林落雪 2018-06-25 02:00

    wifi下设置编辑连接

    打赏 评论
  • baidu_35895917 2018-06-25 08:11
    打赏 评论
  • qq_35740099 2018-06-25 08:26

    获取nmcli方法 如果在你的设备可以访问互联网的情况下sudo apt-get install network-manager 通过上述命令直接安装network-manager,包含了nmcli 命令
    如果在你的设备无法访问互联网的情况下,你可以下载一份源码,通过目标板编译或者交叉编译的方式编译出network-manager工具

    打赏 评论

相关推荐 更多相似问题