Chapter 5. bash: The Bourne-Again Shell

bash is the GNU version of the standard Bourne shell —the original Unix shell—and incorporates many popular features from other shells such as csh, tcsh, and the Korn shell (ksh). tcsh offers many of the features in this chapter, and is also available on most distributions of Linux. However, bash is the default user shell for Mac OS X Tiger.

If executed as part of the user’s login, bash starts by executing any commands found in /etc/profile. It executes the commands found in ~/.bash_profile, ~/.bash_login, or ~/.profile (searching for each file only if the previous file is not found).

In addition, every time it starts (as a subshell or a login shell), bash looks for a file named ~/.bashrc. Many system administration utilities create a small ~/.bashrc automatically, and many users create quite large startup files. Any commands that can be executed from the shell can be included. Here’s a small sample file:

    # Set bash variable to keep 50 commands in history.
    HSTSIZE=50
    #
    # Set prompt to show current working directory and history number of
    # command.
    PS1='\w: Command \!$ '
    #
    # Set path to search for commands in my directories, then standard ones.
    PATH=~/bin:~/scripts:$PATH
    #
    # Keep group and others from writing my newly created files.
    umask 022
    #
    # Quick and dirty test of a single-file program.
    function gtst () {
        g++ -o $1 $1.C && ./$1
    }
    #
    # Remove .o files.
    alias clean='find ~ -name \*.o -exec rm {  } \;'

bash provides the following features ...

Get Mac OS X Tiger in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.