Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

LAB 3 Shell Scripting 1

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Lab Manual 03

Shell Scripting

Operating systems Lab


COSC-2206

Copyright © 2019 Rida Fatima

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.
LAB 3(Shell Scripting)
What Is "The Shell"?

Simply put, the shell is a program that takes commands from the keyboard and gives them to
the operating system to perform. In the old days, it was the only user interface available on a
Unix-like system such as Linux. Nowadays, we have graphical user interfaces (GUIs) in
addition to command line interfaces (CLIs) such as the shell.
On most Linux systems a program called bash (which stands for Bourne Again SHell, an
enhanced version of the original UNIX shell program, sh, written by Steve Bourne) acts as
the shell program.
What's A "Terminal?"
It's a program called a terminal emulator. This is a program that opens a window and lets you
interact with the shell.
Testing the Keyboard
OK, let's try some typing. Bring up a terminal window. You should see a shell prompt that contains
your user name and the name of the machine followed by a dollar sign. Something like this:

[me@linuxbox me]$

Excellent! Now type some nonsense characters and press the enter key.

[me@linuxbox me]$ kdkjflajfks

If all went well, you should have gotten an error message complaining that it cannot understand
you:

[me@linuxbox me]$ kdkjflajfks


bash: kdkjflajfks: command not found
Wonderful! Now press the up-arrow key. Watch how our previous command "kdkjflajfks" returns.
Yes, we have command history. Press the down-arrow and we get the blank line again.
Recall the "kdkjflajfks" command using the up-arrow key if needed. Now, try the left and right-
arrow keys. You can position the text cursor anywhere in the command line. This allows you to
easily correct mistakes.
Navigation
In this lesson, I will introduce your first three commands:
pwd (print working directory), cd (change directory), and ls (list files and directories).
File System Organization
Like that legacy operating system, the files on a Linux system are arranged in what is called a
hierarchical directory structure. This means that they are organized in a tree-like pattern of
directories (called folders in other systems), which may contain files and other directories. The

_____________________________________________________________________________1
7
Operating Systems-Lab [COSC 2206]
first directory in the file system is called the root directory. The root directory contains files and
subdirectories, which contain more files and subdirectories and so on and so on.
Most graphical environments today include a file manager program to view and manipulate the
contents of the file system. Often you will see the file system represented like this:

One important difference between the legacy operating system and Unix-like operating systems
such as Linux is that Linux does not employ the concept of drive letters. While drive letters split
the file system into a series of different trees (one for each drive), Linux always has a single tree.
Different storage devices may contain different branches of the tree, but there is always a single
tree.

Pwd
Since a command line interface cannot provide graphic pictures of the file system structure, it must
have a different way of representing it. Think of the file system tree as a maze, and you are standing
in it. At any given moment, you are located in a single directory. Inside that directory, you can see
its files and the pathway to its parent directory and the pathways to the subdirectories of the
directory in which you are standing. The directory you are standing in is called the working
directory. To find the name of the working directory, use the pwd command.
[me@linuxboxme]$ pwd
/home/me

When you first log on to a Linux system, the working directory is set to your home directory. This is
where you put your files. On most systems, your home directory will be called /home/your_user_name,
but it can be anything according to the whims of the system administrator.

To list the files in the working directory, use the ls command.

[me@linuxbox me]$ ls
Desktop Xrootenv.0 linuxcmd
GNUstep bin nedit.rpm
GUILG00.GZ hitni123.jpg nsmail

I will come back to ls in the next lesson. There are a lot of fun things you can do with it, but I
have to talk about pathnames and directories a bit first.

_____________________________________________________________________________1
8
Operating Systems-Lab [COSC 2206]
cd
To change your working directory (where you are standing in the maze) you use the cd command.
To do this, type cd followed by the pathname of the desired working directory. A pathname is the
route you take along the branches of the tree to get to the directory you want. Pathnames can be
specified in one of two different ways; absolute pathnames or relative pathnames. Let's look with
absolute pathnames first.

An absolute pathname begins with the root directory and follows the tree branch by branch until
the path to the desired directory or file is completed. For example, there is a directory on your
system in which most programs are installed. The pathname of the directory is /usr/bin. This means
from the root directory (represented by the leading slash in the pathname) there is a directory called
"usr" which contains a directory called "bin".

