| Bash InitializationSuSE 7.3 Bash Initialization
This is an overview of what gets set where when you use a bash shell
in SuSE. The process works a little differently if you are running a
different shell (zsh, ksh, [t]csh, etc.).
The files are processed in this order: - /etc/profile
-
global config, initializes the terminal (sets the
TERM variable and unsets
TERMCAP since SuSE uses
terminfo instead of
termcap), sets umask 022, sets initial
PATH, MANPATH and a few other variables, sources
/etc/SuSEconfig/profile, sources all
*.sh files in
/etc/profile.d/, sources
/etc/profile.local, sources
/etc/bash.bashrc, sources
~/.bashrc. It includes code to prevent
~/.bashrc from running more than once
depending on whether it has already been executed.
- /etc/SuSEconfig/profile
-
this file is generated by SuSEconfig
from settings in the /etc/rc.config file. It sets
language environment variables, KDEDIR,
QTDIR, PRINTER and
WINDOWMANAGER.
- /etc/profile.d/*.sh
-
application specific settings such as
jade_dsl.sh,
medusa-idled.sh (search engine used by
nautilus), sp.sh,
tetex.sh. Most of these were not activated
for my installation.
- /etc/profile.local
-
doesn't exist by default. Best place to put global aliases,
global shell and environment variables, etc.
- /etc/bash.bashrc
-
sets some shell functions (startx
and remount), also sets some aliases
(+=pushd, -=popd,
o=less, others), sets the
PS1 variable which controls the format of the prompt,
sets other variables, if bash 2.0+ it also
sources/etc/profile.d/complete.bash.
- /etc/profile.d/complete.bash
-
sets a couple of shell options (shopt),
customizes the bash “complete” builtin behavior (file
completion). SuSE did some serious work to optimize this part of
the bash configuration.
- ~/.bashrc
-
finally, your own bash settings are run. You can override
anything that has been set previously since this file is sourced
last (prompt, variables, etc.). The default SuSE
.bashrc includes code to check for
/etc/profile.dos and sources it if it exists.
It also checks for ~/.alias and sources it if
it exists.
- /etc/profile.dos
-
sets up aliases for DOS
commands (del,
move, copy,
etc.)
- ~/.alias
-
best place to put your custom alias definitions.
Then, bash looks for additional config files to run...
For login shells, it looks for these files, in order, and executes commands
from the FIRST one that exists and is readable.
- ~/.bash_profile
-
doesn't exist by default.
- ~/.bash_login
-
doesn't exist by default. You can create it and put custom
commands here that you only want to happen once when you first login.
If this file exists, then the ~/.profile will
not run. Normally, this is not a problem since
~/.profile does not do much and the
~/.bashrc gets sourced from
/etc/profile.
- ~/.profile
-
sets LANG variable, sources
/etc/profile, iF it has not already been run
(checks PROFILEREAD variable), sources
~/.bashrc, runs the
fortune program if you uncomment
it.
For interactive non-login shells, bash looks for this
file: - ~/.bashrc
-
this is where most custom user settings should go.
When you logout, it looks for this file: - ~/.bash_logout
-
file doesn't exist by default. If you want to do something
every time you logout, create this file and load it up.
|