36

I can print my current working dir like this

myPrompt$ pwd
/Users/me/myDir

I want my shell to look like this

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

Is that possible? How can I do it?

  • On OS X the name of the file is .bash_profile not just .profile. That will autoload for you. – user81596 Aug 21 '14 at 21:54
  • Not quite. OSX starts login shells by default and that means that bash looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable. In any case, this is really a comment and not an answer so I am converting it to one. – terdon Aug 21 '14 at 22:03
41

You can use escape sequences in prompt variables.

Put this in your ~/.bashrc:

PS1='\w\$ '
  • 2
    thanks. I made that change. Now I see: Abrams-MacBook-Air-3:tmp abramhandler$ pwd; /Users/abramhandler/tmp Abrams-MacBook-Air-3:tmp abramhandler$ .... I want to only show the part that says "tmp" for my prompt. How do I hide the rest? I want to hide the "abramhandler" and "Abram's-MacBook-Air-3" parts – bernie2436 Nov 13 '13 at 1:00
  • 7
    @akh2103 use \W instead of \w. See the link Gilles gave you for a (short) explanation of the escape codes. – terdon Nov 13 '13 at 1:00
  • @terdon I see the same thing with \W and \w. I am running Unix on OSX. – bernie2436 Nov 13 '13 at 1:03
  • 2
    @akh2103 if you are running OSX and using the terminal app, you should make changes to ~/.profile not .bashrc since terminal runs a login shell by default. You should also source ~/.profile or open a new terminal for the changes to take effect. Also, please edit to add more information, I can't understand what you are asking for from your last comment. – terdon Nov 13 '13 at 1:11
  • @terdon when I run source ~/.profile it changes the path properly in the current terminal. But when I open a new terminal then I still see "abram's mac book air" etc. I tried adding source ~/.profile to both the .profile and .bashrc files but still no luck. Any ideas? – bernie2436 Nov 13 '13 at 1:14
4

Here's a one-liner for OSX. It appends the prompt you want into the profile file and then reloads the profile.

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

On El Capitan you'll want to use

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

For some reason '\w\$' didn't work for me but instead I did: export PS1="$(pwd) \$" and it worked.

  • 4
    That won’t work too well when you change directories... – Stephen Kitt Mar 15 '18 at 15:06
0

Looks like an old thread but the steps below worked for me on OS X 10.9.5

  • put PS1='\w\$ ' in ~/.profile
  • if you made any changes in ~/.bashrc remove them
  • close the terminal with cmd+q
  • reopen the terminal
  • 1
    In my case the complete PATH is really big so I have added one more flag for next line like PS1='\w\n\$ ' – victor Oct 4 '15 at 17:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.