Compare Unix Kernel Shells

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 bashksh, and tcsh
  • pdksh—extension to ksh

Compare Unix Kernel Shells

What we see here is that, generally, the syntax of all these shells is 95% similar.

Tasks done by the shell

Knowing Compare Unix Kernel Shells is important, but we also need to know what tasks are done by them.
Whenever we input any text in the shell terminal (or command prompt), it is the responsibility of the shell (/bin/bash) to execute the command properly. The activities done by the shell are as follows:

  • 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

Working in the shell : Compare Unix Kernel Shells

Let’s get started by opening the Terminal, and we will familiarize ourselves with the bash shell environment:

  1. Open the Linux Terminal and type in:
    $ echo $SHELL
    /bin/bash
  1. 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.

Bash Shell Version

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.

Comments are closed.