Подтвердить что ты не робот

#ИМЯ?

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

-bash: __git_ps1: command not found
[11:58:28][[email protected] ~]$ 

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

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

Любые идеи?

4b9b3361

Ответ 1

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

$ 

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

Однако, если я установил PS1=\[email protected]\h: \w$, моя подсказка теперь будет выглядеть так:

[email protected]:/usr/bin$ 

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

Это именно то, что происходит с вашим .profile, вашим .bashrc файлом, вашим .bash_login или вашим .bash_profile script. Или, что сделал администратор системы в /etc/profile.

Есть несколько вещей, которые вы можете сделать. Или:

  • Загрузите отсутствующий __git_ps1 и убедитесь, что он находится в переменной среды $PATH (которая задается комбинацией различных файлов инициализации, упомянутых выше).
  • Измените переменную среды PS1 в любом файле инициализации (я считаю, что это, вероятно, .bash_profile.

Просто добавьте это как последнюю строку:

PS1="\[email protected]\h:\w\n$ "

Добавленный \n печатает подсказку с символом доллара на следующей строке:

[email protected]:/usr/bin
$ 

Мне нравится делать это, потому что подсказка может занять довольно много времени, и редактирование командной строки становится сложным, когда приглашение длиннее 30-50 символов. В противном случае это стандартная подсказка, которую использует большинство пользователей. Вы можете узнать больше о настройке BASH приглашений в man-страницах. (Найдите слово "Приглашение" на этой странице).

Если вы считаете это немного запутанным, радуйтесь, что вы не используете Kornshell. Я использую Kornshell и для получения того же приглашения PS1=\[email protected]\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$ ")'

Ответ 2

Выполните следующее:

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

И добавьте это в начало вашего ~/.bashrc:

source ~/.bash_git

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

Ответ 3

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

source /path/to/git-prompt.sh

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

Если у вас установлено locate, вы можете использовать это, чтобы найти файл git-prompt.sh, но вам может потребоваться сначала запустить updatedb с правами root.