0% found this document useful (0 votes)
7 views

Manual - Lab02

The document is a lab manual for the Operating System Lab at the National University of Computer and Emerging Sciences, focusing on running commands in the Ubuntu Terminal and compiling C programs. It covers various topics including Shell, basic Linux commands, file and directory management, user and group management, and permissions. The manual provides detailed examples and explanations for each command and concept to aid students in their practical understanding of Linux operating systems.

Uploaded by

honeyakhter12
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Manual - Lab02

The document is a lab manual for the Operating System Lab at the National University of Computer and Emerging Sciences, focusing on running commands in the Ubuntu Terminal and compiling C programs. It covers various topics including Shell, basic Linux commands, file and directory management, user and group management, and permissions. The manual provides detailed examples and explanations for each command and concept to aid students in their practical understanding of Linux operating systems.

Uploaded by

honeyakhter12
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

National University of Computer and Emerging

Sciences
Operating System Lab - 02
Lab Manual

Objective
This lab is all about running commands in Ubuntu Terminal and compiling C program in Ubuntu

Table of Content
Objective ..........................................................................................................................................1
Table of Content...............................................................................................................................1
Shell .................................................................................................................................................2
Commands in Linux .........................................................................................................................2
Patterns and Wildcards....................................................................................................................9
Pipe in Linux................................................................................................................................... 10
Compile C program in Linux .......................................................................................................... 10
Introduction to Shell Scripting ........................................................................................................ 11
Lab Activity ..................................................................................................................................... 12
Operating Systems Lab Manual 02

Shell
Fortunately or unfortunately, a computer can only understand binary language and humans can
easily understand English language or equivalent high level language and therefore it is difficult
to interpret and understand with the computer system. In order to ward off this difficulty every
operating system has got an inbuilt interpreter(Shell). A shell accepts instructions or commands
fed by user in user understandable language and translate it to binary language which a
computer can easily understand. So inshort a Shell is a language translator and in this lab is all
about introducing Shell of the Linux and the commands that are most commonly used.

Figure below will make the above paragraph more meaningful and reader can understand it
better.

English to Yes, Boss I understand


User Input
Shell Binary you request and will
(Commands)
Conversation execute it.

Figure 1 Shell - A diagrammatic representation

Commands in Linux
From here the reader is exposed to the basic Linux commands. All the commands have to be
tried in the terminal. Throughout the lab manuals Ubuntu will be used for explaining the
concepts. To know how to start a Terminal please see Lab Manual 01 – Introduction to
Terminal. The commands with their usage and example is given in the table below:

NOTE: All Linux commands are case sensitive i.e. ‘cp’ is not equivalent to ‘CP’. Also, all the files
and directories in linux are case sensitive so for example ‘/etc/hosts’ is not equivalent to
‘/etc/Hosts’ and so hosts and Hosts are two different files in the same directory.

Command Switch Description Example Output


BASIC COMMANDS
Manual/Help for any command
Opens manual in
terminal, press ‘h’ for
Gives manual for the specified
man None man mkdir help or ‘q’ to quit and
command
get back to terminal

2|P a g e
Operating Systems Lab Manual 02

Command Switch Description Example Output


Date and Time Commands
Sun Jan 19 22:11:00
None Displays the system date date
MST 2014
-u, –utc, Displays the universal Mon Jan 20 16:09:20
date -u
--universal coordinated time UTC 2014
Displays the date specified by date –d Wed Dec 3 00:00:00
-d, --date
string “12/02/2014” GMT 2014
date –s “20
Sets the date specified by the Mon Jan 20 18:00:00
-s JAN 2014
string GMT 2014
18:00:00”
+%d Displays the day date +%d 20
+%m Displays the month date +%m 01
+%y Displays the year date +%y 2014
Displays the date in
+%D date +%D 20/01/2014
mm/dd/yyyy format
Displays the hour in 24 hour
+%H date +%H 18
format
+%M Displays the minute date +%M 36
date
+%S Displays the second date +%S 40
Displays the time in
+%T date +%T 15:20:20
HH:MM:SS in 24 hour format
Displays the abbreviated
+%a date +%a Mon
weekday
Displays the full weekday
+%A date +%A Monday
name
Displays the abbreviated
+%b date +%b Jan
month
+%B Displays the full month name date +%B January
Displays the local system date Mon 20 Jan 2014
+%c date +%c
and time 06:05:06 PM GMT
+%C Displays century date +%C 20
Displays the time in
HH:MM:SS in 12 hour format
+%r date +%r 06:05:49 PM
followed by AM or PM

