This short article talks and compare UNIX kernel shells, which many technical folks are confused of. The Unix operating system used a shell program called the Bourne Shell. Then, slowly, many other shell kernel were developed for different flavors of UNIX operating system. The following is some brief information about different shells:
- sh—Bourne shell
- csh—C shell
- ksh—Korn shell
- tcsh—enhanced C shell
- bash—GNU Bourne Again shell (written by Brian Fox)
- zsh—extension to bash, ksh, and tcsh
- pdksh—extension to ksh
What we see here is that, generally, the syntax of all these shells is 95% similar.
- Reading text and parsing the entered command
- Evaluating meta-characters, such as wildcards, special characters,
or history characters
- Process io-redirection, pipes, and background processing
- Signal handling
- Initialising programs for execution
- Open the Linux Terminal and type in:
$ echo $SHELL /bin/bash
- The preceding output in the Terminal says that the current shell is /bin/bash, such as the Bash shell:
$ bash -version GNU bash, version 4.3.48(1)-release (x86_64-pc-linux-gnu) Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software; you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
In Linux, filenames in lowercase and uppercase are different; for example, the files Hello and hello are two distinct files. This is unlike Windows, where case does not matter.
As far as possible, avoid using spaces in filenames or directory names such as:
- Wrong filename—Hello World.txt
- Correct filename—Hello_World.txt or HelloWorld.txt
This will make certain utilities or commands fail or not work as expected, for example, the make utility.
While typing in filenames or directory names of the existing files or folders, use the tab completion feature of Linux. This will make working with Linux faster.
If you are working with Bigdata or Hadoop 3.0 environment, knowledge of UNIX and Shell are very important. Bigdata related technology needs lot of knowledge on UNIX & its awareness is very helpful for developers.