Shell provides the interface between user and Linux. It takes input from the user and delivers it to an operating system, thus allows a user to interact with the Kernel and execute commands.
Advantages of Using Linux Shell Over Graphical User Interface
- Pattern Matching using wildcard substitution in file names, instead of using the actual file name.
- Background processing: Run the long tasks in the background and freeing the terminal for concurrent interactive processing.
- Command aliasing: To give an alias name to a command or phrase, which get substituted by text which it refers to on command line or in shell script.
- Command history: Records the commands entered in a history file to easily access, modify, and reissue listed command.
- Filename substitution: Automatically produces a list of file names on a command line using pattern-matching characters.
- Input and output redirection: Redirects input away from the keyboard and redirect output to a file or device other than the terminal.
- Piping: Links any number of commands together to form a complex program. The standard output of one program becomes the standard input of the next.
- Shell variable substitution: Stores data in user-defined variables and predefined shell variables.
- sh – Bourne shell: The Bourne shell does not support job control command history.
- csh – CShell
- tsch – Tab C-shell
- ksh – Korn shell
- fish: It is user-friendly and comes with predictive typing, syntax highlighting, searchable command history, and auto-suggestions.
- # for root, admin, administrator, supervisor or superuser having unrestricted access to every area of the system and its configuration
- $ regular user
To view default shell, execute the command
echo $SHELL /bin/bash
The shell allows a user to create simple batch scripts or Power shell scripts to automate certain processes.
According to MacNN the latest developer release of Apple Mac OS X “Panther” has changed its default shell from tcsh to bash.