Если вы делаете это в графическом сеансе X (что вполне вероятно), вы можете просто закрыть окно терминала и открыть новое. Поскольку изменение в $ PATH не продвигается в родительский процесс, новый сеанс терминала унаследует правильное значение для $ PATH от своего родительского процесса, а bash применит любую дополнительную настройку из конфигурации на диске.
Если вы не работаете в сеансе X, то, вероятно , самое простое решение - просто выйти из системы и снова войти в нее . Если вы не внесли изменения в файлы профиля bashrc или bash, это восстановит ваше стандартное значение $ PATH.
Если по какой-то причине у вас возникают трудности с выходом из системы, вы можете в командной строке bash просто нажать Ctrl+C, чтобы указать оболочке игнорировать любой ввод в текущей командной строке, а затем Ctrl+D. Последний отправляет сигнал об окончании файла в оболочку, что приводит к его выходу. Если ваша оболочка входа в систему завершена, вы вернетесь к приглашению входа и сможете снова войти в систему.
Если вы не используете X и не можете выйти из системы сейчас, вы можете запустить новую оболочку входа в систему, которая настроит свою собственную копию среды, включая $ PATH. Это может быть полезно, если вы находитесь в середине чего-то и хотите добраться до точки, где вы можете чисто выйти, а затем продолжить. Для этого вам нужно запустить bash с параметром --login
(или -l
). Поскольку bash не будет в вашем $ PATH, вам нужно указать полный путь к нему. К счастью, это довольно просто, потому что почти в каждой современной системе, в которой установлен bash, она будет находиться в /bin /bash, поэтому мы знаем, где искать.
- Сначала запустите
exec /bin/bash --login
. Это заменит вашу текущую оболочку новой, которая будет иметь в основном правильную среду. Однако возможно, что ваши сценарии запуска bash полагаются на вещи, которые недоступны, потому что $ PATH пуст. Если это так, очень вероятно, что они напечатают несколько (или много) ошибок.
- Чтобы обойти это, просто
exec /bin/bash --login
снова. Это должно выполняться в среде, где $ PATH установлен правильно, поэтому сценарии запуска bash смогут запускать то, что им нужно. Результатом будет правильно настроенный экземпляр оболочки.
На самом деле вам не нужно использовать exec
, но это удобно, потому что это вызывает замену существующей оболочки на новую, а не просто запуск нового экземпляра в качестве подпроцесса. Если вы не используете exec в этой ситуации, то при выходе из последней запущенной оболочки вы вернетесь в неисправный экземпляр.