I am running freshly installed Arch Linux. When I log into a user (running bash) and try to use an alias from .bashrc, it gives me the \'command not found\' error. But, if I ree
Have you looked at your ~/.profile
, ~/.bash_login
and ~/.bash_profile
files?
Read the INVOCATION section from "bash(1)" for full details (that's the man page for bash; use man bash
). Your first shell upon logging in is a "login shell", which means that the .bashrc
file is not sourced. Your second invocation creates an interactive shell, where .bashrc
is sourced.
If you always want the content of your .bashrc
file processed, you can add the following lines to your .bash_profile
file, creating that file if it does not already exist:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
Per its man page, 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." Conventions and policies of your local system will determine which, if any, of these files already exist.
A word of caution: be aware that creating a new .bash_profile
in your home directory could have the unintended side-effect of preventing the reading and executing of commands in a .bash_login
or .profile
file already present, changing further the behavior of subsequent logins.