To make an alias for the Terminal in OS X, you can either put the aliases in .bash_profile
or .bashrc
. What is the difference between the two and why would I choose to put aliases in one and not the other?
The difference between .bash_profile and .bashrc
bashcommand lineterminal
Related Question
- MacOS – Change Command Prompt – Variables are literal, and changes to .bashrc or .bash_profile not making a difference
- MacOS – How to persistently define aliases in Terminal
- MacOS – the difference between downloading and installing software from AppStore and Terminal
- Alias in bash to Change Directory
- Mac – What’s the difference between diskutil unmount and diskutil eject
- The actual difference between sh and bash
Best Answer
.bash_profile
is executed for login shells, while.bashrc
is executed for interactive non-login shells.When you login (type username and password) via console, either sitting at the machine, or remotely via ssh:
.bash_profile
is executed to configure your shell before the initial command prompt.But, if you’ve already logged into your machine and open a new terminal window (xterm) then
.bashrc
is executed before the window command prompt..bashrc
is also run when you start a new bash instance by typing/bin/bash
in a terminal.On OS X, Terminal by default runs a login shell every time, so this is a little different to most other systems, but you can configure that in the preferences.