2013-03-13 17 views
37

Próbowałem zainstalować Ruby 2.0. Moja linia poleceń urped i teraz wygląda następująco:-bash: __git_ps1: nie znaleziono polecenia

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

nie mam pojęcia, jak pozbyć polecenia __git_ps1 nie znaleziono błąd. Przeszukałem mój .bash_profile i mój .bashrc, aby sprawdzić, czy próbuje ustawić zmienną lub coś takiego i nic nie widzę. Jedyne miejsce, w którym mogę znaleźć wspomniane git_ps1, to ~/.dotfiles/.bash_prompt. Całkowicie zastępuję zawartość tego pliku, wylogowuję się i ponownie loguję, a on niczego nie naprawia.

Widziałem this, ale jestem całkiem nowy Command Line więc po prostu mylić się.

Wszelkie pomysły?

+0

której wersji git używasz? –

+0

zobacz https://bbs.archlinux.org/viewtopic.php?id=147462 –

+0

wersja git 1.7.10.2 (Apple Git-33) –

Odpowiedz

16

BASH ma całe mnóstwo sposobów automatycznego ustawiania swój wiersz, aby dać Ci miłą informację. Ustawiono monit, ustawiając zmienną środowiskową PS1. Na przykład, jeżeli ustawić PS1="$ " moja podpowiedź będzie wyglądać następująco:

$ 

Niezbyt dobrze poinformowany. Wszystko, co mogę powiedzieć, to to, że podprowadza mnie wiersz poleceń.

Jednak Jeżeli ustawić PS1=\[email protected]\h: \w$ moja podpowiedź będzie teraz wyglądać tak:

[email protected]:/usr/bin$ 

To mówi mi, jak jestem zalogowany w (\u), urządzenie jestem na (\h) i katalog, w którym się znajduję (\w). Jeśli użyję git, byłoby miło, gdyby gałąź git, w której się znajduję, była również częścią mojego polecenia.

To jest dokładnie to, co dzieje się z plikiem .profile, plikiem .bashrc, twoim .bash_login lub ze skryptem .bash_profile. Lub co zrobił administrator systemu w /etc/profile.

Istnieje kilka rzeczy, które możesz zrobić. Albo:

  • Pobierz brakującą __git_ps1 i upewnić się, że w zmiennej środowiskowej $PATH (który jest ustawiony przez połączenie różnych plików inicjujących wspomnianych powyżej)
  • Zmień swoją zmienną PS1 środowiska w jakimkolwiek pliku inicjującym jest bycie wykonane (myślę, że prawdopodobnie jest to .bash_profile.

Wystarczy dodać to jako ostatnią linię:

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

Dodana \n drukuje wiersz znak dolara na linii poniżej tak:

[email protected]:/usr/bin 
$ 

lubię tego robić, ponieważ prompt może dostać się dość długo i edycja linii poleceń staje się trudna, gdy monit jest dłuższy niż 30 do 50 znaków. W przeciwnym razie jest to standardowy sygnał, z którego korzysta większość użytkowników. Możesz zobaczyć więcej o ustawianiu podpowiedzi BASH w man pages. (Wyszukaj słowo monitujące na tej stronie).

Jeśli uważasz, że to trochę zagmatwane, ciesz się, że nie używasz Koronki. Używam Korn Shell i dostać to samo szybka PS1=\[email protected]\h:\w\n$ robi, mogę ustawić wiersz jako:

export PS1='$(print -n "`logname`@`hostname`:";if [[ "${PWD#$HOME}" != "$PWD" ]] then; print -n "~${PWD#$HOME}"; else; print -n "$PWD";fi;print "\n$ ")' 
+0

Dodałem to do ostatniej linii mojego BP i przynajmniej teraz nie zrywa. Będziemy próbować dowiedzieć się, dlaczego nie mogę zawinąć poniżej i wykonać tej pracy. Dziękuje wszystkim. –

+4

Po prostu wejdź do Git i ręcznie pobierz plik. Przejdź do strony https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh w przeglądarce i kliknij przycisk *** Raw ***. Następnie wytnij i wklej. –

+6

Pytanie dotyczyło "__git_ps1", która jest zadeklarowana w git-prompt.sh. Odpowiedź @ emil-lundberg jest właściwą odpowiedzią. – Metal3d

101

Uruchom następujące:

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

i dodać do góry ~/.bashrc:

source ~/.bash_git 

Ponowne logowanie do swojej skorupy i powinien być ustawiony.

+0

Blake, otrzymuję: curl: (3) zniekształcone –

+3

Jeśli masz zainstalowaną git lokalnie (przynajmniej w Fedorze), skrypt git-prompt.sh jest dołączony do dystrybucji git w '/ usr/share/git -core/contrib/completion/git-prompt.sh's –

+1

@AlexJordan podobnie jak w Arch: '/ usr/share/git/completion/git-prompt.sh'' –

27

Szukać system dla git-prompt.sh, trzeba source że funkcja __git_ps1 być dostępne. W Arch, aktualnie znajduje się pod adresem /usr/share/git/completion/git-prompt.sh. Dodaj

source /path/to/git-prompt.sh 

do odpowiedniego skryptu powłoki. Jeśli nie masz pewności, gdzie to jest, dodaj go do swojego ~/.bashrc.

Jeśli masz zainstalowaną locate, możesz użyć tego do znalezienia pliku git-prompt.sh, ale może być konieczne uruchomienie updatedb jako root.

+4

To jest DOBRA odpowiedź, dodaj to w ~/.bashrc PRZED eksportem PS1 "source /usr/share/git-core/contrib/completion/git-prompt.sh" bez cudzysłowów – Metal3d

Powiązane problemy