我通过编辑〜/ .bash_profile破坏了PATH,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中看不到隐藏文件,因此也无法从Finder修改.bash_profile。

我该如何解决这种情况?


1
这在BSD-ish系统上可能无法正常工作:尝试使用还原默认路径PATH=$(getconf PATH),否则可以这样做PATH=/bin:/usr/bin
glenn jackman 2015年

1
实际上,“ getconf PATH”建议确实可以正常工作,至少在10.10上有效。
calum_b 2015年

3
由于PATH已被破坏,因此glenn的建议将适用于PATH=$(/usr/bin/getconf PATH)
fd0

Answers:


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

在GUI中-从Dock或Finder

但是您也可以通过File-> Open从TextEdit(或其他GUI编辑器)执行此操作,然后转到您的主目录。根据您是否已将Finder设置为显示所有文件或不显示隐藏文件(默认),您将在列表中看到.bash_profile,也可以单击⌘ CMD+ ⇧ SHIFT+ .在“打开/保存”对话框中显示隐藏文件。(快捷方式来自此答案


5
不能自己解决所述问题的用户可能最好使用nano代替emacs/ vi进行编辑~/.bash_profile
nohillside

12

带回最小路径

输入以下命令以重置最小路径:

PATH=/bin:/usr/bin

固定 ~/.bash_profile

编辑您~/.bash_profile与您的参访文本编辑器viemacsTextEdit。总是喜欢相对的PATH构造:

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

测试一下

在像许多初学者一样通过重新启动会话进行操作之前,发现他们再也无法启动Shell。测试您的~/.bash_profile:打开另一个Terminal窗口,并检查它是否工作正常:

. ~/.bash_profile
ls
uptime
date
...

1
不需要export您的最低要求PATH。当前shell启动的任何进程都将继承minimal PATH。虽然,我会export PATH在外壳配置文件中使用。
fd0

1
对!我很习惯在需要测试shell脚本的环境中以这种方式键入它。
2013年

2

我遇到了这个错误,这使我花了整个下午才能克服。ls,git,mkdir等。bash命令变得无效并报告错误:“-bash:xx:找不到文件或目录”,因为我在安装zsh时修改了.bash_profile。输入以下命令来还原您的〜/ .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步中需要注意不要破坏文件中的其他内容。
nohillside

.bash_profile被我不正确的命令破坏了,除了空的“ export PATH =”之外,什么都没有剩下,所以这是我不得不重新备份我的mac的唯一方法
Yongsheng Yu

-2
  1. 通过运行/ usr / bin / vim〜/ .bash_profile打开您的bash_profile。(vim〜/ .bash_profile将不再起作用,因为路径不正确)。
  2. 摆脱刚才添加的路径,使所有内容混乱。
  3. 退出并重新启动终端,以使源〜/ .bash_profile自动运行。(由于路径不正确,它再次无法按原样工作)。

-5

打开您的.bash_profile,使用错误命令转到该行,并在其前面添加#作为该行的第一个字符。重新启动(确定)。


他如何打开他的.bash_profile?
user151019 2015年
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.