Startup and termination files used by the various Unix shells

Although not a comprehensive list, the following should provide you with a basic understanding of what startup and shutdown files the various Unix shells use.

Note:
This information comes from the Unix FAQ.

csh

Some versions have systemwide .cshrc and .login files. Each version puts them in different places.

Startup (in this order): Upon termination: Others:
.cshrc (always) .logout (login shells)
.history (saves history based on "$savehist")
.login (login shells)

tcsh

Startup (in this order): Upon termination: Others:
/etc/csh.cshrc (always) .logout (login shells)
.history (saves history based on "$savehist")
/etc/csh.login (login shells)
.cshdirs (saves directory stack)
.tcshrc (always)
.cshrc (if no .tcshrc file is present)
.login (login shells)

sh

Startup (in this order): Upon termination:
/etc/profile (login shells)
Any command or script specified using the command:
 trap "command" 0
.profile (login shells)

ksh

Startup (in this order): Upon termination:
/etc/profile (login shells)
Any command or script specified using the command:
 trap "command" 0
.profile (login shells)
$ENV (always, if it is set)

bash

Startup (in this order): Upon termination: Others:
/etc/profile (login shells) .bash_logout (login shells)
.inputrc (readline initialization)
.bash_profile (login shells)
.profile (login if no .bash_profile file is present)
.bashrc (interactive non-login shells)
$ENV (non-interactive shells)

zsh

Startup (in this order): Upon termination:
.zshenv (always, unless the -f option is specified)
.zlogout (login shells)
.zprofile (login shells)
.zshrc (interactive shells, unless the -f option is specified)
.zlogin (login shells)

rc

Startup (in this order):

.rcrc (login shells)

At Indiana University, for personal or departmental Linux or Unix systems support, see Get help for Linux or Unix at IU.

This is document abdy in the Knowledge Base.
Last modified on 2023-06-27 11:47:06.