如何在Mac OSX上重置Bash,.bash_profile损坏并且bash不再起作用


17

我正在运行最新版本的Mountain Lion的MacBook Pro上。

我真的需要一些帮助,我已经设法解决了一些如何损坏.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或任何普通命令。我能够进入任何主目录的唯一方法是通过finder中的go to folder命令并尝试查找该文件无济于事。

最重要的是,我想我创建了一个可能导致此问题的文件,我想编辑.bash_profile,因此输入

sudo nano ./bash_profile

这会在nano中打开一个新文件,然后我认为该文件已保存。之后,我打开了真正的.bash_profile,以添加node.js的路径。

如果我可以进入.bash_profile,我想我可以使其恢复正常,但找不到,我应该重新安装bash吗?如果是这样,我将如何在Mac上执行此操作,我尝试使用

brew install bash

我得到了

-bash: brew: command not found

我要尝试的第一件事是更改为其他Shell以解决问题:请参阅此处,了解如何执行support.apple.com/kb/TA27005。这应该使您能够修改/删除有问题的文件,并将Shell更改回bash
Gjallar

谢谢,我已经尝试过重新安装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
Gjallar 2012年

谢谢,这似乎奏效了。请问您为什么认为这行得通?
斯特朗托妮

Answers:


12

只需将我的所有评论汇总即可得到答案:

您应该做的第一件事就是更改外壳,用这种方法您可以设置一个不会加载bash初始化脚本(.bashrc.bash_profile)的外壳-如何在Mac OS X终端应用程序中执行此操作:Apple支持

现在,您应该可以再次打开终端,并使用自己喜欢的命令行编辑器打开.bash_profile文件(例如nanovi):

在此文件中,您必须重置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,以使其可用于从该Shell启动的所有程序(通过导出)。


21

⇧⌘。在文件对话框中显示隐藏的文件。您可以尝试使用TextEdit打开〜/ .bash_profile并将其暂时设为空白。


+1是我不知道的有用的键盘快捷键:)
Michel

注意:.bash_profile位于您的主目录(Users / [用户名] /。bash_profile
Amos

谢谢@Lri,保存我的一天!
Vicky_Vignesh


3

我知道这是一个旧线程,但只是想将我的解决方案留在这里,希望其他人碰巧也遇到同样的问题。

当我从MacOS运行终端时,我自己的用户可以正常使用,但是当更改为sudo时,它将无法工作(找不到命令)。

我最终用以下方法修复了它:

nano ~/.bashrc

只是删除了导致错误的路径。重新启动终端,现在一切正常。


0

我最近发现DOS样式文件导致OS-X中的两个.bash *脚本均出现问题。我必须将DOS文件结尾用于与Windows用户共享的某些代码,因此,如果我在该git repo中编辑.bash_profile,则在运行脚本(登录时)时会收到很多错误消息。实用程序dos2unix对其进行了修复。


-1

除了前面提到的显示隐藏文件和使用文本编辑器外,还有一种更简便的方法可以打开新的Shell,而无需更改默认Shell。您可以按住Alt键并单击“终端”应用程序,然后选择“新建命令...”。然后在对话框中键入“ sh”并运行它。这将打开一个非bash shell,您可以在那里编辑文件。将来最好在退出前保持外壳打开或测试运行新的.bash_profile。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.