17

Я испортил свою переменную пути, и теперь некоторые приложения, которые я запускаю, вызывают ошибки, говорящие о Command Not Found (ошибка 127) для таких команд, как date и sleep. Эти команды прекрасно работают, когда выполняются непосредственно в оболочке.

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

Какие другие файлы могут содержать мой $ PATH? Есть ли какой-нибудь более простой способ сбросить путь, чем копаться в бесчисленных файлах, которые могут содержать мой путь?

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

ОБНОВЛЕНИЕ: Спасибо. Я не знаю, какой из удаленных файлов сделал это, но все снова работает. Вы, ребята, сделали то, что «Эксперты» не смогли. И да, Крис, ты был прав. Настройки PATH, которые я сделал, были в bash_login. Но так или иначе это работало без того, чтобы я удалил те настройки. Я думаю, возможно, потому что я использовал эту предварительную панель под названием «RCEnvironment», и я ввел путь с кавычками и: PATH в нем. Я не знаю, принимает ли он кавычки, и он не заменяет: $ PATH, так что, вероятно, это корень ошибки. Я забыл, что у меня даже был этот preppane!

4 ответа4

18

Если у вас есть ~/.Файл MacOSX/environment.plist, проверьте его, чтобы увидеть, предоставляет ли он значение PATH по умолчанию.

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

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


Вы всегда можете установить свой собственный PATH в любом из файлов инициализации вашей оболочки.

Поместите что-то вроде следующего в ваши файлы запуска вашей оболочки (.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= не использует $PATH , поэтому он всегда будет начинаться только с того, что вы ему дадите).

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

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

6

1.Откройте свой терминал

2.Во-первых, вы можете просто проверить свой текущий $PATH , набрать

echo $ PATH

до терминала

3.Если $PATH который вернул терминал, - это путь, который вы хотите, значит, вы хороши; если нет, введите

экспорт PATH =/usr/bin:/bin:/usr/sbin:/sbin

затем введите

коснитесь ~/.bash_profile

, а затем введите

открыть ~/.bash_profile

, затем вы найдете открываемый EditText, теперь введите желаемый путь в этом EditText; Например, введите

PATH =/ USR / бен:/ бен:/ USR / SBIN:/ SBIN

(который является $PATH по умолчанию для Mac, учитывая, что вы хотите сбросить $PATH поэтому вам, вероятно, следует набрать его), сохраните его, закройте EditText, затем закройте Terminal.

4.Теперь вы уже изменили свой $PATH или сбросили $PATH по умолчанию для Mac!

1

Изменения rc/profile Криса Джонсона, показанные также, отлично работают в /etc/profile .

Я только что добавил:

export PATH="/usr/local/mariadb/bin:$PATH"

в мой файл /etc/profile в Mac OS X 10.9 Mavericks, чтобы завершить установку MariaDB (которая отлично подходит для замены MySQL).

0

Если вы используете ZSH - переменная пути, к счастью, восстанавливается при перезагрузке терминальной сессии.

https://github.com/robbyrussell/oh-my-zsh

https://www.iterm2.com/

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