Я пытался добавить что-то в $ PATH, и все пошло не так. Теперь я не могу запустить какие-либо команды, такие как ls . Я посмотрел на этот ответ (https://apple.stackexchange.com/questions/11745/reset-your-path-variable) и использовал следующие строки:

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

PATH=$PATH:~/bin

Эти строки решают проблему временно; однако, когда я перезагружаю терминал, кажется, что эти изменения забываются.

Как мне навсегда сбросить мой $ PATH?

Я использую самую последнюю версию Mountain Lion.

Спасибо

2 ответа2

2

Очевидно, у вас есть где-то неправильно отформатированная строка в одном из ваших файлов конфигурации оболочки, которые читаются, когда Терминал запускает Bash. Это либо .profile либо .bash_profile , в зависимости от того, что вы использовали. В OS X .bashrc не читается, если вы явно не получили его из одного из этих других файлов.

Чтобы иметь возможность использовать команды без установки $PATH , просто вызовите их по их полному расположению.

Если вы знаете, что в нужных вам файлах больше ничего нет, удалите их:

/bin/rm ~/.bash_profile
/bin/rm ~/.profile

Если нет, откройте их, например, в TextEdit и удалите ошибочные строки с помощью PATH=:

/usr/bin/open -a TextEdit ~/.bash_profile
/usr/bin/open -a TextEdit ~/.profile

Если вы хотите использовать редактор командной строки, вы можете сделать это также:

/usr/bin/vim ~/.bash_profile
/usr/bin/nano ~/.bash_profile
# et cetera
0

Об этом также спрашивали на Apple StackExchange, и принятый ответ здесь опасен.

Вместо того, чтобы просто удалять .bash_profile лучше сделать, как предлагают комментаторы, и исправить определение PATH. Проблема в том, что вы сначала определили его с нуля, переписав все предыдущие определения (в том числе, где найти ls и другие).

Вы определяете путь в .bash_profile, устанавливая новую переменную, равную старой (читается с $ PATH) плюс то, что вы хотите добавить:

export PATH=$PATH:$HOME/myspecialfolder:$HOME/bin

Обратите внимание, что по обе стороны от знака равенства не должно быть пробелов. Я также пропускаю {} , что может понадобиться, если в именах папок есть пробелы.

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