我将无效路径放入bashrc
,现在我的终端无法正常工作。我已删除了bash_profile
以及bashrc
,但我仍然无法将其付诸实施。
我在终端中使用的每个命令都给出了错误:
sh:parse_git_branch:找不到命令
这是我在bash_profile
中使用git自动完成功能的内容。问题是,一旦我使用/bin/rm <file>
删除了文件,我无法对source ~/.bash_profile
应用我的更改,因为它会给我错误。我查看了this question和this question,但我仍然没有运气。
如何在破坏此类内容后修复命令行?
答案 0 :(得分:2)
您可以使用类似于:
的命令在当前会话中导出正确的PATH export PATH=/usr/local/bin:/usr/bin:/bin
使用此功能后,您应该能够获取bashrc。
答案 1 :(得分:0)
您可以随时在命令行上为当前shell会话的其余部分更改路径:PATH="/usr/local/bin:/usr/sbin:/usr/bin:/bin:/sbin:"
导出PATH不会解决您的问题。它只会将PATH的值导出到子shell /进程。这只能实现与从命令行重置/更改PATH变量相同的功能(如上所示),因为当您在该shell环境中工作时,范围仅限于当前shell进程(及其子进程)(从命令行)。 如果你打开一个新终端(启动一个新的登录shell,这是一个父进程),bash仍然会尝试读取资源文件(.bash_profile和.bashrc),不再存在。
因此,我们需要能够拓宽我们的范围并告诉bash我们要对所有未来的bashes(shell进程 - shell中的shell,shell中的shell等)进行更改,并且完成的方法是通过在资源文件中编写这些语句。
在那里设置PATH之后,每个shell会话都将生成这些资源(所有别名,命令,变量和存储在这些文件中的函数),无论是否导出它们,都会加载,因为每个shell进程在它做任何其他事情之前总是会查阅这些文件(因此它们会有效地预先导入您要导出的文件)。
bash就像任何其他脚本或程序一样。你带走了所有的输入,指针和快捷方式,现在它已经变得非常愚蠢了,所以你必须明确你所做的一切,直到你可以教它在哪里寻找东西(给它一个路径搜索)并缩短与您的对话。
如果您没有备份.bash_profile,可以使用以下网址:
# This loads in the configuration in .bashrc
# Put all configuration in there!
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
这是一个可以帮助你开始的.bashrc:
export PATH="/bin:/sbin:/usr/local/bin:/usr/bin:/usr/sbin:"