Jak mogę zmienić monit bash, aby wyświetlić mój katalog roboczy?

33

Mogę wydrukować mój bieżący działający katalog w ten sposób

myPrompt$ pwd
/Users/me/myDir

Chcę, aby moja skorupa wyglądała tak

/Users/me/myDir$ pwd
/Users/me/myDir

Czy to jest możliwe? Jak mogę to zrobić?

bernie2436
źródło
W systemie OS X nazwa pliku to .bash_profile, a nie tylko .profile. To załaduje się automatycznie.
Nie do końca. OSX uruchamia powłok zgłoszeniowych domyślnie, a to oznacza, że patrzy na bash ~/.bash_profile, ~/.bash_loginoraz ~/.profile, w tej kolejności i odczytuje i wykonuje poleceń od pierwszego, który istnieje i jest czytelny. W każdym razie jest to naprawdę komentarz, a nie odpowiedź, więc przekształcam go w jeden.
terdon

Odpowiedzi:

39

Możesz użyć sekwencji ucieczki w zmiennych zachęty .

Umieść to w ~/.bashrc:

PS1='\w\$ '
Gilles „SO- przestań być zły”
źródło
2
dzięki. Dokonałem tej zmiany. Teraz widzę: Abrams-MacBook-Air-3: tmp abramhandler $ pwd; / Users / abramhandler / tmp Abrams-MacBook-Air-3: tmp abramhandler $ .... Chcę tylko pokazać część z napisem „tmp”. Jak ukryć resztę? Chcę ukryć części „Abramhandler” i „Abram's-MacBook-Air-3”
bernie2436,
7
@ Akh2103 użyj \Wzamiast \w. Zobacz link, który podał Gilles, aby uzyskać (krótkie) wyjaśnienie kodów ucieczki.
terdon
@terdon Widzę to samo z \ W i \ w. Używam Uniksa na OSX.
bernie2436,
2
@ akh2103 jeśli używasz OSX i używasz aplikacji terminalowej, powinieneś wprowadzić zmiany do ~ / .profile, a nie .bashrc, ponieważ terminal domyślnie uruchamia powłokę logowania. Powinieneś także zdobyć ~ / .profile lub otworzyć nowy terminal, aby zmiany odniosły skutek. Edytuj także, aby dodać więcej informacji. Nie rozumiem, o co prosisz w swoim ostatnim komentarzu.
terdon
@terdon, kiedy uruchamiam source ~ / .profile, odpowiednio zmienia ścieżkę w bieżącym terminalu. Ale kiedy otwieram nowy terminal, nadal widzę „abram mac book air” itp. Próbowałem dodać source ~ / .profile zarówno do plików .profile, jak i .bashrc, ale nadal nie mam szczęścia. Jakieś pomysły?
bernie2436,
4

Oto jedna linijka dla OSX. Dołącza monit, który chcesz, do pliku profilu, a następnie ponownie ładuje profil.

echo "PS1='\w\$ '" >> ~/.bash_profile; source ~/.bash_profile

Na El Capitan będziesz chciał użyć

echo "PS1='\w\$ '" >> ~/.profile; source ~/.profile
Zestaw
źródło
1

Z jakiegoś powodu '\w\$'nie działało dla mnie, ale export PS1="$(pwd) \$"działało : i działało.

David
źródło
4
To nie zadziała zbyt dobrze, gdy zmienisz katalogi ...
Stephen Kitt
0

Wygląda jak stary wątek, ale poniższe kroki działały dla mnie w systemie OS X 10.9.5

  • umieścić PS1='\w\$ 'w~/.profile
  • jeśli dokonałeś jakichkolwiek zmian, ~/.bashrcusuń je
  • zamknij terminal za pomocą cmd+q
  • ponownie otwórz terminal
zwycięzca
źródło
1
W moim przypadku kompletna ŚCIEŻKA jest naprawdę duża, więc dodałem jeszcze jedną flagę dla następnej linii, np. PS1 = '\ w \ n \ $'
zwycięzca