I recently installed the newest Qt SDK and I went ahead and added it to my PATH inside of my ~/.bash_profile.

I don't see the change. I can source ~/.bash_profile but then my path is twice as long, yet I can't simply open a new gnome-terminal and have the path updated.


Notes: Fedora 11 running GNU bash, version 4.0.16(1)-release inside of default gnome desktop.

.bash_profile path config:

# User specific environment and startup programs


When you just open a terminal from your desktop the terminal inherits the environment it was started in, including that PATH. When you open a terminal, the following happens according to the Bash documentation:

From the Bash Reference Manual

When Bash is invoked as an interactive login shell, or as a non-interactive shell with the --login option, it first reads and executes commands from the file /etc/profile, if that file exists. After reading that file, it 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. The --noprofile option may be used when the shell is started to inhibit this behavior.

When a login shell exits, Bash reads and executes commands from the file ~/.bash_logout, if it exists.


When an interactive shell that is not a login shell is started, Bash reads and executes commands from ~/.bashrc, if that file exists. This may be inhibited by using the --norc option. The --rcfile file option will force Bash to read and execute commands from file instead of ~/.bashrc.

So, typically, your ~/.bash_profile contains the line

 if [ -f ~/.bashrc ]; then . ~/.bashrc; fi

after (or before) any login-specific initializations.

So in order to get your .bash_profile to execute you need to log into a login shell, perhaps by ssh-ing into the localhost, or by logging out of your desktop environment and logging back in..

| improve this answer | |
  • I just came across this on the man page. You beat me to it! Thank you for your help – bobby Jul 20 '09 at 12:25

Try putting that in your ~/.bashrc instead.

When you login, ~/.bash_profile is processed. It is not processed again when you open a new terminal or start a new shell, which is when ~/.bashrc is processed. You should source ~/.bashrc in your ~/.bash_profile.

See the "Invocation" section in man bash.

| improve this answer | |

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.