Managing Users and Groups in Linux (root user only)


None Creates a new user profile or useradd abc User Created
useradd update existing user
information
None Add a group to the system addgroup Adding group `example'
addgroup example (GID 1003) ...
Done.
None Creates a user account that adduser Ask for password and
can be used for login username some data along with
confirmation and
adduser creates the account
--ingroup Creates user account and add adduser Same as adduser
that user in a group specified --ingroup <username> and also it
sudo abc adds the user to the

3|P a g e
Operating Systems Lab Manual 02

Command Switch Description Example Output


group specified
None Deletes the user from the deluser abc Removing user `abc' ...
system Done.
--group Deletes the group from the deluser Removing group
system --group `example' ...
example Done.
deluser --remove- Removes the user along with deluser -- Removing files ...
home its home folder directory remove- Removing user `abc' ...
home abc Done.
--remove-Removes all the files and deluser -- Removing files
all-filesdirectories belong to the remove-all- Removing user ‘abc’
specified user files abc Done.
None Change password of the passwd OR passwd: password
passwd current logged in user or user passwd abc updated successfully
specified
Shutdown or Restart System
The system will
shutdown
None Power off the computer shutdown now for
now
maintenance
shutdown -f
-f Restart system quickly None
now
shutdown
Sends warning message to
shutdown -k
-k user but does not shut down None
now
system
shutdown –r
-r Reboots after shutdown None
now
sudo
poweroff none Shutdowns computer None
poweroff
reboot none Restarts computer sudo reboot None

Files and Directories in Linux


Recall that in Lab Manual 01, in generalized Linux file system. The basic unit is a file. It contain
data about the file, essential metadata and non-essential metadata and some information. In
Linux everything is a file. A directory is a special kind of the file. Even terminal window
/dev/pts/4 or hard disk /dev/sdb is represented somewhere in the system as a file.

Relative and Absolute Paths

In linux file system, when you type a path starting with a slash (/), then the root of the file tree is
assumed. If you don't start your path with a slash, then the current directory is the assumed
starting point. The screenshot below first shows the current directory /home/paul. From within
this directory, you have to type cd /home instead of cd home to go to the /home directory.

4|P a g e
Operating Systems Lab Manual 02

MANAGING FILES AND DIRECTORIES IN LINUX


File Basics
None Creates a file touch file1 File Created
touch –t
touch Creates a file with given File created
-t 130207111630
timestamp
BigBattle
HelloWorld.c: C
file* HelloWorld.c
source, ASCII text
file* None Determines file type
/dev/sda: block special
file* /dev/sda
(8/0)
None Creates link of the file ln file1 link1 None
ln Creates shortcut link of the ln -s file1 slink1 None
-s
file or directory ln -s dir1 dirslink1 None
Displaying Contents of a File
Displays contents of file in
cat none cat file1 <contents of file1>
the terminal
Displays first 10 lines in <first 10 lines of the
none head file1
terminal file content>
head
Displays first specified <first 20 lines of the
-[number] head -20 file1
number of lines in terminal file contents>
Displays last 10 lines in <last 10 lines of the
none tail file1
terminal file content>
tail
Displays last specified <last 17 lines of the
-[number] tail -17 file1
number of lines in terminal file contents>
Copy, Move, Rename or Remove Files or Directory
None Copies a file cp fileA fileB None
cp -r Copies a directory cp -r dir1 dir2 None
-i Copies files but prevents cp -I a.c b.c None

5|P a g e
Operating Systems Lab Manual 02

overwrites
Preserve permissions and
-p cp -P file* cp None
timestamps
Moves/renames files and mv fileA ~/fileB None
mv none
directories Mv dirA dirB None
none Removes a file rm file1 None
-r Removes a directory rm -r dir1 None
rm
For Removal, removes
-rf rm -rf dir1 None
non-empty directories
Directory Basics
None Determines the current Pwd /home/alishah/Desktop
pwd
path
Creates a directory in mkdir dir1 None
None current or specified sudo mkdir
None
directory /home/dir1
Creates directory or mkdir
mkdir
-p directories in tree hierarchy -p None
manner dir1/subdir/subsubdir
Prints info about the mkdir: created
-v mkdir dir1
directory being created directory 'dir1'
<content of current
Displays the content of ls
directory>
None current directory or
<content of /etc
specified directory ls /etc
directory>
<contents with detail
Displays the content in
-l ls -l like owner, creator
long format and with detail
etc>
Displays the content along
with hidden content of <content of current
ls -a ls -a
current or specified directory>
directory
Displays the content in
-h ls -h <contents>
human readable form
Displays the content in
recursive order (it list file
-R and directories along with ls -R <contents>
files and subdirectories of
subdirectories and so on)

