LAB 4 Shell Scripting 2
LAB 4 Shell Scripting 2
Shell Scripting
COSC-2206
To suggest more improvements and corrections please feel free to email to fatima.rida55@gmail.com. All rights are
reserved by the author. Manufactured in Pakistan. Except as permitted under the Pakistan States Copyright Act of 1971,
no part of this report may be reproduced or distributed in any form or by any means, or stored in a database or retrieval
system, without the prior written consent of the author (fatima.rida55@gmail.com) including, but not limited to,
network or other electronic storage or transmission, or broadcast for distance learning.
1 O P E R ATIN G S Y S T E M S
1. D EFI NIT I O N
An Operating System, or OS, is low-level software that enables a user and higher-
level application software to interact with a computer’s hardware and the data and
other programs stored on the computer.
2. B ASIC F U NC T ION S
3. G O ALS
(a) Execute user programs and make solving user problems easier.
(b) Make the computer system convenient to use.
2 C O M M A N D L IN E U T I L IT I E S
When Linus Torvalds introduced Linux and for a long time thereafter, Linux did not
have a graphical user interface: It ran on character-based terminals only. Command line
utilities are often faster, more powerful, or more complete than their GUI counter-parts.
Sometimes there is no GUI counterpart to a textbased utility. As it is a text-based interface
so it consumes low RAM to run while GUI requires a high specification for running.
3 S HELL
A shell is simply a program which is used to start other programs. It takes the com-
mands from the keyboard and gives them to the operating system to perform the par-
ticular task.
There are many different shells, but all derive several of their features from the Bourne
shell, a standard shell developed at Bell Labs for early versions of Unix. Linux uses an
enhanced version of the Bourne shell called bash or the “Bourne-again” shell. The bash
shell is the default shell on most Linux distributions, and /bin/sh is normally a link to
bash on a Linux system.
T HE S HELL W IN DO W
After logging in, open a shell window (often referred to as a terminal). The easiest
way to do so from a GUI like Ubuntu’s Unity is to open a terminal application, which
starts a shell inside a new window. The window display a prompt at the top that usu-ally
ends with a dollar sign $. If # is the last character it means you are running the command
as root user.
4 B A S IC C O M M A N D S
In this section we will have an insight of some basic commands. Different commands
take multiple arguments and options (where option starts with a dash - sign).
1. echo
The echo command prints its arguments to the standard output.
$ echo Hello World
3. cp
cp copies files. For example, to copy file1 to file2, enter this:
$ cp file1 file2
where source and destination are ful path from the root directory. To copy a num-ber
of files to a directory (folder) named dir, try this instead:
4. cat
It simply outputs the contents of one or more files. The general syntax of the cat
command is as follows:
where file1 and file2 should be in current working directory or otherwise write
down full path starting from root. When you run this command, cat prints the
contents of file1, file2, and any other files that you specify (denoted by ...), and
then exits. The command is called cat because it performs concatenation when it
prints the contents of more than one file.
5. mv
It renames a file. For example, to rename file1 to file2, enter this:
$ mv file1 file2
6. rm
To delete (remove) a file, use rm. After a file is removed, it’s gone from the system
and generally cannot be undeleted.
$ rm file
7. touch
The touch command creates a file. If the file already exists, touch does not change it,
but it does update the file’s modification time stamp.
$ touch file
8. pwd
The pwd (print working directory) program simply outputs the name of the cur-
rent working directory.
9. date
Displays current time and date
10. clear
Clears the terminal screen.
11. exit
Exit the Shell
head /etc/passwd
tail /etc/passwd
shows the last 10 lines. To change the number of lines to display, use the -n option,
where n is the number of lines you want to see.
13. sort
The sort command quickly puts the lines of a text file in alphanumeric order. The -r
option reverses the order of the sort.
14. grep
The grep command prints the lines from a file or input stream that match an
expression. For example, to print the lines in the /etc/passwd file that contain the
text root, enter this:
$ grep root / e t c/ *
Two of the most important grep options are -i (for case-insensitive matches) and -v
(which inverts the search, that is, prints all lines that don’t match).
15. mkdir
The mkdir command creates a new directory dir:
$ mkdir dir
16. rmdir
The rmdir command removes the directory dir:
$ rmdir dir
17. cd
The current working directory is the directory that a process (such as shell) is cur-
rently in. The cd command changes the shell’s current working directory:
$ cd dir
If you omit dir, the shell returns to your home directory, the directory you started in
when you first logged in.
18. less
The less command comes in handy when a file is really big or when a command’s
output is long and scrolls off the top of the screen. To page through a big file like
/usr/share/dict/words, use the command
$ less /usr/share/dict/words
When running less, you’ll see the contents of the file one screenful at a time. Press
the spacebar to go forward in the file and the b key to skip back one screenful. To
quit, type q.
19. man
Linux systems come with a wealth of documentation. For basic commands, the
manual pages (or man pages) will tell you what you need to know. For example, to
see the manual page for the ls command, run man as follows:
$ man ls
5 O UTPUT R ED IR E C T IO N
To send the output of command to a file instead of the terminal, use the > redirection
character:
$ command > file
The shell creates file if it does not already exist. If file exists, the shell erases the original file
first. You can append the output to the file instead of overwriting it with the »
redirection syntax:
$ command » file
6 N AV IG AT IN G D IR E C T O R I E S
Unix has a directory hierarchy that starts at / , sometimes called the root directory. The
directory separator is the slash (/).
PATH N A M E
When you refer to a file or directory, you specify a path or pathname. There are two
different ways of writing files path:
1. Absolute Path
When a path starts with root, it is a full or absolute path.
/home/cslab/Desktop/Lab01
2. Relative Path
A path starts at current directory is called a relative path.
./Lab01
7 S HELL S C R IP T IN G
If the shell offers the facility to read its commands from a text file ,then its syntax and
features may be thought of as a programming language, and such files may be thought of
as scripts. So a shell is actually two things:
2. A programming language.
Shell Script is series of commands written in plain text file the shell reads the commands
from the file just as it would have typed them into a terminal. The basic advantage of
shell scripting includes:
1. Shell script can take input from user, file and output them on screen.
# ! / b i n / bash
# S c r i p t to p r i n t user i n f o r m a t i o n who c u r r e n t l y l o g i n , c u r r e n t date and ti m e
clear
echo " H e l l o $USER"
# echo i n d u c e n ext l i n e at the end
# \ c r e s t r i c t o ut p ut on same l i n e and used w i t h f l a g e
echo e " Today i s \ c " ; d a t e
# p r i n t the l i n e co unt
echo "Number o f l i n e s , t o t a l words and c h a r a c t e r s : " ; l s l | wc
echo " Calendar "
c a l exit
0
Task to DO