As described above, the login shell runs certain profiles. In addition, you can have a profile that ksh runs whenever you start a shell—whether or not it's a login shell.
This profile doesn't have a specific name; when you start ksh, it checks the ENV environment variable. If this variable exists, ksh gets the name of the profile from it. To set up ENV, add a line like this to your $HOME/.profile file:
export ENV=$HOME/.kshrc
People frequently call the profile .kshrc, but you can give it whatever name you want. This file doesn't need to be executable.
Use ksh's profile to set up your favorite aliases, and so on. For example, if you want ls to always display characters that tell you if a file is executable, a directory, or a link, add this line to the shell's profile:
alias ls="ls -F"
Any changes that you make to the profile apply to new shells, but not to existing instances.
For an example of .kshrc, see the Examples appendix.