1. Home
  2. Computing & Technology
  3. Linux

Introduction to Linux

From Machtelt Garrels

7.2.3. A typical set of setup files

Let's look at some of these config files. First /etc/profile is read, in which important variables such as PATH , USER and HOSTNAME are set:


   

debby:~> cat /etc/profile
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc


# Path manipulation
if [ 'id -u' = 0 ] && ! echo $PATH | /bin/grep -q "/sbin" ; then
PATH=/sbin:$PATH
fi

if [ 'id -u' = 0 ] && ! echo $PATH | /bin/grep -q "/usr/sbin" ; then
PATH=/usr/sbin:$PATH
fi

if [ 'id -u' = 0 ] && ! echo $PATH | /bin/grep -q "/usr/local/sbin"
then
PATH=/usr/local/sbin:$PATH
fi

if ! echo $PATH | /bin/grep -q "/usr/X11R6/bin" ; then
PATH="$PATH:/usr/X11R6/bin"
fi

These lines check the path to set: if root opens a shell (user ID 0), it is checked that /sbin , /usr/sbin and /usr/local/sbin are in the path. If not, they are added. It is checked for everyone that /usr/X11R6/bin is in the path.


   

# No core files by default
ulimit -S -c 0 > /dev/null 2>&1

All trash goes to /dev/null if the user doesn't change this setting.


   

USER='id -un'
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"

HOSTNAME='/bin/hostname'
HISTSIZE=1000

Here general variables are assigned their proper values.


   

if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
INPUTRC=/etc/inputrc
fi

If the variable INPUTRC is not set, and there is no .inputrc in the user's home directory, then the default input control file is loaded.


   

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC

All variables are exported, so that they are available to other programs requesting information about your environment.


   

for i in /etc/profile.d/*.sh ; do
if [ -r $i ]; then
. $i
fi
done
unset i

All readable shell scripts from the /etc/profile.d directory are read and executed. These do things like enabling color-ls , aliasing vi to vim , setting locales etc. The temporary variable i is unset to prevent it from disturbing shell behavior later on.

Then bash looks for a .bash_profile in the user's home directory:


   

debby:~> cat .bash_profile
#################################################################
# #
# .bash_profile file #
# #
# Executed from the bash shell when you log in. #
# #
#################################################################

source ~/.bashrc
source ~/.bash_login

This very straight forward file instructs your shell to first read ~/.bashrc and then ~/.bash_login . You will encounter the source built-in shell command regularly when working in a shell environment: it is used to apply configuration changes to the current environment.

The ~/.bash_login file defines default file protection by setting the umask value, see Section 3.4.2.2 . The ~/.bashrc file is used to define a bunch of user-specific aliases and functions and personal environment variables. It first reads /etc/bashrc , which describes the default prompt (PS1 ) and the default umask value. After that, you can add

* License

* Introduction to Linux Index

Explore Linux
About.com Special Features

The Best Web Trends of the Decade

A look back at the best innovations, ideas and technologies over the last 10 years, More >

Family Tech Center

Stay connected and entertained with reviews on tips on the latest HDTVs, cellphones and more. More >

  1. Home
  2. Computing & Technology
  3. Linux
  4. Linux Documentation
  5. Introduction to Linux
  6. Introduction to Linux - 7.2.3. A typical set of setup files

©2009 About.com, a part of The New York Times Company.

All rights reserved.