bash

bash - Launches the Bourne-Again SHell, an sh-compatible shell that incorporates useful features from the Korn and C shells (ksh and csh).

Syntax
bash [options]
Options
-c string Commands are read from string.
If there are arguments after the string, they are
assigned to the positional parameters, starting with $0.
-D A list of all double-quoted strings preceded by $ is printed
to standard output. These are the strings that are subject
to language translation when the current locale is not C
or POSIX.
This implies the -n option; no commands will be executed.
[-+]O [shopt_option]
shopt_option is one of the shell options accepted by the
shopt builtin (see SHELL BUILTIN COMMANDS below). If
shopt_option is present, -O sets the value of that option; +O
unsets it. If shopt_option is not supplied, the names and
values of the shell options accepted by shopt are printed on
the standard output. If the invocation option is +O, the
output is displayed in a format that can be reused as input.
-i Interactive shell.
-l Make bash act as if it had been invoked as a login shell, it
first reads and executes commands from the file /etc/profile,
if that file exists. After reading that file, it looks for
~/.bash_profile, ~/.bash_login, and ~/.profile, in that order,
and reads and executes commands from the first one that exists
and is readable. The --noprofile option can be used when the
shell is started to inhibit this behavior.
-r RESTRICTED SHELL prevent changing directory, Shell, Path etc.
-s If the -s option is present, or if no arguments remain after
option processing, then commands are read from the standard
input. This option allows the positional parameters to be
set when invoking an interactive shell.
-v Verbose output.
-- A -- signals the end of options and disables further option
processing. Any arguments after the -- are treated as file-
names and arguments. An argument of - is equivalent to --.
Bash also interprets a number of multi-character options.
These options must appear on the command line before the single-character
options to be recognized.
--debugger
Arrange for the debugger profile to be executed before the shell
starts. Turns on extended debugging mode (see the description
of the extdebug option to the shopt builtin below) and shell
function tracing (see the description of the -o functrace option
to the set builtin below).
--dump-po-strings
Equivalent to -D, but the output is in the GNU gettext po (por-
table object) file format.
--dump-strings
Equivalent to -D.
--help Display a usage message on standard output and exit success-
fully.
--init-file file
--rcfile file
Execute commands from file instead of the standard personal ini-
tialization file ~/.bashrc if the shell is interactive (see
INVOCATION below).
--login
Equivalent to -l.
--noediting
Do not use the GNU readline library to read command lines when
the shell is interactive.
--noprofile
Do not read either the system-wide startup file /etc/profile or
any of the personal initialization files ~/.bash_profile,
~/.bash_login, or ~/.profile. By default, bash reads these
files when it is invoked as a login shell (see INVOCATION
below).
--norc Do not read and execute the personal initialization file
~/.bashrc if the shell is interactive. This option is on by
default if the shell is invoked as sh.
--posix
Change the behavior of bash where the default operation differs
from the POSIX standard to match the standard (posix mode).
--restricted
The shell becomes restricted (see RESTRICTED SHELL below).
--verbose
Equivalent to -v.
--version
Show version information for this instance of bash on the stan-
dard output and exit successfully.

Arguments

If arguments remain after option processing, and neither the -c nor the -s option has been supplied, the first argument is assumed to be the name of a file containing shell commands. If bash is invoked in this fashion, $0 is set to the name of the file, and the positional parameters are set to the remaining arguments. Bash reads and executes commands from this file, then exits.

Bash's exit status is the exit status of the last command executed in the script. If no commands are executed, the exit status is 0. An attempt is first made to open the file in the current directory, and, if no file is found, then the shell searches the directories in PATH for the script.

Special Parameters

The shell treats several parameters specially. These parameters can only be referenced; assignment to them is not allowed.

* Expands to the positional parameters, starting from one. When the expansion occurs within double quotes, it expands to a sin- gle word with the value of each parameter separated by the first character of the IFS special variable. That is, "$*" is equiva- lent to "$1c$2c...", where c is the first character of the value of the IFS variable. If IFS is unset, the parameters are separated by spaces. If IFS is null, the parameters are joined without intervening separators.

@ Expands to the positional parameters, starting from one. When the expansion occurs within double quotes, each parameter expands to a separate word. That is, "$@" is equivalent to "$1" "$2" ... If the double-quoted expansion occurs within a word, the expansion of the first parameter is joined with the beginning part of the original word, and the expansion of the last parameter is joined with the last part of the original word. When there are no positional parameters, "$@" and $@ expand to nothing (i.e., they are removed).

# Expands to the number of positional parameters in decimal. ? Expands to the status of the most recently executed foreground pipeline. - Expands to the current option flags as specified upon invocation, by the set builtin command, or those set by the shell itself (such as the -i option).

$ Expands to the process ID of the shell. In a () subshell, it expands to the process ID of the current shell, not the sub-shell.

! Expands to the process ID of the most recently executed background (asynchronous) command.

0 Expands to the name of the shell or shell script. This is set at shell initialization. If bash is invoked with a file of commands, $0 is set to the name of that file. If bash is started with the -c option, then $0 is set to the first argument after the string to be executed, if one is present. Otherwise, it is set to the file name used to invoke bash, as given by argument zero.

_ At shell startup, set to the absolute pathname used to invoke the shell or shell script being executed as passed in the envi-ronment or argument list. Subsequently, expands to the last argument to the previous command, after expansion. Also set to the full pathname used to invoke each command executed and placed in the environment exported to that command. When checking mail, this parameter holds the name of the mail file currently being checked.

To Exit bash type exit

Default shell

Your default shell can be accessed from System Preferences > Accounts, Right click (or control-click) on an account and choose Advanced Options.

You can also set a default shell for the terminal:
Open the Terminal app (Applications > Utilities > Terminal) then open Terminal Preferences

Whatever the default, you can always switch shells on the fly by just typing the name of
new shell - bash, csh, tcsh or zsh.

“What distinguishes the majority of men from the few is their inability to act according to their beliefs” ~ Henry Miller