Next
Previous
Contents
Often user processes are children processes of the shell mentioned in
/etc/passwd for this user. Initialization files of shells often modify
path.
In login, the name of the shell is preceded with '-', for example bash
is called as '-bash'. This signals to the shell that it is a 'login'
shell. In this case, the shell executes the 'login' initialization
files. Otherwise some lighter initialization is performed.
Additionally, the shell checks if it is interactive - are the commands
coming from file or interactive tty. This modifies the shell
initialization so that a non-interactive non-login shell is
initialized very lightly - bash do not execute any initialization file
in this case!
As a normal login shell, bash 'sources' system-wide file /etc/profile,
where the system environment and path can be set for bash
users. However, it is not run when the system interprets the shell as
non-interactive. The most important case is in rsh, where remote
command is executed in the neighboring machine. The /etc/profile is
not run and the path is inherited from rsh daemon.
bash receives command line arguments -login and -i that can be used to
set the shell as a login shell or interactive shell respectively.
The user can overwrite values set in /etc/profile by creating a file
~/.bash_profile, ~/.bash_login or ~/.profile. Note
that just the first one of these is executed thus differing of the
logic of csh initialization. ~/.bash_login is not executed
specially for login shells and if .bash_profile exists, it is not
executed at all!
If bash is used with name sh instead of the name bash, it emulates
original Bourne shell initialization: it sources just files
/etc/profile and ~/.profile and just for login shells.
As a login shell tcsh executes the following files in this order:
- /etc/csh.cshrc
- /etc/csh.login
- ~/.tcshrc
- ~/.cshrc (if .tcshrc is not found)
- ~/.history
- ~/.login
- ~/.cshdirs
tcsh can be compiled to execute login scripts before cshrc scripts. Beware!
Non-interactive shells execute just the *cshrc scripts. *login scripts
can be used to set the path just once in the login.
Next
Previous
Contents
|