-bash:__git_ps1:找不到命令

我试图安装Ruby 2.0。 我的命令行被激活,现在看起来像下面这样:

-bash: __git_ps1: command not found [11:58:28][whatever@whatever ~]$ 

我没有一个线索如何摆脱__git_ps1命令找不到错误。 我search了我的.bash_profile和我的.bashrc,看它是否设置了一个variables或者什么也没有看到任何东西。 我能find的唯一的地方是git_ps1在〜/ .dotfiles / .bash_prompt中。 我完全replace该文件的内容,注销并重新login,它不修复任何内容。

我看到这个 ,但是我对命令行很新,所以我只是迷惑了自己。

有任何想法吗?

BASH有一个自动设置提示给你很好的信息的方法。 通过设置PS1环境variables来设置提示。 例如,如果我设置PS1="$ "我的提示将如下所示:

 $ 

没有太多的信息。 我只能说,命令行正在提示我。

但是,如果我设置PS1=\u@\h: \w$ ,我的提示符现在看起来像这样:

 david@vegibank:/usr/bin$ 

这告诉我我是如何login的( \u ),我要login的机器( \h )以及我所在的目录( \w )。 如果我使用git ,那么如果我所在的git分支也是我提示的一部分,那将会很好。

这正是你的.profile ,你的.bashrc文件,你的.bash_login或者你的.bash_profile脚本正在发生的事情。 或者,一些系统pipe理员在/etc/profile做了什么。

有几件事你可以做。 或者:

  • 下载缺less的__git_ps1 ,并确保它在你的$PATH环境variables(这是由上述各种初始化文件的组合设置)
  • 在任何正在执行的初始化文件中更改您的PS1环境variables(我相信它可能是.bash_profile

只需将其添加为最后一行:

 PS1="\u@\h:\w\n$ " 

添加的\n在下面的行上打印美元符号提示,如下所示:

 david@vegibank:/usr/bin $ 

我喜欢这样做,因为提示可能会变得相当长,并且当提示超过30到50个字符时编辑命令行会变得棘手。 否则,这几乎是大多数用户使用的标准提示。 您可以在手册页中看到更多关于设置BASH提示的信息。 (在该页面上search“提示”一词)。

如果您觉得有点混乱,请高兴您不要使用Kornshell。 我使用Kornshell并获得相同的提示PS1=\u@\h:\w\n$ ,我将提示设置为:

 export PS1='$(print -n "`logname`@`hostname`:";if [[ "${PWD#$HOME}" != "$PWD" ]] then; print -n "~${PWD#$HOME}"; else; print -n "$PWD";fi;print "\n$ ")' 

运行以下命令:

 $ curl -L https://raw.github.com/git/git/master/contrib/completion/git-prompt.sh > ~/.bash_git 

并将其添加到~/.bashrc的顶部:

 source ~/.bash_git 

重新login到你的shell,你应该被设置。

在你的系统中search一个git-prompt.sh ,你需要为__git_ps1函数提供__git_ps1函数。 在Arch中,它目前位于/usr/share/git/completion/git-prompt.sh 。 加

 source /path/to/git-prompt.sh 

到一些合适的shell脚本。 如果你不确定在哪里,把它添加到你的~/.bashrc

如果已经locate安装位置,可以使用它来查找git-prompt.sh文件,但是可能需要先以root身份运行updatedb