Bash Introduction
UNIX philosophy
Every operating system needs to interract with users.
The original
UNIX philosophy said (among other things):
Write programs that do one thing and do it well. Write programs to work together.
This philosophy applis also to the interraction with the user, and the kernel.
In other words, the UNIX system didn't want to include these roles (of interracting with the user) inside the kernel itself.
Instead, there is a speciall program called shell that wraps the kernel (so it uses the kernel), and this program is resplonsible to interraction with users, running programs etc.
You can view that this way:
Unix shells
-
There are many variants of shell programs
-
These are programs written by different programmers over the years.
some examples:- Thompson shell written by Ken Thompson
- C shell (csh)
- Bourne shell written by Stephen R. Bourne, has some other campatible programs ( ash, ksh, zsh and others)
- Bourne-Again shell (bash) is a famous and most used Bourne shell alternative.
- Most computer science students write a simple shell program as an exercise during an operating systems course (was an eye opening experience for me)
bash
- Bash is a Unix shell and command language written by Brian Fox for the GNU Project as a free software replacement for the Bourne shell
- This is the BASH DOCUMENTATION
- The shell's name is an acronym for Bourne Again Shell, a pun on the name of the Bourne shell that it replaces and the notion of being "born again".
- It has been used as the default login shell for most Linux distributions
- A version is also available for Windows 10 and Windows 11 via the Windows Subsystem for Linux.
- Bash was the default shell in versions of Apple macOS from 10.3 (originally, the default shell was tcsh) to 10.15 (macOS Catalina), which changed the default shell to zsh, although Bash remains available as an alternative shell.