
Syntax | 627
Bash and Korn
This is the Title of the Book, eMatter Edition
Copyright © 2006 O’Reilly & Associates, Inc. All rights reserved.
Special Files
Both shells read one or more startup files. Some of the files are read only when a
shell is a login shell.
The Korn shell reads these files:
1. /etc/profile. Executed automatically at login, first.
2. ~/.profile. Executed automatically at login, second.
3. $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 a variable
(ksh93: and command and arithmetic) substituted in order to determine the
actual filename. Login shells read $ENV after processing /etc/profile and
$HOME/.profile.
Bash reads these files:
1. /etc/profile. Executed automatically at login, first.
2. The first file found from this list: ~/.bash_profile, ~/.bash_login,or~/.profile.
Executed automatically at login, second.
3. ~/.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 are the sources of
home directories for ~name abbreviations. (On single-user systems, the user data-
base is stored in /etc/passwd. However on networked systems, this information
may come from NIS, NIS+, or LDAP—not your workstation password file.)
Filename Metacharacters
In the Korn ...