File/Directory Permissions and Ownerships

Every file created in file system has an owner and permissions associated with it. There are
basically three kinds of user available in Linux

1. Owner (User who created the file/directory)


2. Group
3. Other Users/Groups

6|P a g e
Operating Systems Lab Manual 02

Each of the above-mentioned user will have access permissions. Following are the three
permissions associated with all the files.

1. Read (Denoted by r)
2. Write (Denoted by w)
3. Execute (Denoted by x)

These permissions can be visualized by ‘ls -l <file/directory name>’

Let us examine ‘-rw-rw-r--‘ the first ‘-‘ represent that it’s a file ‘d’ would represent that it’s a
directory, the next 3 characters ‘rw-‘ are the rights for the owner, next three are the permissions
of the group and last three characters are the permissions for the other users/group.

The third column represents states the user who is the owner of the file. Now the question is:
can I change the permission or ownership of a file or directory. The answer is ‘yes!’

Chmod can be issued in two different ways, First method is 4 2 1 code in digital electronics

4 2 1
r w X
1 or 0 1 or 0 1 or 0
This is really simple, if a user has to be assign with all permission (Read, Write and Execute), 1
has to be applied in all the permissions that are required: 1(r) + 1(w) + 1(x) = 1(4) + 1(2) + 1(1) =
7 so 7 is the number that will fetch all the permissions for that file or folder.

Owner Group Other


4 2 1 4 2 1 4 2 1
R w x r w x R w X
Assuming that all the users get rwx permission so 4+2+1 = 7 will get mathematically 777.
Below table shows the syntax and example of using chmod command and also how to change
the owner of the file i.e. chown command.

7|P a g e
Operating Systems Lab Manual 02

Command Switch Description Example Output


None Changes permissions of a file chmod 700 file1 None
mode of 'file1'
Output a diagnostic for every file chmod -v 650 changed from 0700
-v
chmod processed file1 (rwx------) to 0650
(rw-r-x---)
Changes permissions files and chmod -R 760
-R None
directories recursively dir1
chown username
None Change the ownership of a file None
filename
chown
Change the ownership files and chown -R user
-R None
directories recursively dir1

Other Useful Commands in Linux


Command Switch Description Example Output
Search pattern in a given grep ‘hellow’
None <search results>
file file1.txt
Search given pattern in a grep ‘hEllow’
-i <search results>
file ignoring case file1.txt
Search given pattern in all
grep -r ‘helllow’
-r the files in a directory <search results>
dir1
recursively
Search words only not grep –w hello
grep -w <search results>
strings cricket.txt
Show match count for grep -c hello
-c <search results>
pattern cricket.txt
Show line number for the grep -n hello
-n <search results>
matching pattern in file /home/cricket.txt
Prints match inverse, i.e.
grep -v hello
-v prints all those lines which <search result>
/home/cricket.txt
do not contain the pattern.
<calendar of current month
Get the calender of the Cal
and year>
current or specified month
cal None <calendar of September
and year (only month will cal 9 2020
2020>
not do)
cal 2020 <calendar of year 2020>
Gives a brief description ls (1) - list directory
whatis None whatis ls
of command contents
Gives the path of the ls: /bin/ls
whereis None whereis ls
Command /usr/share/man/man1/ls.1.gz
To know the status and
ifconfig -a configurations of network ifconfig -a <output>
interfaces
To know about user
finger None finger username <output about username>
account in Linux Users
Show snapshot of running
ps None Ps <process with PID output>
processes

8|P a g e
Operating Systems Lab Manual 02

<processes with PID


-A Show all the processes ps -A
output>
Kills the process with
kill None kill 1434 None
specified process id
alias None Renames a command alias l=’ls -al’ None
Undo renaming a
unalias None unalias l None
command
Shows detail of disk
usage. df works by
Filesystem 1K-blocks
examining a directory
df None Df Used Available Use%
entry, which generally are
Mounted on …
updated only when a file
is closed.
Estimates file space
usage. Output the
du None summary of disk usages Du <output>
of every file hierarchically
i.e. recursively
It is use to mound a file mount /dev/sda5
mount None system that do not mound or None
itself mount /dev/usb
Runs the command as sudo cp
None root/super ~/Desktop/file None
sudo
user/administrator /usr
-i Login as root user sudo -i <ask for password>
Change username or
su None su username <logs in to username>
become a super user

