问题
Git was working fine. I have created an alias in Git but the issue is when I tried to reopen the terminal, then I need to run . ~/.bashrc every time in the terminal.
What is the best way I don't need to provide source every time when I reopen the terminal?
What I did?
I am trying to add source of the .bashrc file in this file but it is a read-only file. I am not able to add the source of the .bashrc file in this profile.
open /etc/profile
Added the permission to write in the profile as well, still not able to link the source file.
sudo chmod u+w /etc/profile
Profile:
# System-wide .profile for sh(1)
if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
if [ "${BASH-no}" != "no" ]; then
[ -r /etc/bashrc ] && . /etc/bashrc
fi
回答1:
It looks like your terminal emulator is launching bash as a login shell.
If that's the case, it will read /etc/profile for configuration as well as 1 of the following files, if they exist (listed in order of importance) :
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
It will thus ignore your .bashrc file. A correct fix for your situation would be to either configure your terminal emulator to run bash interactively and non-login, or add [ -f "$HOME/.bashrc" ] && source "$HOME/.bashrc" to your ~/.bash_profile
Here is a link to the documentation about which files are loaded depending of the type of shell you are running
回答2:
As per @Aserre's answer i have followed this step to solve this issue
A typical install of OS won't create a .bash_profile for you. When you want to run functions from your command line, this is a must-have.
- Start up Terminal
- Type
cd ~/to go to your home folder - Type
touch .bash_profileto create your new file. - Edit .bash_profile with your favorite editor (or you can just type
open -e .bash_profileto open it in TextEdit. [ -f "$HOME/.bashrc" ] && source "$HOME/.bashrc"Save it and close it
Restart the terminal, It should work
来源:https://stackoverflow.com/questions/51876792/why-must-i-source-bashrc-every-time-i-open-terminal-for-aliases-to-work