Let's try this out:

[me@linuxbox me]$ cd /usr/bin


[me@linuxbox bin]$ pwd
/usr/bin
[me@linuxbox bin]$ ls
[ lwp-request
2to3 lwp-rget
2to3-2.6 lxterm
a2p lz
aalib-config lzcat
aconnect lzma
acpi_fakekey lzmadec
acpi_listen lzmainfo
add-apt-repository m17n-db
addpart magnifier

and many more...

Now we can see that we have changed the current working directory to /usr/bin and that it is full
of files. Notice how your prompt has changed? As a convenience, it is usually set up to display the
name of the working directory.

Where an absolute pathname starts from the root directory and leads to its destination, a relative
pathname starts from the working directory. To do this, it uses a couple of special notations to
represent relative positions in the file system tree. These special notations are "." (dot) and ".." (dot
dot).

_____________________________________________________________________________1
9
Operating Systems-Lab [COSC 2206]
The "." notation refers to the working directory itself and the ".." notation refers to the working
directory's parent directory. Here is how it works. Let's change the working directory to /usr/bin
again:

[me@linuxboxme]$ Cd/usr/bin
[me@linuxboxbin]$ pwd
/usr/bin

O.K., now let's say that we wanted to change the working directory to the parent of /usr/bin
which is /usr. We could do that two different ways. First, with an absolute pathname:

[me@linuxboxbin]$ cd/usr
[me@linuxboxusr]$ pwd
/usr

Or, with a relative pathname:

[me@linuxboxbin]$ cd..
[me@linuxboxusr]$ pwd
/usr

Two different methods with identical results. Which one should you use? The one that requires
the least typing!

Likewise, we can change the working directory from /usr to /usr/bin in two different ways. First
using an absolute pathname:

[me@linuxboxusr]$ cd/usr/bin
[me@linuxboxbin]$ pwd
/usr/bin

Or, with a relative pathname:

[me@linuxboxusr]$ cd./bin
[me@linuxboxbin]$ pwd
/usr/bin

Now, there is something important that I must point out here. In almost all cases, you can omit
the "./". It is implied. Typing:

[me@linuxbox usr]$ cd bin

_____________________________________________________________________________2
0
Operating Systems-Lab [COSC 2206]
Would do the same thing. In general, if you do not specify a pathname to something, the working
directory will be assumed. There is one important exception to this, but we won't get to that for a
while.

A Few Shortcuts
If you type cd followed by nothing, cd will change the working directory to your home directory.
A related shortcut is to type cd ~user_name. In this case, cd will change the working directory to the
home directory of the specified user.
Typing cd - changes the working directory to the previous one.

Know how to move from one working directory to another working directory, we're going to take
a tour of your Linux system and, along the way, learn some things about what makes it tick. But
before we begin, I have to teach you some tools that will come in handy during our adventure.
These are:
ls (list files and directories)
less (view text files)
 file (classify a file's contents)
ls
The
 ls command is used to list the contents of a directory. It is probably the most commonly used
Linux command. It can be used in a number of different ways. Here are some examples:

Examples of the ls command
 
Command Result
 
Ls List the files in the working directory
 
ls /bin List the files in the /bin directory (or any other directory you care to specify)
 
ls –l List the files in the working directory in long format
 
ls -l /etc /bin List the files in the /bin directory and the /etc directory in long format
 
ls -la .. List all files (even ones with names beginning with a period character, which
are normally hidden) in the parent of the working directory in long format


These examples also point out an important concept about commands. Most commands operate
like
 this:
Command
 -options arguments
Where command is the name of the command, -options is one or more adjustments to the
command's behavior, and arguments is one or more "things" upon which the command operates.
In the case of ls, we see that ls is the name of the command, and that it can have one or more
options, such as -a and -l, and it can operate on one or more files or directories.


_____________________________________________________________________________2
 1
Operating Systems-Lab [COSC 2206]
A Closer Look at Long Format
If you use the -l option with ls, you will get a file listing that contains a wealth of information
about the files being listed. Here's an example:

Assignment No 3
1. Practically perform all above commands and write output here
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------
_____________________________________________________________________________2
2
Operating Systems-Lab [COSC 2206]

You might also like