Tuesday 12 July 2016

What is a Shell & Shell script


What is a shell ?

The Shell is a command line interpreter that executes commands read from the standard input device such as keyboard or from a file. In other forms, it is a user program or it is an environment provided for user interaction. We can start using the shell by opening the console(terminal). The shell is not a part of system kernel, but it uses the system to execute programs. what is a shell .

The various shells available for Linux are:

  • BASH (Bourne-Again SHell) – Most common shell in Linux. It is an Opensource software
  • CSH (C SHell) – The C shell’s syntax and usage are very similar to the C programming language.
  • KSH (Korn SHell) – Created by David Korn at AT & T Bell Labs. The Korn Shell also was the base for the POSIX Shell standard specifications.
  • TCSH – It is an enhanced but completely compatible version of the Berkeley UNIX C shell (CSH).

What is a shell script ?

  • A shell script is series of commands stored in a plain text file.
  • Shell scripts are a fundamental part of the UNIX and Linux programming environment.
  • Scripts are useful for automating the processes repeatedly at the command line.
  • Linux users involved with system administration and troubleshooting often work with the shell scripts.
  • /etc/profile is the system-wide user login script which runs whenever a user logs into the system.

Each shell script consists of

  • Shell keywords such as if..else, do..while.
  • Shell commands such as pwd, test, echo, continue, type.
  • Linux binary commands such as w, who, free etc..
  • Text processing utilities such as grep, awk, cut.
  • Functions – add frequent actions together via functions. For example, /etc/init.d/functions file contains function to be used by most or all system shell scripts in the /etc/init.d directory.
  • Control flow statments such as if..then..else or shell loops to preform repeated actions.

Each script has purpose

  • Specific purpose – For example, backup file system and database to NAS server.
  • Act like a command – Each shell script is executed like any other command under Linux.
  • Script code usability – Shell scripts can be extended from existing scripts. Also, you can use functions files to
  • package frequently used tasks.

Why shell scripting?

  • Shell scripts can take input from a user or file and output them to the screen.
  • Whenever you find yourself doing the same task over and over again you should use shell scripting, i.e., repetitive
  • Task automation.
  • Creating your own power tools/utilities.
  • Automating command input or entry.
  • Customizing administrative tasks.
  • Creating simple applications.
  • Since scripts are well tested, the chances of errors are reduced while configuring services or system administration tasks such as adding new users.
  • Real time usage of shell scripts where it is actively used:
  • Monitoring Linux system.
  • Data backup and creating snapshots.
  • Dumping Oracle or MySQL database for backup.
  • Creating email based alert system.
  • Find out what processes are eating up our system resources.
  • Find out available and free memory.
  • Find out all logged in users and what they are doing.
  • Find out if all necessary network services are running or not. For example if web server failed then send an alert to system administrator via a pager or an email.
  • Find out all failed login attempt, if login attempt are continue repeatedly from same network IP automatically block all those IPs accessing your network/service via firewall.
  • User administration as per our own security policies.
  • Find out information about local or remote servers.
  • Configure server such as BIND (DNS server) to add zone entries.

Advantages

  • Easy to use.
  • Quick start, and interactive debugging.
  • Time Saving.
  • Sys Admin task automation.
  • Shell scripts can execute without any additional effort on nearly any modern UNIX / Linux / BSD / Mac OS X operating system as they are written an interpreted language.

Disadvantages

  • Compatibility problems between different platforms.
  • Slow execution speed.
  • A new process launched for almost every shell command executed.
Your Feedback will motivate us to provide the more to you……….