profile(4)


profile -- setting up an environment at login time

Synopsis

/etc/profile( )
$HOME/.profile( )

Description

The file /etc/profile( ) contains shell commands that are executed at login time for any user whose entry in /etc/passwd( ) has a shell specified in the shell field whose name ends in sh.

The /etc/profile( ) file allows the system administrator to perform services for the entire user community.

The default /etc/profile( ) performs the following routine tasks (among others):

It is also not unusual for /etc/profile to execute special actions for the root login or the su command.

Computers running outside the U.S. Eastern time zone should have the line

   . /etc/TIMEZONE 
included early in /etc/profile [see timezone(4)].

X/Open execution environment

If a login's entry in the /etc/passwd( ) file has the shell /u95/bin/sh( ) in the shell field, then the following commands are executed from /etc/profile( ) when the user logs in to the system:
   PATH=/u95/bin:$PATH 
   POSIX2=on 

This sets the logged in user's execution environment to conform to X/Open Interface Definitions, Version 4 Issue 2.

The PATH setting causes command searching to begin with /u95/bin( ) so that any commands found there are executed rather than other versions found in standard directories appearing later in the PATH string. For example, entering sh on the command line with PATH set as above executes /u95/bin/sh( ) rather than /usr/bin/sh( ) (/u95/bin/sh is the version of the Korn Shell that complies with X/Open Interface Definitions, Version 4 Issue 2; see ksh(1)).

The setting of the POSIX2 environment variable changes the behavior of many standard commands to match the behavior specified in X/Open Interface Definitions, Version 4 Issue 2.

Files

/etc/TIMEZONE
timezone environment

$HOME/.profile
user-specific execution environment

/etc/passwd
login definitions

/etc/profile
system-wide execution environment

References

env(1), environ(5), login(1), mail(1), passwd(4), ksh88(1), ksh(1), sh(1), stty(1), su(1M), terminfo(4), timezone(4), tput(1).

Notices

Care must be taken in providing system-wide services in /etc/profile. Personal .profile files are better for serving all but the most global needs.

Examples

The file $HOME/.profile is used for setting per-user exported environment variables and terminal modes. The following example is typical (except for the comments):
   # Make some environment variables global 
   export MAIL PATH TERM 
   # Set file creation mask 
   umask 022 
   # Tell me when new mail comes in 
   MAIL=/var/mail/$LOGNAME 
   # Add my bin directory to the shell search sequence 
   PATH=$PATH:$HOME/bin 
   # Set terminal type 
   TERM=${L0:-u/n/k/n/o/w/n} 
   while : 
   do 
   	if [ -f ${TERMINFO:-/usr/share/lib/terminfo}/?/$TERM ] 
   	then break 
   	elif [ -f /usr/share/lib/terminfo/?/$TERM ] 
   	then break 
   	else echo "invalid term $TERM" 1>&2 
   	fi 
   	echo "terminal: \c" 
   	read TERM 
   done 
   # Set the erase character to backspace 
   stty erase '^H' echoe 

30 January 1998
© 1998 The Santa Cruz Operation, Inc. All rights reserved.