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ć?


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\$ '

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

1

Z jakiegoś powodu '\w\$'nie działało dla mnie, ale export PS1="$(pwd) \$"działało : i działał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

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.