Я вижу, что могу удалить сети, которые моя машина «запоминает» из nm-applet, щелкнув значок беспроводной сети на панели и выбрав «изменить подключения» -> «беспроводная связь». Однако иногда в раскрывающемся списке я случайно выбираю неправильное беспроводное соединение. Если соединение безопасное, машина, конечно, никогда не соединится успешно, но каким-то образом она все равно запоминает ESSID. Всякий раз, когда я нахожусь в зоне действия этого беспроводного устройства, оно теперь пытается подключиться.
Хуже того, если он не подключен к какой-либо другой сети, он постоянно предлагает мне подключиться к этой сети. Если оставить без присмотра, я могу найти десятки копий окна, предлагающего мне войти в эту ошибочную сеть. Где-то должен быть файл, в котором записан этот идентификатор соединения, но я не могу его найти. Единственные соединения, которые появляются в «редактировании соединений», о которых я упоминал выше, это те, к которым я действительно подключился. Как мне найти файл и удалить строку, соответствующую «запомненной» сети? выберите их. Похоже, это поведение является ошибкой в сетевом менеджере (?)
Вы попытались удалить файлы в каталоге /etc/NetworkManager/system-connections/
?
У Вас должен быть 1 файл для каждой сети, Вы попытались подключить, открыть терминал и использовать команды:
sudo ls -l /etc/NetworkManager/system-connections/
Для списка всех файлов после нахождения сети, которую Вы хотите удалить, удалите их с командой:
sudo rm /etc/NetworkManager/system-connections/NETWORK_NAME
Если вашей основной проблемой являются те раздражающие запросы, в которых вас просят войти в сеть, то, когда вы не используете беспроводную связь, вы можете просто отключить беспроводную связь, щелкнув по записи Enable Wireless
в меню индикаторов сети.
Добавив больше гибкости к предыдущему ответу @Postadelmaga, я потратил еще больше усилий на печать названия удаляемого SSID. Это добавило трудности: теперь нам нужно избегать возможности того, чтобы имя SSID, содержащее слово «никогда», случайно совпадало с отметкой времени, содержащей «никогда».
Я также создал другую функцию, которая удаляет соединение по имени.
Источники по адресу: 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]* Затем вы можете удалить определенное соединение как показано ниже:
$ nmcli_remove ScalaX
$ nmcli_remove "My WiFi @ Home"
$ nmcli_remove "never drive after you drink"
| \
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"
Вы можете удалить соединения, используя nmcli con delete (CONNECTION_NAME)
Чтобы удалить все соединения, которые никогда не использовались (без необходимости рута)
nmcli --fields UUID,TIMESTAMP-REAL con show | grep never | awk '{print $1}' | while read line; do nmcli con delete uuid $line; done
Удалите все соединения:
nmcli --pretty --fields UUID,TYPE con show | grep wifi | awk "{print $1}" | while read line; do nmcli con delete uuid $line; done