Как сбросить Bash на Mac OSX, .bash_profile поврежден и bash больше не работает


17

Я использую MacBook Pro с последней версией Mountain Lion.

Мне действительно нужна помощь, мне удалось кое-как повредить мой .bash_profile (я думаю), чтобы каждый раз, когда я открывал терминал, я получал ошибку, указанную ниже.

-bash: export: `/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifier
-bash: export: `/Users/rob/Applications/sbt/bin:': not a valid identifier
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
env: bash: No such file or directory
-bash: tar: command not found
-bash: grep: command not found
-bash: cat: command not found
-bash: find: command not found

Я не уверен, что случилось, у меня нет sudo, cd или каких-либо нормальных команд. Единственный способ, которым я смог добраться до любого из главных каталогов, - это через команду go to folder в Finder и попытаться найти файл безрезультатно.

Чтобы завершить все это, я думаю, что я создал файл, который может быть причиной проблемы, я хотел отредактировать .bash_profile, поэтому я набрал

sudo nano ./bash_profile

Это откроет новый файл в nano, который, я думаю, был затем сохранен. После этого я открыл настоящий .bash_profile, чтобы добавить путь к node.js.

Если я смогу получить доступ к .bash_profile, я думаю, что смогу вернуть его в нужное русло, но не могу его найти, стоит ли переустанавливать bash? Если так, как бы я сделал это на Mac, я попытался с помощью

brew install bash

к которому я добираюсь

-bash: brew: command not found

Первое, что я хотел бы попробовать - это перейти на другую оболочку, чтобы решить проблему: см. Здесь, как это сделать support.apple.com/kb/TA27005 . Это должно позволить вам изменить / удалить поврежденный файл и вернуть оболочку обратно bash.
Гьяллар

Спасибо, я попытался переустановить bash, но единственное, что изменилось, это то, что -bash: export: '/Users/rob/Applications/sbt/bin:': not a valid identifierпрошло. Единственное, с чем я борюсь, это то, что первая строка может быть сохранена, я посмотрел в своих .bash_profile, .profile и .bashrc, но ничего.
Странно,

Итак, я добавил /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/binв свой .bash_profile, и, похоже, он исправил bash, но я все еще получаю эту ошибку. -bash: export: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifierЕсть идеи?
Странно,

Можете ли вы попробовать следующее: PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin:$PATH" # Make sure to use double quotes not single quotesИ на новой линии export PATH.
Гьяллар

Спасибо, похоже, сработало. Пожалуйста, могу я просто спросить, почему ты думал, что это сработает?
Странно,

Ответы:


12

Просто соберу все мои комментарии вместе для ответа:

Первое, что вы должны сделать, это изменить оболочку. Таким образом, вы можете установить оболочку, которая не будет загружать init-скрипты bash ( .bashrc, .bash_profile) - как это сделать для терминального приложения Mac OS X можно посмотреть здесь: Поддержка Apple

Теперь вы сможете снова открыть терминал и использовать свой любимый редактор командной строки, чтобы открыть .bash_profileфайл (например, nanoили vi):

В этом файле вы должны сбросить PATHпеременную, которая используется терминалом, чтобы найти программы, которые он может выполнить.

Это можно сделать с помощью следующих двух строк:

PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH" # Make sure to use double quotes not single quotes And on a new line 
export PATH

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


21

⇧⌘. показывает скрытые файлы в файловых диалогах. Вы можете попробовать открыть ~ / .bash_profile с помощью TextEdit и временно сделать его пустым.


+1 за полезное сочетание клавиш, которого я не знал :)
Мишель

примечание: .bash_profile находится в вашем домашнем каталоге (Users / [имя пользователя] /. bash_profile
Amos

спасибо @Lri, спас мой день!
Vicky_Vignesh

4

Я работал над той же проблемой, и я просто нашел более простое решение:

/usr/bin/nano .bash_profile

удалите все ваши беспорядок, затем сохраните файл


Лучший ответ. Легко и гарантированно работать.
Никк Вонг

3

Я знаю, что это старая ветка, но я просто хотел оставить здесь свое решение в надежде, что у кого-то случится та же проблема.

Когда я запускал терминал из MacOS, все было в порядке с моим собственным пользователем, но когда меняли на sudo, он не мог работать (команда не найдена).

Я закончил тем, что исправил это:

nano ~/.bashrc

Просто удалили путь, который вызывал ошибку. Перезапустил терминал и теперь все работает нормально.


0

Недавно я обнаружил, что файлы стиля DOS вызывают проблемы для обоих скриптов .bash * в OS-X. Я должен использовать окончания файлов DOS для некоторого кода, которым делятся пользователи Windows, поэтому, если я редактирую .bash_profile во время этого git-репо, я получаю много сообщений об ошибках при запуске скрипта (при входе в систему). Утилита dos2unix исправила это.


-1

В дополнение к ранее упомянутому отображению скрытых файлов и использованию текстового редактора, существует также более простой способ открыть новую оболочку без изменения оболочки по умолчанию. Вы можете щелкнуть Alt клик по приложению Terminal и выбрать «New Command ...». Затем введите «sh» в диалоговом окне и запустите его. Это откроет оболочку не-bash, и вы сможете отредактировать файл там. В будущем было бы неплохо оставить оболочку открытой или протестировать запуск нового .bash_profile до выхода.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.