Как я могу изменить мой 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, в таком порядке, а также читает и выполняет команду из первого, который существует и читаемые. В любом случае, это действительно комментарий, а не ответ, поэтому я конвертирую его в один.
Тердон

Ответы:


39

Вы можете использовать escape-последовательности в переменных приглашения .

Поместите это в свой ~/.bashrc:

PS1='\w\$ '

2
Спасибо. Я сделал это изменение. Теперь я вижу: Abrams-MacBook-Air-3: tmp abramhandler $ pwd; / Users / abramhandler / tmp Abrams-MacBook-Air-3: tmp abramhandler $ .... Я хочу показать только часть с надписью "tmp" для моего приглашения. Как мне спрятать остальное? Я хочу, чтобы скрыть части "abramhandler" и "Abram's-MacBook-Air-3"
bernie2436

7
@ akh2103 использовать \Wвместо \w. Смотрите ссылку, которую Жиль дал вам (краткое) объяснение кодов побега.
Тердон

@terdon Я вижу то же самое с \ W и \ w. Я использую Unix на OSX.
bernie2436

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

@terdon, когда я запускаю source ~ / .profile, он корректно меняет путь в текущем терминале. Но когда я открываю новый терминал, я все еще вижу «эфир книги Абрама» и т. Д. Я попытался добавить исходные файлы ~ / .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 \ $'
victor
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.