Когда я запускаю echo $ PATH
, дублирующийся вывод snap / bin: / snap / bin появляется в конце и кажется необычным.
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
Это дублирование нежелательно? Если да, то как это можно изменить?
Возможно, в вашем ~ / .bashrc
или в вашем ~ / .profile
есть команда, которая добавляет / snap / bin
в $ PATH
без предварительной проверки, находится ли он все еще в $ PATH
.
Учтите, что повторяющиеся записи в переменной $ PATH
не влияют на выполнение команды, которая находится в вашем $ PATH
. С другой стороны, замедление может присутствовать, когда вы запускаете команду не в $ PATH
(потому что поиск команды выполняется бесполезно два или более раз, когда присутствуют повторяющиеся записи), даже если я думаю, что это трудно заметить это замедление.
Повторяющиеся записи также немного раздражают, когда вы хотите визуально проверить переменную $ PATH
.
Если вы хотите избежать дублирования записей в вашем $ PATH
, вы можете добавить эту команду в свой ~ /.файл профиля
(то есть лучшее место для переменных среды ):
# remove duplicated paths in PATH variable
PATH="$(printf "%s" "$PATH" | awk -v RS=':' '!a[$1]++ {if (NR > 1) printf RS; printf $1}')"
Эта команда использует awk
для идентификации каждого элемента в переменной $ PATH
(они разделены символом :
) и перестроить переменную $ PATH
, избегая повторного добавления дублированных папок. Он также сохраняет исходный вид папок внутри переменной $ PATH
.
Вы можете открыть ~ / .profile
в любом текстовом редакторе. Если вы откроете его с помощью терминала, вам не понадобится sudo
, потому что он принадлежит вашему пользователю.