Моя переменная $ PATH испорчена. Как вернуть обратно?

Всякий раз, когда я пытаюсь выполнить базовые команды в терминале, такие как sudo или ls, я получаю эту ошибку:

Команда 'sudo' доступна в '/ usr / bin / sudo'. команда не может быть найдена, потому что / usr / bin не включен в переменную окружения PATH. sudo: команда не найдена

Когда я набираю echo $PATH, возвращается

/ Downloads / установка stata / stata15: / Downloads / stata

Я подозреваю, что перепутал переменную $PATH при попытке установить Stata.

Я попытался export PATH="/usr/bin:$PATH", который временно исправляет проблему (из этот ответ ). Затем, когда я делаю echo $PATH, он возвращает

/ usr / bin: / Downloads / установка stata / stata15: / Downloads / stata

Но это исправление временно и когда я перезагружаю терминал, я не могу снова использовать sudo.


Этот другой ответ говорит, что я могу сделать постоянное исправление:

Сначала я сделал export PATH=$PATH:/usr/bin, и это снова временно устраняет проблему. Когда я делаю echo $PATH, он возвращает

/ Downloads / stata installation / stata15: / Downloads / stata: / usr / bin

Тогда я должен быть в состоянии сделать его постоянным, отредактировав файл /etc/environment с помощью sudo nano /etc/environment и убедившись, что это

PATH = "/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / usr / games: / usr / local / games "

Когда я открываю файл /etc/environment, он уже имеет такой точный путь, поэтому ничего не изменилось. Поэтому, когда я перезагружаю терминал, основные команды, такие как sudo, все еще не работают, и мне приходится снова делать временное исправление.

Я подозреваю, что файл /etc/environment не является проблемой, и есть другой файл, который мне нужно изменить. Вы знаете, как это исправить?

0
задан 29 July 2019 в 19:20

1 ответ

Как постоянно измениться $PATH переменная?

На подобный вопрос ответили прежде в том, Как добавить каталог к ПУТИ?

Где внести изменение?

$PATH может быть изменен на различных уровнях и для различных ситуаций. На глобальном уровне $PATH хранится в /etc/environment. Изменение этого изменит набор $PATH по умолчанию для всех пользователей компьютера.

Персонализированные пользовательские изменения могут быть сделаны в трех местах на основе потребности.

  1. Для изменения пути всех сессий входа в систему изменяют путь в /home/$USER/.profile.
  2. Для изменения в ударе окружают сессии, которые открыты после входа в систему, такого как окно терминала, изменяют путь в /home/$USER/.bashrc.
  3. Для изменения на сессиях GUI, которые могут быть открыты, после, вход в систему, такой как удаленная оболочка графического пользовательского интерфейса, изменяет путь в /home/$USER/.xsessionrc.

Как внести изменение?

Обычно Вы добавляете новый Оператор путей или команду экспорта как:

PATH="/path/to/dir:$PATH"

или

export PATH="/path/to/dir:$PATH"

Обратите внимание, что эти операторы используют переменную $PATH на правой стороне. Этот особенный метод от добавления нового каталога к $PATH добавляет новый каталог в начале существующей переменной $PATH.

Конкретный случай в вопросе

Ищите файлы, упомянул выше:

  • /etc/environment
  • /home/$USER/.profile
  • /home/$USER/.bashrc
  • /home/$USER/.xsessionrc

найти точно, где $PATH был изменен неправильной установкой программного обеспечения Stata. В этом модификации корпуса, где сделано в /home/$USER/.bashrc.

Из комментариев, три export операторы были добавлены к /home/$USER/.bashrc:

export PATH=/Downloads/stata\ installation/stata:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
export PATH=/Downloads/stata\ installation/stata15:/Downloads/stata installation/stata

Первое export оператор добавляет /Downloads/stata\ installation/stata в начале $PATH по умолчанию. Второе export оператор сбрасывает $PATH к набору по умолчанию для каталогов. Второе export попытки оператора устанавливают $PATH на некоторые каталоги Stata, но пропускает символ ESC \ перед пространством и портит /Downloads/stata installation/stata как только /Downloads/stata

Так как Stata не установлен в этом компьютере, Вам не нужна ни одна из этих модификаций. Можно прокомментировать все операторы экспорта как:

#export PATH=/Downloads/stata\ installation/stata:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
#export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
#export PATH=/Downloads/stata\ installation/stata15:/Downloads/stata installation/stata

Отметьте вставку # в начале каждой строки отмечает их как комментарии. Если все работает после комментария их export команды, можно удалить их из .bashrc файл.

Комментирование или удаление этих трех строк будут Ваша сессия удара без них настройка переменных $PATH. Вы будете использовать значения по умолчанию, начинаются /etc/environment.

Надеюсь, это поможет

0
ответ дан 23 October 2019 в 08:37

Другие вопросы по тегам:

Похожие вопросы: