-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
。