J'ai essayé d'installer Ruby 2.0. Ma ligne de commande a urpé et ressemble maintenant à ceci:
-bash: __git_ps1: command not found
[11:58:28][whatever@whatever ~]$
Je n'ai aucune idée de la façon de se débarrasser de l'erreur de commande __git_ps1 introuvable. J'ai recherché mon .bash_profile et mon .bashrc pour voir s'il essaie de définir une variable ou quelque chose et je ne vois rien. Le seul endroit où je peux trouver git_ps1 mentionné est dans ~/.dotfiles/.bash_Prompt. Je remplace complètement le contenu de ce fichier, me déconnecte et me reconnecte et cela ne résout rien.
J'ai vu this , mais je suis assez nouveau en ligne de commande, donc je me suis juste confondu.
Des idées?
BASH a toute une série de façons de configurer 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 informatif. 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 maintenant à ceci:
david@vegibank:/usr/bin$
Cela m'indique comment je suis connecté (le \u
), La machine sur laquelle je me trouve (\h
) Et le répertoire dans lequel je me trouve (le \w
) . Si j'utilise git
, ce serait bien si la branche git dans laquelle je suis fait également partie de mon invite.
C'est exactement ce qui se passe avec votre .profile
, Votre fichier .bashrc
, Votre .bash_login
Ou votre script .bash_profile
. Ou, ce que certains administrateurs système ont fait dans /etc/profile
.
Il y a quelques choses que vous pouvez faire. Non plus:
__git_ps1
Manquant et assurez-vous qu'il se trouve dans votre variable d'environnement $PATH
(Qui est définie par une combinaison des divers fichiers d'initialisation mentionnés ci-dessus)PS1
Dans le fichier d'initialisation en cours d'exécution (je crois que c'est probablement .bash_profile
.Ajoutez simplement ceci comme dernière ligne:
PS1="\u@\h:\w\n$ "
Le \n
Ajouté imprime le signe dollar sur la ligne ci-dessous comme ceci:
david@vegibank:/usr/bin
$
J'aime le faire parce que l'invite peut être assez longue et la modification de la ligne de commande devient délicate lorsque l'invite dépasse 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 configuration des invites BASH dans les pages de manuel . (Recherchez l'invite de mots sur cette page).
Si vous trouvez cela un peu déroutant, soyez content de ne pas utiliser Kornshell. J'utilise Kornshell et pour obtenir la même invite PS1=\u@\h:\w\n$
, J'ai défini mon invite comme suit:
export PS1='$(print -n "`logname`@`hostname`:";if [[ "${PWD#$HOME}" != "$PWD" ]] then; print -n "~${PWD#$HOME}"; else; print -n "$PWD";fi;print "\n$ ")'
Exécutez ce qui suit:
$ curl -L https://raw.github.com/git/git/master/contrib/completion/git-Prompt.sh > ~/.bash_git
Et ajoutez ceci en haut de votre ~/.bashrc
:
source ~/.bash_git
Reconnectez-vous à votre Shell et vous devriez être prêt.
Recherchez dans votre système un git-Prompt.sh
, vous devez source
que pour le __git_ps1
fonction disponible. À Arch, il est actuellement situé au /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 git-Prompt.sh
fichier, mais vous devrez peut-être d'abord exécuter updatedb
en tant que root.
À partir de 2019, la fonction d'aide à l'invite devrait être installée lors de l'installation du package git
et peut être trouvée dans /usr/lib/git-core/git-sh-Prompt
.
S'il n'est pas chargé, installez bash-completion
package et jetez un œil à votre ~/.bashrc
.
Dans mon cas, j'ai dû commenter ceci:
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
et ouvrir un nouveau Shell, et tout allait bien.
La cause première était "bash-complétement" mal configuré en premier lieu lors d'une nouvelle installation.
Citant de /usr/lib/git-core/git-sh-Prompt
:
# This script allows you to see repository status in your Prompt.
#
# To enable:
#
# 1) Copy this file to somewhere (e.g. ~/.git-Prompt.sh).
# 2) Add the following line to your .bashrc/.zshrc:
# source ~/.git-Prompt.sh
# 3a) Change your PS1 to call __git_ps1 as
# command-substitution:
# Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
# ZSH: setopt Prompt_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
# the optional argument will be used as format string.
# 3b) Alternatively, for a slightly faster Prompt, __git_ps1 can
# be used for Prompt_COMMAND in Bash or for precmd() in Zsh
# with two parameters, <pre> and <post>, which are strings
# you would put in $PS1 before and after the status string
# generated by the git-Prompt machinery. e.g.
# Bash: Prompt_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
# will show username, at-sign, Host, colon, cwd, then
# various status string, followed by dollar and SP, as
# your Prompt.
# ZSH: precmd () { __git_ps1 "%n" ":%~$ " "|%s" }
# will show username, pipe, then various status string,
# followed by colon, cwd, dollar and SP, as your Prompt.
# Optionally, you can supply a third argument with a printf
# format string to finetune the output of the branch status
Suivre ces étapes devrait résoudre votre problème !!