Як скинути 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

Я не впевнений, що сталося, у мене немає судо, CD або будь-яких нормальних команд. Єдиний спосіб, коли мені вдалося потрапити до будь-якого з основних каталогів, це через команду перейти до папки в пошуку і спробувати знайти файл безрезультатно.

На завершення все, я думаю, що я створив файл, який може викликати проблему, я хотів відредагувати .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.
Gjallar

Дякую, я спробував перевстановити bash, але єдине, що змінилося, це те, що -bash: export: '/Users/rob/Applications/sbt/bin:': not a valid identifierпішло. Єдине, з чим я борюся, це те, що перший рядок може бути збережений, я заглянув у свій .bash_profile, .profile та .bashrc, але нічого.
Strangeone

Добре, так я додав /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin до свого .bash_profile і, здається, виправлений баш, але я все одно отримую цю помилку -bash: export: '/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/go/bin': not a valid identifierБудь-які ідеї?
Strangeone

Чи можете ви спробувати наступне: 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.
Gjallar

Дякую, що, здається, спрацювало. Будь ласка, я можу просто запитати, чому ви думали, що це спрацює?
Стренджене

Відповіді:


12

Просто зібравши всі мої коментарі для відповіді:

Перше, що вам слід зробити, це змінити оболонку, таким чином ви можете встановити оболонку, яка не завантажує bash init-script ( .bashrc, .bash_profile) - як це зробити для термінального додатка Mac OS X, дивіться тут: Apple Support

Тепер ви повинні знову відкрити термінал і скористатися улюбленим редактором командного рядка, щоб відкрити .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 знаходиться у вашому домашньому каталозі (Користувачі / [ім'я користувача] /. bash_profile
Amos

дякую @Lri, врятував мій день!
Vicky_Vignesh

4

Я працював над тією ж проблемою, і я просто знайшов більш просте рішення:

/usr/bin/nano .bash_profile

видаліть увесь безлад, а потім збережіть файл


Найкраща відповідь. Легка та гарантована робота.
nikk wong

3

Я знаю, що це стара тема, але просто хотіла залишити тут своє рішення з надією, що у когось іншого трапиться те саме питання.

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

Я закінчив виправити це за допомогою:

nano ~/.bashrc

Просто видалили шлях, який спричинив помилку. Перезавантажив термінал і зараз все працює нормально.


0

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


-1

Окрім згаданого раніше показу прихованих файлів та використання текстового редактора, є також більш простий спосіб відкрити нову оболонку без зміни вашої оболонки за замовчуванням. Ви можете натиснути клавішу Alt і натиснути "Нова команда ...". Потім введіть "sh" у діалогове вікно та запустіть це. Це відкриє не-bash оболонку, і ви можете там редагувати файл. Надалі було б непогано тримати оболонку відкритою або тестувати запуск нового .bash_profile до виходу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.