Як я можу змінити підказку bash, щоб показати свій робочий каталог?


33

Я можу надрукувати свій поточний робочий рейтинг так

myPrompt$ pwd
/Users/me/myDir

Я хочу, щоб моя оболонка виглядала так

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

Це можливо? Як я можу це зробити?


В OS X ім'я файлу .bash_profile не просто .profile. Це автоматично завантажить для вас.

Не зовсім. OSX починається логін оболонки за замовчуванням , і це означає , що Баш виглядає для ~/.bash_profile, ~/.bash_loginі ~/.profile, в такому порядку, а також читає і виконує команду з першого, який існує і читаються. У будь-якому випадку, це дійсно коментар, а не відповідь, тому я перетворюю його на один.
terdon

Відповіді:


39

Ви можете використовувати послідовності втечі в змінних підказок .

Помістіть це у своєму ~/.bashrc:

PS1='\w\$ '

2
Спасибі. Я змінив цю зміну. Тепер я бачу: Abrams-MacBook-Air-3: tmp abramhandler $ pwd; / Користувачі / abramhandler / tmp Abrams-MacBook-Air-3: tmp abramhandler $ .... Я хочу лише показати частину, яка пише "tmp" для мого підказки. Як приховати решту? Я хочу приховати деталі "абрамхандлер" та "Абрам-Макбук-Повітря-3"
bernie2436

7
@ akh2103 використовувати \Wзамість \w. Дивіться посилання, яке Джілс дав вам для (короткого) пояснення кодів втечі.
тердон

@terdon Я бачу те саме, що і з \ W і \ w. Я запускаю Unix на OSX.
bernie2436

2
@ akh2103, якщо ви працюєте з OSX та використовуєте програму терміналу, вам слід внести зміни до ~ / .profile not .bashrc, оскільки термінал за замовчуванням виконує оболонку входу. Ви також повинні створити ~ / .profile або відкрити новий термінал, щоб зміни набрали чинності. Крім того, редагуйте, щоб додати більше інформації, я не можу зрозуміти, що ви просите від останнього коментаря.
terdon

@terdon, коли я запускаю source ~ / .profile, він змінює шлях належним чином у поточному терміналі. Але коли я відкриваю новий термінал, я все ще бачу "maram book air" abram "і т. Д. Я спробував додати джерело ~ / .profile до файлів .profile і .bashrc, але все одно не пощастило. Будь-які ідеї?
bernie2436

4

Ось однолінійний для OSX. Він додає потрібний запит у файл профілю, а потім перезавантажує профіль.

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

На El Capitan ви хочете скористатися

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

1

Чомусь '\w\$'не працювало для мене, але натомість я зробив:export PS1="$(pwd) \$" і воно спрацювало.


4
Це не спрацює надто добре, якщо ви зміните каталоги ...
Стівен Кітт

0

Схоже на стару нитку, але наведені нижче кроки працювали для мене в OS X 10.9.5

  • поставити PS1='\w\$ ' в~/.profile
  • якщо ви внесли якісь зміни в ~/.bashrc видаліть їх
  • закрити термінал cmd +q
  • знову відкрити термінал

1
У моєму випадку повна PATH дійсно велика, тому я додав ще один прапор для наступного рядка, як PS1 = '\ w \ n \ $'
переможець
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.