Patterns and Wildcards


Patterns aka regular expression uses wildcards to represent unknown values. Wildcards helps
the user to perform certain operations with specifying filename or text pattern. There are three
special characters basically made available for this purpose. There are:

1. * - will match against none or one or a string of more than a character


2. ? - can be used to match one character
3. [] - matches one specified character out of a group of characters

All the characters are discussed in detail below:

WildCard ‘*’

• ‘$ ls file*’ - list all the files in current directory starting with filename ‘file’.
• ‘$ ls *2.txt’ - list all the files in current directory ending with ‘2.txt’

WildCard ‘?’

• ‘$ ls file.tx?’ - list all the files that begins with ‘file.tx’

9|P a g e
Operating Systems Lab Manual 02

WildCard ‘[]’

• ‘$ ls rmt[12345]’ - list all the file that begins with ‘rmt’ and has a 1,2,3,4 or 5 after it.

Pipe in Linux
If a user in Linux likes to combine two or more commands, pipes is the option. Example
“ ls -al | grep ‘mp3’ ” many options can be tried easily. Pipe is represented by the symbol ‘|’. Let
us look at the example below:

$ cat file1.txt | grep ‘world populations’

First the command cat file1.txt is executed and then the output from that command is fed to the
second command as an input. Likewise, many other combinations can be tried.

$ ls | grep ‘mp3’ | sort -r

First ls command will grab the list of files and directories in the current relative directory whose
output will be fed to grep command, that will pick out all the line containing ‘mp3’ pattern which
will be fed to sort command and this will print the output in reverse order as per the -r switch.

Compile C program in Linux


In future lab manuals, you will need to write programs and run them. You will write programs in
C programming language and this session will show how to write a C program, compile the
program and how to execute it using terminal.

1. Open the terminal and create a file with ‘c’ extension.

$ nano hellow.c
2. Write the following text to the file:

#include<stdio.h>
Int main() {
printf(“hellow world from C program”);
return 0;
}
3. Compile the file and create an executable object file
$ gcc -o hellow.c helloExample
4. Run the newly created object file
$ ./helloExample

10 | P a g e
Operating Systems Lab Manual 02

The snapshot of the terminal as below:

Introduction to Shell Scripting


This section covers an introduction to Lab Manual 03. We have already learned that Shell is a
program which provides CLI to the OS. Shell scripting is used when there is a sequence of
commands that is needed to be executed frequently. These commands can be written in a shell
script file ‘.sh’ and that file can be executed. This makes the execution much simpler.

Examples of usage of Shell Script is below:

1. To create a number of user by system administrator.


2. To search for a pattern in file or group of files available in some directories.

Advantage of using Shell Script is that It is easy to write, run and debug and disadvantage is
that requirements of high complexity cannot be programmed in Shell.

11 | P a g e
Operating Systems Lab Manual 02

Lab Activity
1) User Account
a. Create a group name ‘OSLAB02’
b. Create a user account ‘OSUser1’ and ‘OSUser2’ and add it to the group which is
created in ‘a’
c. Also add the newly created user to group ‘sudo’
d. Login in to that user using terminal

2) Create the following directories with one command.


dirOSLAB -> subDir -> subsubdir -> OSLAB2

3) Write 2 C program one prints “I love Operating System” and other prints “I love Linux”.
Compile and Run both programs and print the output to two different files. After then
combine both the files in one new file using a single command.

4) Perform the following activity


a. Create user ‘abc’
b. Create a file ‘file1.txt’
c. Change the owner of the file to newly created user “abc”
d. Rename a file ‘file1.txt’
e. Create a file with timestamp
f. Make a copy of /proc directory
g. Write a command to delete empty
h. Write a command to delete non-empty directories
i. Create a dummy file using vi editor and then try search a specific word.
j. Create a dummy file and then change the ownership of the dummy file.
k. Determine the process id of the user from which you are logged in and then
terminate that process. What happens after terminating the particular process id?
l. List all files in system having string ‘lab’ in their filenames.
m. Determine the storage capacity utilized in system.
n. Analyze the user login activities that can be used for audit purpose
o. Write a command to restart network services.

12 | P a g e

You might also like