- bash: git ps1: comando no encontrado


Intenté instalar Ruby 2.0. Mi línea de comandos urped y ahora se ve así:

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

No tengo ni idea de cómo deshacerse del error __git_ps1 comando no encontrado. He buscado en mi .bash_profile y mi .bashrc para ver si está tratando de establecer una variable o algo y no estoy viendo nada. El único lugar donde puedo encontrar git_ps1 mencionado es en~/.dotfiles/.bash_prompt. Remplazo el contenido de ese archivo por completo, cierro la sesión y vuelvo a iniciar sesión y no arregla nada.

I vi esto , pero soy bastante nuevo en la línea de comandos, así que me confundí.

¿Alguna idea?

Author: Community, 2013-03-13

3 answers

BASH tiene una gran cantidad de formas de configurar automáticamente su solicitud para darle información agradable. Puede configurar el prompt configurando la variable de entorno PS1. Por ejemplo, si establezco PS1="$ " mi mensaje se verá así:

$ 

No demasiado informativo. Todo lo que puedo decir es que la línea de comandos me solicita.

Sin embargo, si establezco PS1=\u@\h: \w$, mi mensaje ahora se verá así:

david@vegibank:/usr/bin$ 

Que me dice cómo estoy conectado (el \u), la máquina en la que estoy (\h), y el directorio en el que estoy (el \w). Si utilizo git, sería bueno que la rama de git en la que estoy también sea parte de mi solicitud.

Esto es exactamente lo que está pasando con su .profile, su archivo .bashrc, su .bash_login o su script .bash_profile. O, lo que algún administrador del sistema hizo en /etc/profile.

Hay un par de cosas que puedes hacer. O bien:

  • Descargue la falta __git_ps1 y asegúrese de que está en su variable de entorno $PATH (que se establece mediante una combinación de los archivos de inicialización mencionados anteriormente)
  • Cambie su variable de entorno PS1 en cualquier archivo de inicialización que se esté ejecutando (creo que probablemente sea .bash_profile.

Simplemente agregue esto como la última línea:

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

El agregado \n imprime el símbolo del dólar en la línea de abajo de esta manera:

david@vegibank:/usr/bin
$ 

Me gusta hacer eso porque el prompt puede ser bastante largo y editar la línea de comandos se vuelve complicado cuando el prompt es más largo de 30 a 50 caracteres. De lo contrario, es más o menos el indicador estándar que la mayoría de los usuarios utilizan. Puede ver más sobre la configuración de las indicaciones de BASH en las páginas de manual . (Busque la palabra que se solicita en esa página).

Si lo encuentras un poco confuso, alégrate de no usar Kornshell. Yo uso Kornshell y para obtener el mismo prompt PS1=\u@\h:\w\n$ lo hace, establezco mi prompt como:

export PS1='$(print -n "`logname`@`hostname`:";if [[ "${PWD#$HOME}" != "$PWD" ]] then; print -n "~${PWD#$HOME}"; else; print -n "$PWD";fi;print "\n$ ")'
 17
Author: David W.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-26 06:33:55

Ejecute lo siguiente:

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

Y añadir esto a la parte superior de su ~/.bashrc:

source ~/.bash_git

Vuelva a iniciar sesión en su shell y debería estar configurado.

 105
Author: Blake,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-22 23:02:56

Busque en su sistema un git-prompt.sh, necesita source que para que la función __git_ps1 esté disponible. En Arch, se encuentra actualmente en /usr/share/git/completion/git-prompt.sh. Añadir

source /path/to/git-prompt.sh

A algún script de shell adecuado. Si no está seguro de dónde, agréguelo a su ~/.bashrc.

Si tiene instalado locate, puede usarlo para encontrar el archivo git-prompt.sh, pero es posible que deba ejecutar updatedb como root primero.

 32
Author: Emil Lundberg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-07 01:08:06