A number of variables to fine-tune editing behavior are also available. The Bash history feature remembers commands entered to the shell and allows them to be recalled and re-executed. The history list may be of unlimited size. Bash allows users to search for previous commands and reuse portions of those commands when composing new ones. The history list may be saved across shell sessions.
Bash allows users to control which commands are saved on the history list.
On systems that support it, Bash provides an interface to the operating system's job control facilities, which allow processes to be suspended and restarted, and moved between the foreground and background. These mechanisms are available to bind a user-selected identifier to a list of commands that will be executed when the identifier is used as a command name. Functions allow local variables and recursion, and have access to the environment of the calling shell. Aliases may be used to create a mnemonic for a command name, expand a single word to a complex command, or ensure that a command is called with a basic set of options. Arrays Bash-2.0 supports indexed arrays of unlimited size.