Special Files
Both shells read one or more start-up files. Some of the files are read only when a shell is a login shell.
The Korn shell reads these files:
/etc/profile. Executed automatically at login, first.
~/.profile. Executed automatically at login, second.
$ENV. Specifies the name of a file to read when a new Korn shell is created. (ksh88: all shells. ksh93: interactive shells only.) The value is variable (ksh93: and command and arithmetic) substituted in order to determine the actual file name. Login shells read $ENV after processing the files /etc/profile and $HOME/.profile.
Bash reads these files:
/etc/profile. Executed automatically at login, first.
The first file found from this list: ~/.bash_profile, ~/.bash_login, or ~/.profile. Executed automatically at login, second.
~/.bashrc is read by every shell, after the login files. However, if invoked as sh, Bash instead reads $ENV, just as the Korn shell does.
For both shells, the getpwnam() and getpwuid() functions are the sources of
home directories for ~
name abbreviations. (On single-user systems,
the user database is stored in /etc/passwd. However on networked
systems, this information may come from NIS, NIS+, or LDAP, not your
workstation password file.)
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access