Как я сбрасываю переменную $PATH на Mac OS X?

Я испортил свою переменную пути и теперь некоторые приложения, что я выполняю ошибочную Команду высказывания повышения, Не Найденную (ошибка 127) для команд как дата и сон. Эти команды хорошо работают при прямом выполнении в оболочке.

Я предполагаю, что это имеет некоторое отношение к уродливой переменной $PATH и потребности знать, как сбросить ее. Я удалил файлы ~/.bashrc, ~/.bash_profile,/etc/bash.bashrc, и ~/.bashrc и ~/.profile.

Что другие файлы могли содержать мой $PATH? Там некоторый более простой путь состоит в том, чтобы сбросить Путь, чем роют в бесчисленные файлы, которые могли содержать мой путь?

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

ОБНОВЛЕНИЕ:Спасибо. я не знаю, какой из файлов, которые я удалил, сделал это, но вещи работают снова. Вы парни сделали то, что не могли 'Эксперты'. И да, Chris, Вы были правы. Настройки ПУТИ, которые я сделал, были в bash_login. Но так или иначе это работало без меня удаляющий те настройки. Я думаю, что это, возможно, было, потому что я использовал этот prefpane под названием 'RCEnvironment', и я ввел путь с кавычками и: ПУТЬ в нем. Я не знаю, берет ли это кавычки, и это не заменяет: $PATH, так, чтобы, вероятно, был корень ошибки. Я забыл, что у меня даже было это prefpane!

17
задан 20.03.2010, 20:21

1 ответ

Если у Вас есть ~/.MacOSX/environment.plist файл, проверьте его, чтобы видеть, обеспечивает ли он значение ПУТИ по умолчанию.

Если это находится в формате XML (plists, может быть во многих форматах), можно отредактировать с любым текстовым редактором. Проверьте его с plutil -lint ~/.MacOSX/environment.plist если Вы редактируете его вручную.

Или, можно использовать команды как значения по умолчанию или PlistBuddy для создания управляемых модификаций к XML или двоичному формату plist файлами.


Можно всегда устанавливать собственный ПУТЬ в любом из файлов инициализации оболочки.

Поместите что-то как следующее в Ваших из файлов запуска Вашей оболочки (.bashrc, или .bash_profile/.bash_login/.profile):

PATH=/usr/bin:/bin:/usr/sbin:/sbin
export PATH

# add custom, local installations to PATH
PATH=/usr/local/bin:/usr/local/sbin:"$PATH"

# add MacPorts to PATH
PATH=/opt/local/bin:/opt/local/sbin:"$PATH"

Это переопределит любой ПУТЬ по умолчанию, установлен, когда оболочка запускается (первое PATH= не использует $PATH, таким образом, это будет всегда начинаться с тем, что Вы даете ему).

Только один из файлов 'входа в систему' будет когда-либо использоваться (первый, который существует и читаем из ~/.bash_profile, ~/.bash_login, и ~/.profile будет использоваться). .profile для назад совместимости с другими оболочками — если Вы используете ее, несомненно, сохраните ее свободной от синтаксиса, который характерен для удара. Если Вы идете с .bash_login или .bash_profile (они функционально эквивалентны за исключением имен), затем используйте строку как [[ -e ~/.bashrc -a -r ~/.bashrc ]] && source ~/.bashrc ]] около вершины так, чтобы оболочки входа в систему также сделали настройки в Вашем .bashrc.

Если Вы хотите, чтобы все экземпляры удара имели тот же ПУТЬ, то используйте .bashrc. Если Вы часто изменяете в интерактивном режиме ПУТЬ единственной оболочки из командной строки и хотите использовать, который изменил ПУТЬ в подоболочках (случаи, который, вероятно, не ужасно распространен), то необходимо поместить операторы в один из файлов 'входа в систему' вместо этого. Выберите только один из файлов входа в систему и используйте его.

19
ответ дан 07.12.2019, 10:38

Теги

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