The functions in shell_default are called when no module name is given in a shell command.
Consider the following shell dialogue:
1 > lists:reverse("abc").
2 > c(foo).
In command one, the module lists is called. In command two, no module name is specified. The shell searches the modules user_default followed by shell_default for the function foo/1.
shell_default is intended for "system wide" customizations to the shell. user_default is intended for "local" or individual user customizations.
To add your own commands to the shell, create a module called user_default and add the commands you want. Then add the following line as the first line in your .erlang file in your home directory.
$PATH is the directory where your user_default module can be found