如何从网络连接小程序中删除过时的网络条目

我看到我可以通过单击面板中的无线图标并选择“编辑连接” – >“无线”来删除我的机器从nm-applet“记住”的网络。 但是,有时我会在下拉列表中偶然点击错误的无线连接。 如果连接是安全的,那么机器当然永远不会成功连接,但不知何故它似乎仍然记住了ESSID。 每当我处于无线范围内时,它现在都会尝试连接。

更糟糕的是,如果没有连接到任何其他网络,它会反复提示我连接到此网络。 如果无人看管,我可能会发现几十个窗口副本,提示我登录这个错误的网络。 必须有某个文件记录此连接ID,但我找不到它。 我上面提到的“编辑连接”中出现的唯一连接是我实际连接的连接。 如何查找文件并删除与违规“记忆”网络对应的行?

编辑我寻求一个解决方案,从我们第一次选择它们时添加的任何列表中删除这些网络。 看来这种行为是网络管理器中的一个错误(?)

你有没有尝试删除目录/etc/NetworkManager/system-connections/

对于您尝试连接的每个网络,您应该有1个文件,打开终端并使用命令:

 sudo ls -l /etc/NetworkManager/system-connections/ 

要列出所有文件,找到要删除的网络后,请使用以下命令将其删除:

 sudo rm /etc/NetworkManager/system-connections/NETWORK_NAME 

您可以使用nmcli con delete (CONNECTION_NAME)删除连接nmcli con delete (CONNECTION_NAME)

删除从未使用的所有连接(不需要root)

 nmcli --fields UUID,TIMESTAMP-REAL con show | grep never | awk '{print $1}' | while read line; do nmcli con delete uuid $line; done 

如果您的主要问题是要求您登录网络的恼人提示,那么无论何时不使用无线,您都可以通过单击网络指示器菜单中的Enable Wireless条目来禁用无线。

通过@Postadelmaga为以前的答案增加了更多的灵活性,我花了更多精力打印要删除的SSID的名称。 这增加了一个难点:我们现在必须避免包含单词“never”的SSID名称意外匹配包含“never”的时间戳的可能性。

我还创建了另一个按名称删除连接的函数。

来源: https : //github.com/frgomes/debian-bin/blob/master/bash_20nm.sh

 #!/bin/bash function nmcli_list { nmcli --pretty --fields NAME,UUID,TIMESTAMP-REAL con show } function nmcli_remove { if [ ! -z "$1" ] ;then nmcli --fields NAME con show | \ grep "$@" | \ while read name ;do echo Removing SSID "$name" nmcli con delete "$name" done fi } ################################################################################## # The intent here is avoid that a connection named "never drive after you drink" # # matches a timestamp "never". So, we have to make sure that we match colon # # followed by "never" followed by spaces and/or tabs and finally an end of line. # # # # WARNING: However, I didn't get a chance to test this scenario. # # So, I provide this code the way it is, in the hope that I've covered # # well the behavior from some other simulations I did. # ################################################################################## function nmcli_remove_never_used { nmcli --terse --fields NAME,TIMESTAMP-REAL con show | \ egrep -e ':never[ \t]*$' | \ sed -r 's/:never[ \t]*$//' | \ while read name ;do echo Removing SSID "$name" nmcli con delete "$name" done } 

然后您可以删除特定连接,如下所示:

 $ nmcli_remove ScalaX $ nmcli_remove "My WiFi @ Home" $ nmcli_remove "never drive after you drink"