71

Ruby2.0をインストールしてみました。私のコマンドラインは急上昇し、次のようになりました。

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

__git_ps1コマンドが見つからないというエラーを取り除く方法がわかりません。.bash_profileと.bashrcを検索して、変数などを設定しようとしていて、何も表示されていないかどうかを確認しました。言及されているgit_ps1を見つけることができる唯一の場所は、〜/ .dotfiles/.bash_promptです。そのファイルの内容を完全に置き換え、ログアウトして再度ログインしても、何も修正されません。

私はこれを見ましが、コマンドラインにかなり慣れていないので、混乱しました。

何か案は?

4

6 に答える 6

132

以下を実行します。

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

そして、これをあなたの一番上に追加してください~/.bashrc

source ~/.bash_git

シェルに再ログインすると、設定が完了します。

于 2013-03-13T22:59:33.060 に答える
54

システムで を検索します。機能を利用するには、その検索git-prompt.shが必要です。Arch では、現在 にあります。追加source__git_ps1/usr/share/git/completion/git-prompt.sh

source /path/to/git-prompt.sh

適切なシェルスクリプトに。どこにあるのかわからない場合は、 に追加してください~/.bashrc

インストールしている場合はlocate、それを使用してファイルを見つけることができますが、最初にルートとしてgit-prompt.sh実行する必要がある場合があります。updatedb

于 2013-07-07T01:08:06.997 に答える
31

BASH には、プロンプトを自動的に設定して適切な情報を提供する方法が多数あります。PS1環境変数を設定して、プロンプトを設定します。たとえばPS1="$ "、プロンプトを次のように設定すると、次のようになります。

$ 

あまり有益ではありません。私が言えることは、コマンド ラインが私にプロンプ​​トを表示していることだけです。

ただし、 を設定PS1=\u@\h: \w$すると、プロンプトは次のようになります。

david@vegibank:/usr/bin$ 

これにより、ログイン方法 ( \u)、使用しているマシン ( \h)、現在のディレクトリ( ) がわかります\w。を使用するgit場合、現在の git ブランチもプロンプトの一部になっているとよいでしょう。

これはまさに、ファイル、ファイル、またはスクリプトで起こって.profileいる.bashrcこと.bash_loginです.bash_profile。または、一部のシステム管理者が/etc/profile.

できることがいくつかあります。また:

  • 不足しているファイルをダウンロードし、環境変数にある__git_ps1ことを確認し$PATHます (上記のさまざまな初期化ファイルの組み合わせによって設定されます)。
  • 実行中の初期化ファイルで環境変数を変更しますPS1(おそらく.bash_profile.

これを最後の行として追加するだけです:

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

追加\nすると、下の行にドル記号プロンプトが次のように出力されます。

david@vegibank:/usr/bin
$ 

プロンプトがかなり長くなる可能性があり、プロンプトが 30 ~ 50 文字を超えるとコマンド ラインの編集が難しくなるため、私はこれを行うのが好きです。それ以外の場合は、ほとんどのユーザーが使用する標準的なプロンプトです。BASH プロンプトの設定の詳細については、マニュアル ページを参照してください。(そのページで Prompting という単語を検索してください)。

少しわかりにくい場合は、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$ ")'
于 2013-03-14T04:21:24.040 に答える