- bash: git ps1: commande introuvable

j'ai essayé D'installer Ruby 2.0. Ma Ligne de commande a dérapé et ressemble maintenant à ce qui suit:

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

Je ne sais pas comment me débarrasser de la commande __git_ps1 erreur non trouvée. J'ai cherché mon .bash_profile et mon .bashrc pour voir si elle essaye de définir une variable ou quelque chose et ne voit rien. Le seul endroit où je peux trouver git_ps1 mentionné dans ~/.fichiers de configuration utilisateur/.bash_prompt. - Je remplacer le contenu de ce fichier complètement, déconnectez puis reconnectez-vous et il résout rien.

j'ai vu ce , mais je suis assez nouveau en ligne de commande donc je me suis juste embrouillé.

des idées?

43
demandé sur Community 2013-03-13 15:28:28

3 réponses

BASH a tout un tas de façons de régler automatiquement votre invite pour vous donner de belles informations. Vous définissez l'invite en définissant la variable d'environnement PS1 . Par exemple, si je mets PS1="$ " mon invite ressemblera à ceci:

$ 

pas trop instructif. Tout ce que je peux dire c'est que la ligne de commande m'invite.

cependant, si je mets PS1=\u@\h: \w$ , mon invite ressemblera à ceci:

david@vegibank:/usr/bin$ 

qui me dit comment je suis connecté (le \u ), la machine sur laquelle je suis (le \h ), et le répertoire dans lequel je suis (le \w ). Si j'utilise git , ce serait bien que la branche git dans laquelle je suis fasse aussi partie de mon prompt.

C'est exactement ce qui se passe avec votre fichier .profile , votre fichier .bashrc , votre script .bash_login ou .bash_profile . Ou, ce qu'un administrateur système a fait dans /etc/profile .

Il y sont un couple de choses que vous pouvez faire. Soit:

  • Téléchargez le manquant __git_ps1 et assurez-vous qu'il est dans votre $PATH variable d'environnement (qui est défini par une combinaison des différents fichiers d'initialisation mentionnés ci-dessus)
  • changez votre variable d'environnement PS1 dans n'importe quel fichier d'initialisation en cours d'exécution (je crois que c'est probablement .bash_profile .

dernière ligne:

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

\n imprime l'invite de signe dollar sur la ligne ci-dessous comme ceci:

david@vegibank:/usr/bin
$ 

j'aime faire cela parce que l'invite peut être assez longue et éditer la ligne de commande devient délicat quand l'invite est plus longue que 30 à 50 caractères. Sinon, c'est à peu près l'invite standard que la plupart des utilisateurs utilisent. Vous pouvez en savoir plus sur la mise en place des invites de BASH dans les man pages . (Cherchez le mot "incitation" sur cette page).

si vous le trouvez un peu confus, soyez heureux de ne pas utiliser Kornshell. J'utilise Kornshell et pour obtenir le même message PS1=\u@\h:\w\n$ , j'ai mis mon invite:

export PS1='$(print -n "`logname`@`hostname`:";if [[ "${PWD#$HOME}" != "$PWD" ]] then; print -n "~${PWD#$HOME}"; else; print -n "$PWD";fi;print "\n$ ")'
17
répondu David W. 2013-07-26 06:33:55

exécutez ce qui suit:

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

et ajoutez ceci au haut de votre ~/.bashrc :

source ~/.bash_git

re-connectez-vous à votre shell et vous devriez être défini.

105
répondu Blake 2014-10-22 23:02:56

rechercher votre système pour un git-prompt.sh , vous devez source que pour la fonction __git_ps1 être disponible. Dans Arch, il est actuellement situé à /usr/share/git/completion/git-prompt.sh . Ajouter

source /path/to/git-prompt.sh

à un script shell approprié. Si vous ne savez pas où, ajoutez-le à votre ~/.bashrc .

si vous avez locate installé, vous pouvez l'utiliser pour trouver le fichier git-prompt.sh , mais vous devrez peut-être exécuter updatedb comme root en premier.

32
répondu Emil Lundberg 2013-07-07 01:08:06