- bash: git ps1: команда не найдена

Я попытался установить Ruby 2.0. Моя командная строка urped и теперь выглядит следующим образом:

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

Я не знаю, как избавиться от команды __в Git_PS1 на Ошибка. Я обыскал свой .bash_profile и мой .bashrc, чтобы увидеть, пытается ли он установить переменную или что-то еще, и ничего не видит. Единственное место, где я могу найти git_ps1, упоминается в~/.dotfiles/.bash_prompt. Я полностью заменяю содержимое этого файла, выхожу из системы и снова вхожу в систему, и он исправляет ничего.

Я видел этой, но я довольно новичок в командной строке, поэтому я просто запутался.

какие идеи?

3 ответов


BASH имеет целый ряд способов автоматической настройки вашего приглашения, чтобы дать вам хорошую информацию. Вы устанавливаете приглашение, задав PS1 переменные среды. Например, если я установил PS1="$ " моя подсказка будет выглядеть так:

$ 

не слишком информативным. Все, что я могу сказать, это то, что командная строка подсказывает мне.

однако, если я установлю PS1=\u@\h: \w$ мой запрос теперь будет выглядеть так:

david@vegibank:/usr/bin$ 

это говорит мне, как я вошел в систему (the \u), машина, на которой я нахожусь (\h), и каталог, в котором я нахожусь (\w). Если я использую git, было бы неплохо, если ветка git, в которой я нахожусь, также является частью моей подсказки.

это именно то, что происходит с вашим .profile ваш ваш .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 в man pages. (Найдите слово Prompting на этой странице).

если вы находите это немного запутанным, радуйтесь, что вы не используете Kornshell. Я использую Kornshell и получаю ту же подсказку PS1=\u@\h:\w\n$ нет, я подскажу as:

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

повторно войти в свою оболочку, и вы должны быть установлены.


поиск вашей системы для git-prompt.sh нужно source, что для __git_ps1 функция, котор нужно быть имеющимся. В Arch он в настоящее время находится по адресу /usr/share/git/completion/git-prompt.sh. Добавить

source /path/to/git-prompt.sh

к какому-то подходящему сценарию оболочки. Если вы не знаете, где, добавьте его в свой ~/.bashrc.

если у вас locate установлен, вы можете использовать это, чтобы найти , но вы, возможно, должны работать updatedb как root.