У меня сейчас довольно большая проблема, я пытался установить PATH для файла python, но я сделал это неправильно и, казалось бы, нарушил все команды в debian.

Что я получаю, когда набираю любую команду:

-bash: "command": No such file or directory

Я думаю, что это могло произойти, когда я просто набрал «PATH =» без знака после знака равенства. Как я могу сбросить это?

1 ответ1

2

Если вы делаете это в графическом сеансе 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 в этой ситуации, то при выходе из последней запущенной оболочки вы вернетесь в неисправный экземпляр.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .