Я сломал свой PATH, отредактировав мой ~ / .bash_profile, и Bash не распознает большинство команд

15

в .bash_profile я случайно установил путь к:

PATH="~/Tools/apache-maven-3.3.3/bin"

и теперь путь по умолчанию исчез. Ничто в Терминале больше не работает:

Korays-MacBook-Pro:~ koraytugay$ ls
-bash: ls: command not found
Korays-MacBook-Pro:~ koraytugay$ mkdir test
-bash: mkdir: command not found

Я не вижу скрытых файлов в Finder, поэтому я не могу также изменить .bash_profile из Finder.

Как я могу исправить эту ситуацию?

Корай Тугай
источник
1
Это может не работать в системе BSD-ish: попробуйте восстановить путь по умолчанию с помощью PATH=$(getconf PATH), в противном случаеPATH=/bin:/usr/bin
glenn jackman
1
Предложение getconf PATH действительно работает, по крайней мере, 10.10.
calum_b
3
Так как PATH искажен, то предложение Гленна будет работать сPATH=$(/usr/bin/getconf PATH)
fd0

Ответы:

25

Самый простой способ - это восстановить из резервной копии, например, из Time Machine.
Однако, если последняя резервная копия была достаточно длинной, чтобы сохранить другие изменения, вы можете их отредактировать .bash_profile

В терминале

В терминале вы можете использовать полный путь к редакторам (/ usr / bin / emacs / usr / bin / vi или / usr / bin / nano) для редактирования ~ / .bash_profile

например

/usr/bin/nano ~/.bash_profile

Или вы можете открыть его в текстовом редакторе по умолчанию (по умолчанию TextEdit) через:

/usr/bin/open ~/.bash_profile

В графическом интерфейсе - из Dock или Finder

Но вы также можете сделать это из TextEdit (или других редакторов графического интерфейса) путем File-> Open и перейти в свой домашний каталог. В зависимости от того, настроили ли вы в Finder показ всех файлов или не показывать скрытые (по умолчанию), вы увидите либо .bash_profile в списке, либо вы можете нажать ⌘ CMD+ ⇧ SHIFT+, чтобы .открыть скрытые файлы в диалогах открытия / сохранения. (ярлык из этого ответа )

user151019
источник
5
Пользователи, которые не могут самостоятельно решить описанную проблему, вероятно, лучше использовать nanoвместо emacs/ viдля редактирования ~/.bash_profile.
холме
12

Верните минимальный путь

Введите следующую команду, чтобы сбросить минимальный PATH:

PATH=/bin:/usr/bin

Fix ~/.bash_profile

Отредактируйте ваш ~/.bash_profileс вашим предпочитаемым текстовым редактором vi, emacs или TextEdit. Всегда предпочитайте относительную конструкцию PATH:

PATH=${PATH}:...my_personal_added_pathes...
export PATH

Попробуй это

Прежде чем продолжить, как слишком много начинающих, перезапустив сеанс, обнаружите, что они больше не могут запускать оболочку. Проверьте ~/.bash_profile: откройте другое Terminalокно и убедитесь, что оно работает нормально:

. ~/.bash_profile
ls
uptime
date
...
Дан
источник
1
Там нет необходимости exportвашего минимального PATH. Любой процесс, запущенный текущей оболочкой, унаследует минимальный PATH. Хотя я бы использовал export PATHв конфигурационном файле оболочки.
fd0
1
Правильно! Я так привык печатать это так в средах, где есть тестовые сценарии оболочки.
дан
2

я столкнулся с этой ошибкой, и мне нужно преодолеть целый день. ls, git, mkdir и т. д. Команды bash стали недействительными и сообщили об ошибке: «- bash: xx: не удается найти файлы или каталог», потому что я изменил .bash_profile при установке zsh. введите следующую команду, чтобы восстановить ~ / .bash_profile

  1. в терминале Mac введите:

    export PATH=/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  2. вы можете временно использовать команды bash, введите:

    vim ~/.bash_profile
  3. восстановить параметры PATH, изменив

    export PATH=/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
  4. сохраните vim и выйдите, затем введите:

    source ~/.bash_profile

ОК, мой компьютер снова работает!

Юншен Ю
источник
Возможно, стоит добавить, что на шаге 3 нужно быть осторожным, чтобы не уничтожить другой контент в файле.
холме
.bash_profile был уничтожен моими неправильными заказами, ничего не осталось, кроме пустого «export PATH =», так что это единственный способ, которым я должен был вернуть свой mac
Yongsheng Yu
-2
  1. Откройте ваш bash_profile, запустив / usr / bin / vim ~ / .bash_profile. (vim ~ / .bash_profile больше не будет работать, потому что путь неправильный).
  2. Избавьтесь от только что добавленного пути, который все испортил.
  3. Выйдите и перезапустите терминал, чтобы source ~ / .bash_profile запускался автоматически. (Еще раз это не будет работать как есть, потому что путь не верен).
мистифицировать
источник
-5

Откройте ваш .bash_profile, перейдите на строку с вашей командой ошибки и поставьте перед ним символ # в качестве первого символа строки. Перезагрузите (чтобы быть уверенным).

LEXS
источник
Как он открывает свой .bash_profile?
user151019