Thursday, May 9, 2024
 Popular · Latest · Hot · Upcoming
230
rated 0 times [  230] [ 0]  / answers: 1 / hits: 227404  / 3 Years ago, mon, october 11, 2021, 8:14:49

The code in .bashrc does not execute when I open a new terminal window in Ubuntu 12.04.
I noticed this when creating a .bash_aliases file. The aliases did not show up when I opened a new terminal. However when I type source .bashrc the aliases did show up.


.bashrc should be run every time I open a new terminal window, right?


How do I make this happen?


More From » login

 Answers
1

It isn't necessarily run; at the top of the standard .bashrc is this comment:



# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples


I believe there is an option to run bash terminal as a login shell or not. With Ubuntu, gnome-terminal does not normally run as a login shell, so .bashrc should be run directly.



For login shells (like the virtual terminals), normally the file ~/.profile is run, unless you have either ~/.bash_profile or ~/.bash_login, but they are not there by default. By default, Ubuntu uses only .profile.



The standard ~/.profile has this in it:



if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi


This runs .bashrc if it is available - assuming $BASH_VERSION is present in your environment. You can check for this by entering the command echo $BASH_VERSION, and it should display some information on version number - it should not be blank.


[#37002] Tuesday, October 12, 2021, 3 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
tatoethin

Total Points: 377
Total Questions: 110
Total Answers: 98

Location: Saudi Arabia
Member since Sat, Aug 20, 2022
2 Years ago
;