Linux Shell And Shell Scripting

 

What is a shell?

Users communicate with the kernel with a program known as shell . A shell is special user program which provide an interface to user to use operating system services. Shell accept human readable commands from user and convert them into something which kernel can understand. 

An Operating is made of many components, but its two prime components are,

Kernel

Shell


 

A Kernel is at the nucleus of a computer. It makes the communication between the hardware and software possible. While the Kernel is the innermost part of an operating system, a shell is the outermost one.

Shell types:

There are two main shells in Linux:

1. The Bourne Shell: The prompt for this shell is $ and its derivatives are listed below:

POSIX shell also is known as sh

Korn Shell also known as sh

Bourne Again SHell also knew as bash (most popular)

2. The C shell: The prompt for this shell is %, and its subcategories are:

C shell also is known as csh

Tops C shell also is known as tcsh

 

Basic shell commands:

1).File display commands:

cat: It is generally used to concatenate the files. It gives the output on the standard output.

more: It is a filter for paging through text one screenful at a time.

less: It is used to viewing the files instead of opening the file. Similar to more command but it allows backward as well as forward movement.

head : Used to print the first N lines of a file. It accepts N as input and the default value of N is 10.

tail : Used to print the last N-1 lines of a file. It accepts N as input and the default value of N is 10.

 

2).file /directory manipulation commands:

mkdir : Used to create a directory if not already exist. It accepts the directory name as an input parameter.

cp : This command will copy the files and directories from the source path to the destination path. It can copy a file/directory with the new name to the destination path. It accepts the source file/directory and destination file/directory.

mv : Used to move the files or directories. This command’s working is almost similar to cp command but it deletes a copy of the file or directory from the source path.

rm : Used to remove files or directories.

touch : Used to create or update a file.

3). Extract, sort, and filter data Commands: 

grep : This command is used to search for the specified text in a file.

grep with Regular Expressions:

Used to search for text using specific regular expressions in file.

sort : This command is used to sort the contents of files.

wc : Used to count the number of characters, words in a file.

 cut : Used to cut a specified part of a file.

 

4). Basic Terminal Navigation Commands: 

ls : To get the list of all the files or folders.

ls -l: Optional flags are added to ls to modify default behavior, listing contents in extended form -l is used for “long” output

ls -a: Lists of all files including the hidden files, add -a  flag 

cd : Used to change the directory.

du : Show disk usage.

pwd : Show the present working directory.

man : Used to show the manual of any command present in Linux.

rmdir : It is used to delete a directory if it is empty.

locate: It is used to locate a file in Linux System

echo: This command helps us move some data, usually text into a file.

df: It is used to see the available disk space in each of the partitions in your system.

tar : Used to work with tarballs (or files compressed in a tarball archive)

5). File Permissions Commands:

 The chmod and chown commands are used to control access to files in UNIX and Linux systems.

chown: Used to change the owner of the file.

chgrp : Used to change the group owner of the file.

chmod : Used to modify the access/permission of a user.

 

What Is shell script?

Shell Scripting is an open-source computer program designed to be run by the Unix/Linux shell. Shell Scripting is a program to write a series of commands for the shell to execute. It can combine lengthy and repetitive sequences of commands into a single and simple script that can be stored and executed anytime which, reduces programming efforts.

 

Why do we Need Shell Script:

There are many reasons to write shell scripts –

  • To avoid repetitive work and automation
  • System admins use shell scripting for routine backups
  • System monitoring
  • Adding new functionality to the shell etc.

 

How to write a Shell script:

Shell Scripts are written using text editors. On your Linux system, open a text editor program, open a new file to begin typing a shell script or shell programming, then give the shell permission to execute your shell script and put your script at the location from where the shell can find it.

Let us understand the steps in creating a Shell Script:

  1. Create a file using a vi editor(or any other editor). Name script file with extension .sh
  2. Start the script with #! /bin/sh
  3. Write some code.
  4. Save the script file as filename.sh
  5. For executing the script type bash filename.sh

“#!” is an operator called shebang which directs the script to the interpreter location. So, if we use”#! /bin/sh” the script gets directed to the bourne-shell.

Eg.

            #! /bin/sh

             Pwd

              ls 

 

Shell variables:

Variables store data in the form of characters and numbers. Similarly, Shell variables are used to store information and they can used by the shell only.

            variable ="Hello"

             echo $variable

The name of a variable can contain only letters (a to z or A to Z), numbers ( 0 to 9) or the underscore character ( _).

Shell provides a way to mark variables as read-only by using the read-only command. After a variable is marked read-only, its value cannot be changed

Name=”sugumar”

readonly Name

Unsetting or deleting a variable directs the shell to remove the variable from the list of variables that it tracks. Once you unset a variable, you cannot access the stored value in the variable.

unset Name

 

Types of shell variable:

Environment variables – Variables that are exported to all processes spawned by the shell. Their settings can be seen with the env command.

Shell (local) variables – Variables that affect only the current shell.

 

Arrays in Shell Scrpting:

Shell supports a different type of variable called an array variable. This can hold multiple values at the same time. Arrays provide a method of grouping a set of variables. Instead of creating a new name for each variable that is required, you can use a single array variable that stores all the other variables.

Following is the method of creating the array,first you need to define the array name then index and the value.

    NAME[0]="Zara"

    NAME[1]="Qadir"

    NAME[2]="Mahnaz

 

    echo “ ${NAME[*]}"      output=Zara,Qadir ,Mahnaz

    echo  echo " ${NAME[0]}"   output=Zara

 

 Operators in Shell Scripting:

There are 5 basic operators in bash/shell scripting:

  • Arithmetic Operators
  • Relational Operators
  • Boolean Operators
  • Bitwise Operators
  • File Test Operators

 

Arithmetic Operators:

These operators are used to perform normal arithmetics/mathematical operations. There are seven arithmetic operators:

  • Addition (+): Binary operation used to add two operands.
  • Subtraction (-): Binary operation used to subtract two operands.
  • Multiplication (*): Binary operation used to multiply two operands.
  • Division (/): Binary operation used to divide two operands.
  • Modulus (%): Binary operation used to find remainder of two operands.
  • Increment Operator (++): Unary operator used to increase the value of operand by one.
  • Decrement Operator (–): Unary operator used to decrease the value of a operand by one.

Relational Operators:

 Relational operators are those operators which define the relation between two operands. They give either true or false depending upon the relation. There are six types:

  • ‘==’ Operator: Double equal to operator compares the two operands. It returns true if they are equal otherwise returns false.
  • ‘!=’ Operator: Not equal to operator returns true if the two operands are not equal otherwise it returns false.
  • ‘<' Operator: Less than operator returns true if first operand is less than second operand otherwise returns false.
  • ‘<=' Operator: Less than or equal to operator returns true if first operand is less than or equal to second operand otherwise returns false
  • ‘>’ Operator: Greater than operator returns true if the first operand is greater than the second operand otherwise returns false.
  • ‘>=’ Operator: Greater than or equal to operator returns true if first operand is greater than or equal to second operand otherwise returns false.
  • Logical Operators: They are also known as boolean operators. These are used to perform logical operations. There are three types:
  • Logical AND (&&): This is a binary operator, which returns true if both the operands are true otherwise returns false.
  • Logical OR (||): This is a binary operator, which returns true if either of the operands is true or both the operands are true and returns false if none of them is false.
  • Not Equal to (!): This is a unary operator which returns true if the operand is false and returns false if the operand is true.

 

Bitwise Operators:

A bitwise operator is an operator used to perform bitwise operations on bit patterns. There are six types.

  • Bitwise And (&): Bitwise & operator performs binary AND operation bit by bit on the operands.
  • Bitwise OR (|): Bitwise | operator performs binary OR operation bit by bit on the operands.
  • Bitwise XOR (^): Bitwise ^ operator performs binary XOR operation bit by bit on the operands.
  • Bitwise compliment (~): Bitwise ~ operator performs binary NOT operation bit by bit on the operand.
  • Left Shift (<<): This operator shifts the bits of the left operand to left by number of times specified by right operand.
  • Right Shift (>>): This operator shifts the bits of the left operand to right by number of times specified by right operand.

 

File Test Operator: 

These operators are used to test a particular property of a file.

  • -d operator: This operator checks if the given directory exists or not. If it exists then operators returns true otherwise returns false
  • -e operator: This operator checks whether the given file exists or not. If it exists this operator returns true otherwise returns false.
  • -r operator: This operator checks whether the given file has read access or not. If it has read access then it returns true otherwise returns false.
  • -w operator: This operator checks whether the given file has write access or not. If it has write then it returns true otherwise returns false.
  • -x operator: This operator checks whether the given file has execute access or not. If it has execute access then it returns true otherwise returns false.
  • -s operator: This operator checks the size of the given file. If the size of given file is greater than 0 then it returns true otherwise it returns false.

Conditional statements:

While writing a shell script, there may be a situation when you need to adopt one path out of the given two paths. So you need to make use of conditional statements that allow your program to make correct decisions and perform the right actions.

There are total 5 conditional statements which can be used in bash programming

  1. if statement
  2. if-else statement
  3. if..elif..else..fi statement (Else If ladder)
  4. if..then..else..if..then..fi..fi..(Nested if)
  5. switch statement

example:

a=20

b=20

  

if [ $a == $b ]

then

    #If they are equal then print this

    echo "a is equal to b"

else

    #else print this

    echo "a is not equal to b"

fi

 

Loops in Shell Scripting:

 A loop is a powerful programming tool that enables you to execute a set of commands repeatedly

  • while statement
  • for statement
  • until statement

while statement 

Here command is evaluated and based on the result loop will executed, if command raise to false then loop will be terminated 

syntax:   while condition

               do statement

for statement 

The for loop operate on lists of items. It repeats a set of commands for every item in a list. 
Here var is the name of a variable and word1 to wordN are sequences of characters separated by spaces (words). Each time the for loop executes, the value of the variable var is set to the next word in the list of words, word1 to wordN. 

Syntax: 

               for variable in list/array

               Do

                   statement

until statement 

The until loop is executed as many as times the condition/command evaluates to false. The loop terminates when the condition/command becomes true

synatax :  
                 until expression

                 do

 

Functions in Shell Scripting:

 Functions enable you to break down the overall functionality of a script into smaller, logical subsections, which can then be called upon to perform their individual tasks when needed.

Using functions to perform repetitive tasks is an excellent way to create code reuse. This is an important part of modern object-oriented programming principles.

they are also same like other programming languages.by calling the function name you can execute the function and get the output.

Syntax:  

          function_name () {

                                            list of commands

                                            }

Advantages of Shell Scripting:

1. the command syntax are exactly same as those directly entered command line, so the programmer does not need to switch to entirely different syntax.

2.Writting shell scripts are much quicker.

3.quick start .

4.Interactive debugging

 

 

 


Comments

Popular posts from this blog

Oracle Database Server Architecture: Overview

Oracle E-Business Suite (EBS) - Introduction

Why enterprises must not ignore Azure DevOps Server