ulp file by rex
TRANSCRIPT
-
8/14/2019 ULP File by REX
1/50
INDEX
Sr. No. Name of Experiment Date Signature
1. Installation of Linux onsystem dual boot with
Windows Operating system.
2. Familiarize with Unix/Linux
logging/logout and simple
commands.
3. Familiarize with vi editors.
4. Unix File System- Files and
Directories.
5. Managing users and groups in
Linux- adding, modifying and
password aging.
6. Create, remove and resize
various types of partitions
through GUI as well as
Command line.
7. Introduction to shell.
8. Using Bash shell develop
simple shell programs.
PRACTICAL-1
-
8/14/2019 ULP File by REX
2/50
AIM: Install Linux on the system dual boot with the windows operating
system.
Hardware Requirements
At least 4MB of RAM.
Memory is speed, so if we have more RAM we'll thank us for it later. If we are a
power user, 8MB should be more than enough for most applications. If we want
to run XP Window, our system will require at least 8MB of RAM.
A hard drive with space available for installing Linux. The amount of space
required depends on the amount of software we are installing and how much free
space we wish to leave for us. We can install Linux in very small amounts of disk
space, but a realistic minimum is about 150MB. The complete installation can use
up 250MB, with more useful for data files.
A Hercules, CGA, EGA, VGA, or Super VGA video card and monitor. In
general, if our video card and monitor work under MS-DOS or Microsoft
Windows, then Linux should be able to use them without any problem.
PROCEDURE: -
Preparing the Computer.
Boot the system with the Red Hat Enterprise Linux CD (disk1) in the
CDROM drive.
Enter the BIOS setup during boot.
Set systems boot order to CDROM, A, C.
Save and Exit the BIOS setup.
Installing Red Hat Enterprise Linux in Graphical mode.
Boot up system using CD.
-
8/14/2019 ULP File by REX
3/50
-
8/14/2019 ULP File by REX
4/50
Choose enable Firewall and allow ssh. Leave SELinux at the default state
Active.
Select the appropriate language support.
Set the time zone as appropriate for our location.
Set the root password to redhat.
Select Customize the set of packages to be installed and click Next.
Unselect ALL selections except the X Window System and click Next.
We should now be at theAbout to Install Screen .Click Next to begin.
Track the progress of file system formatting by switching to tty5 (Ctrl
AltF5 will take us there; Alt-F7 will return us to the installer).
After the reboot following the installation, complete the initial setup tool,
do not register the machine with Red Hat Network. Select Tell Me Why
followed by Remind Me Later.
-
8/14/2019 ULP File by REX
5/50
PRACTICAL-2
AIM: Familiarize with Unix/Linux logging/logout and simple
commands.
whatis
Display short description of commands.
The whatis tool provides an easier way of getting quick.
Explanation of what another command does
use a database that is updated nightly.
--help
display usage summary and argument list
usage statement that describe the commands
syntax
and list of options it accepts and what they do.
man
provides the documentation for commands
almost every command has a man page
pages are grouped into chapters
collectively referred to as Linux manual
info
Similar to man, but often more in-depth Run info without args to list all pages
Info pages are structured like a website
Each pages is divided into nodes
Links to nodes are preceded by *
-
8/14/2019 ULP File by REX
6/50
pwd
Displays the absolute path to the current directory
the current working directory is the directory in
which you are working.
cd
cd changes directories to an absolute or relative
path
$ cd /home/Joshua/work
$ cd project/docs
to move your home directory$ cd
to move to the parent of your currentdirectory$ cd . .
to go in home directory of current user$ cd~
ls
Lists the content of the current directory or a
specified directory
ls without arguments lists files and directory
names in the current directory
ls lists the contents of directory given as an
argument
cp
it coping files and directories
mv
Move and/or rename files and directories
-
8/14/2019 ULP File by REX
7/50
touch
Create empty files or update file timestamps
rm
Use for removing files
mkdir
makes a directory
mkdir dirname
rmdir
Remove an empty directory
cat
Contents of the files are displayed
sequentially with no break
Some useful options use with cat
-A show all characters. Including control
characters and non printing characters
-b -number each (non-blank) line of output
less
Viewing text page by page
Scroll with arrows/pg up/pg down
history
Use to see list of remembered commands
parameter/variables( $ )
Line substitute the value of the variable in a
command
Pipe( | )
-
8/14/2019 ULP File by REX
8/50
Pipe the standard output of one command in to the
standard input of another command
| command1 | command2
Pipes the standard output of command into the
standard input of command2
chmod
Use to change the access modes by symbolic method or
numeric method
Where mode is:
u, g or o for user, group and other
+ or - for grant or deny
r, w or x for read, write or execute
Permissions are calculated by adding:
4(for read)
2(for write)
1(for execute)
df
reports total kilobytes, kilobytes used, kilobytes free
per file system
-h displays sizes in easier to read units
Du
Reports kilobytes used per directory
also take h option
mount and un-mount
use to mount the device and removable media
before accessing media must be mounted
-
8/14/2019 ULP File by REX
9/50
before removing media must be un-mounted
by default, non-root users may only mount certain
devices(CD, DVD, floppy, usb etc)
floppy must be manually mounted and un-mounted.
tar
Use to create archive
-c creates a new archive
-v produces verbose messages
-f archive name is name of new file
Use to inspective archive
PATH
Colon separated list of locations where commands
can be found
Which
Command showing location in the PATH of an
executable
su
Su means switch user .this command is use to change
identities
To change your password, run passwd
head
Display few lines of text in a file
tail
Displays last few lines of text in a file
Use n or --lines to change no. of lines displayed
-
8/14/2019 ULP File by REX
10/50
Use f option to continue to display the file in real
time
wc word count also count lines and characters
$ wc story.txt
19 237 1901 story.txt
sort
sort text to stdout original file unchanged
common options
-r reverses sort to sort descending
-n numeric sort
-f ignores (fold) case of characters in strings
-u unique (remove duplicates lines in output)
-t use as a field separator
-k POS1 sort from field POS1
uniq
remove successive duplicates lines in a file
can use in conjunction with sort to remove all
duplicates
cut
displays specific columns of file data
-f specifies field or column
-d specifies field delimiter
-
8/14/2019 ULP File by REX
11/50
grep (General Regular
Expression Process)
prints the lines of the files where a pattern is
matched
also used as filter in pipelines
sed
stream editor
read a file or stream of data ; writes out the data ,
performing search and replace instruction(s)
multiple sed instructions
find
find [directory] [criteria]
searches directory trees in real-time
all files are matched if no criteria given
can execute commands on found files
criteria are ANDed together by default
can be ORed or negated with o and not
find can match by inode timestamps
ps display process information
useful options:
-a processes by all user
-x processes by all terminal
-
8/14/2019 ULP File by REX
12/50
-u show processes owner
at
Scheduling a process to execute later
Command will be executed at the time indicated
Command can be entered one per line, with the output
terminated with a on a line by itself
The time arguments has many formats which are
illustrated for the following examples:
at 8:00pm December 7
at 7 am Thursday
at now + 5 minutes
at midbight + 23 minutes
cron
this is also used for schedule processes
user need not be logged on
cron jobs are listed in crontab file
must edit and install your crontable file
cron table file cannot be edited directly
edit the file and then install with crontab or
edit the file through crontab
crontab file format
Entry consist of five space-delimited fields followed by
command line
Fields are minute, hour, day of month, month, and day of
week entry fields can be separated by any number of tab
or spaces. Valid field values are as follows:
-
8/14/2019 ULP File by REX
13/50
-
8/14/2019 ULP File by REX
14/50
PRACTICAL 3
AIM: Familiarize with vi editors.
vi editor is similar to a text editor. For text editing, vi uses 24 of the 25 lines that are
normally available in a terminal. The three modes in which vi editor operates for sharing
the workload are explained as below:
1. Command Mode
The default mode of the editor where every key pressed is interpreted as a command to
run on text. Youll have to be in this mode to copy and delete text. Unnecessary pressing
of [Esc] in this mode sound a beep but also confirms that you are in this mode.
2. Input Mode
Every key pressed after switching to this mode actually shows up as text. This mode is
invoked by pressing key i, a, I, A, o, O, r, R, s, and S. Pressing [Esc] in this mode takes vi
to command mode.
3. ex Mode or Last Line Mode
The mode used to handle files (like for saving) and perform substitution (replacing one
string with another). Pressing a : in the Command Mode invokes this mode. You then
enter an ex Mode command followed by [Enter]. After the command is run, you are back
to the default Command Mode.
-
8/14/2019 ULP File by REX
15/50
Common vi Commands
Have a look at this list of common vi commands (there are many more, but these will at
least allow you to get some basic work done). Then we'll do one more exercise before
moving on.
Note: As with all of Linux, vi commands are case sensitive.
Positioning the Cursor
Move cursor one space right.
Move cursor one space left.
Move cursor up one line.
Move cursor down one line.
ctrl-F Move forward one screen.
ctrl-B Move backward one screen.
$ Move cursor to end of line.
^ Move cursor to beginning of line.
:1 Move to first line of file
:$ Move to last line of file
/ Search for a character string.
? Reverse search for a character string.
x Delete the character at the cursor position.
dd Delete the current line.
p Paste data that was cut with x or dd commands.
u Undo.
Entering Input Mode
a Add text after the cursor.
-
8/14/2019 ULP File by REX
16/50
i Insert text before the cursor.
R Replace text starting at the cursor.
o Insert a new line after the current one.
Entering Command Mode
Esc Switch from Input mode to Command mode.
Exiting or Saving Your File
:w Write file to disk, without exiting editor.
ZZ Save the file and exit.
:q! Quit without saving.
Navigation
k Moves cursor up
j Moves cursor down
h Moves cursor left
l Moves cursor right
Editing Text
Dd Delete a line
yy Copy a line
p Moving text
J Joining lines
-
8/14/2019 ULP File by REX
17/50
PRACTICAL-4
AIM: The Linux File System-Files and Directories
Files an Overview: -
The most basic concept of a file, and one we may already be familiar with from other
computer systems, defines a file as a distinct chunk of information that is found
on our hard drive. Distinct means that there can be many different files, each with
its own particular contents. To keep files from getting confused with each other,
every file must have a unique identity. In Linux, we identify each file by its name
and location. In each location or directory, there can be only one file by a
particular name. So, for instance, if we create a file called novel, and we get asecond great idea, we will either have to call it something different, such as
novel2, or put it in a different place, to keep from overwriting the contents already
in our original novel.
Common Types of Files
Files can contain various types of information. The following three types will become the
most familiar to us:
User data: Information that we create and update. The very simplest user data is
plain text or numbers. We learn to create these simple files later. More
complicated user data files might have to be interpreted by another program to
make sense. For instance, a spreadsheet file looks like gibberish if we look at it
directly. To work with a spreadsheet, we have to start up the spreadsheet program
and read in the spreadsheet file.
System data: Information, often in plain text form, that is read and used by the
Linux system - to keep track of which users are allowed on the system, for
instance. As a system administrator, we are responsible for changing system data
files. For instance, when we create a new user, we modify the file /etc/passwd,
-
8/14/2019 ULP File by REX
18/50
which contains the user information. Ordinary users of the system are usually not
concerned with system data files, except for their private startup files.
Executable files: These files contain instructions that our computer can perform.
This set of instructions is often called a program. When we tell the computer to
perform them, we're telling it to execute the instructions given to it. To human
eyes, executable files contain meaningless gibberishobviously our computer
doesn't think the way we do! Creating or modifying executable files takes special
tools. We learn how to use these programming tools in Part V, "Linux for
Programmers."
Filenames
Linux allows filenames to be up to 256 characters long. These characters can be lower-
and uppercase letters, numbers, and other characters, usually the dash (-), the underscore
(_), and the dot (.).
They can't include reserved meta-characters such as the asterisk, question mark,
backslash, and space, because these all have meaning to the shell. We met some meta-
characters when we discussed wildcards.
Directories An Overview
Linux, like many other computer systems, organizes files in directories. We can think of
directories as file folders and their contents as the files. However, there is one
absolutely crucial difference between the Linux file system and an office filing
system. In the office, file folders usually don't contain other file folders. In Linux,
file folders can contain other file folders. In fact, there is no Linux "filing
cabinet"just a huge file folder that holds some files and other folders. These
folders contain files and possibly other folders in turn, and so on.
-
8/14/2019 ULP File by REX
19/50
Parent Directories and Subdirectories: -
Imagine a scenario in which we have a directory A, which contains another directory B.
Directory B is then a subdirectory of directory A, and directory A is the parent directory
of directory B.
The Root Directory: -
In Linux, the directory that holds all the other directories is called the root directory. This
is the ultimate parent directory; every other directory is some level of subdirectory.
From the root directory, the whole structure of directory upon directory springs and
grows like some electronic elm. This is called a tree structure because, from the single
root directory, directories and subdirectories branch off like tree limbs.
How Directories Are Named: -
Directories are named just like files, and they can contain upper- and lowercase letters,
numbers, and characters such as -, ., and _.
The slash (/) character is used to show files or directories within other directories. For
instance, usr/bin means that bin is found in the usr directory. Note that we can't tell, from
this example, whether bin is a file or a directory, although we know that usr must be a
directory because it holds another itemnamely, bin. When we see usr/bin/grep, we
know that both usr and bin must be directories, but again, we can't be sure about grep.
The ls program shows directories with a following /for example, fido/. This notation
implies that we could have, for instance, fido/file; therefore, fido must be a directory.
The root directory is shown simply by the symbol / rather than mentioned by name. It's
very easy to tell when / is used to separate directories and when it's used to signify the
root directory. If / has no name before it, it stands for the root directory. For example, /usrmeans that the usr subdirectory is found in the root directory, and /usr/bin means that bin
is found in the usr directory and that usr is a subdirectory of the root directory.
Remember, by definition the root directory can't be a subdirectory.
-
8/14/2019 ULP File by REX
20/50
The Home Directory: -
Linux provides each user with his or her own directory, called the home directory. Within
this home directory, users can store their own files and create subdirectories. Users
generally have complete control over what's found in their home directories. Because
there are usually no Linux system files or files belonging to other users in our home
directory, we can create, name, move, and delete files and directories as we see fit.
Navigating the Linux File System
Fortunately, navigating the Linux file system is simple. There are only two commands to
be learned, and one of them has absolutely no options or parameters!
The pwd Command Where Am I?
Type pwd at the Linux command prompt. We see
darkstar:~$ pwd
/home/fido
darkstar:~$
This tells you that we're currently in the directory /home/fido. (If we are logged in under
a different user name, we will see that name in place of fido.) This is our home directory.
When we log in, Linux always places us in our home directory.
The letters "pwd" stand for "print working directory." Again, a command's name or
function has been cut down to a few easy-to-type characters. (We will often see the term
current directory used in place of working directory.)
We might be wondering what "working directory" or "being in a directory" really means.
It simply means that Linux commands, by default, perform their actions in our working
directory. For instance, when we run ls, we are shown only the files in our working
directory. If we want to create or remove files, they will be created or removed in our
working directory.
-
8/14/2019 ULP File by REX
21/50
Creating and Deleting Files: -
Linux has many ways to create and delete files. In fact, some of the ways are so easy to
perform that we have to be careful not to accidentally overwrite or erase files!
Return to the home directory by typing cd. Make sure we're in your /home/
directory by running pwd.
We created a file by typing ls -l /bin > test. Remember, the > symbol means "redirect all
output to the following filename." Note that the file test didn't exist before we typed this
command. When we redirect to a file, Linux automatically creates the file if it doesn't
already exist.
What if we want to type text into a file, rather than some command's output? The quick
and dirty way is to use the command cat.
Creating Directories: -
To create a new directory, use the mkdir command. The syntax is mkdir , where
is replaced by whatever we want the directory to be called. This creates a
subdirectory with the specified name in our current directory:
darkstar:~$ ls
anotherfile newfile thirdfile
darkstar:~$ mkdir newdir
darkstar:~$ ls
anotherfile newdir/ newfile thirdfile
The mkdir command is already familiar to us if we have used MS-DOS systems. In MS-
DOS, we can abbreviate mkdir as md. We might think that md would work in Linux,
because, after all, most of the commands we've seen have extremely concise names.
-
8/14/2019 ULP File by REX
22/50
However, Linux doesn't recognize md; it insists on the full mkdir.
If we frequently switch between Linux and MS-DOS, we might want to use mkdir for
both systems. However, be warned that we might start typing other Linux commands in
MS-DOSfor example, typing ls instead of dir!
Removing Files and Directories: -
Now that we know how to create files and directories, it's time to learn how to undo our
handiwork.
To remove (or delete) a file, use the rm command (rm is a very terse spelling of remove).
The syntax is rm . For instance:
darkstar:~$ rm dead_duck
removes the file dead_duck from your current directory.
darkstar:~$ rm /tmp/dead_duck
removes the file dead_duck from the /tmp directory.
darkstar:~$ rm *
removes all files from your current directory. (Be careful when using wildcards!)
darkstar:~$ rm /tmp/*duck
removes all files ending in duck from the /tmp directory .
Removing Directories: -
The command normally used to remove (delete) directories is rmdir. The syntax is rmdir
.
Before we can remove a directory, it must be empty (the directory can't hold any files or
subdirectories). Otherwise, we see
-
8/14/2019 ULP File by REX
23/50
rmdir: : Directory not empty
This is as close to a safety feature as we will see in Linux!
-
8/14/2019 ULP File by REX
24/50
File Permissions and Ownership:
All Linux files and directories have ownership and permissions. We can change permissions, and
sometimes ownership, to provide greater or lesser access to our files and directories. File
permissions also determine whether a file can be executed as a command.
If you type ls -l or dir, we see entries that look like this:
-rw-rr 1 fido users 163 Dec 7 14:31 myfile
The -rw-rr represents the permissions for the file myfile. The file's ownership includes fido
as the owner and users as the group.
File and Directory Ownership: -
When we create a file, we are that file's owner. Being the file's owner gives us the privilege of
changing the file's permissions or ownership. Of course, once we change the ownership to
another user, we can't change the ownership or permissions anymore!
File owners are set up by the system during installation. Linux system files are owned by IDs
such as root, uucp, and bin. Do not change the ownership of these files.
Use the chown (change ownership) command to change ownership of a file. The syntax is chown
. In the following example, we change the ownership of the file myfile to
root:
darkstar:~$ ls -l myfile
-rw-rr 1 fido users 114 Dec 7 14:31 myfile
darkstar:~$ chown root myfile
darkstar:~$ ls -l myfile
-
8/14/2019 ULP File by REX
25/50
-rw-rr 1 root users 114 Dec 7 14:31 myfile
To make any further changes to the file myfile, or to chown it back to fido, we must use su or log
in as root.
Files (and users) also belong to groups. Groups are a convenient way of providing access to files
for more than one user but not to every user on the system. For instance, users working on a
special project could all belong to the group project. Files used by the whole group would also
belong to the group project, giving those users special access. Groups normally are used in larger
installations. We may never need to worry about groups.
The chgrp command is used to change the group the file belongs to. It works just like chown.
File Permissions: -
Linux let us specify read, write, and execute permissions for each of the following: the owner,
the group, and "others" (everyone else).
read permission enables us to look at the file. In the case of a directory, it let us list the
directory's contents using ls.
write permission enables us to modify (or delete!) the file. In the case of a directory, we musthave write permission in order to create, move, or delete files in that directory.
execute permission enables you to execute the file by typing its name. With directories, execute
permission enables you to cd into them.
For a concrete example, let's look at myfile again:
-rw-rr 1 fido users 163 Dec 7 14:31 myfile
The first character of the permissions is -, which indicates that it's an ordinary file. If this were a
directory, the first character would be d. There are also some other, more exotic classes. These
are beyond the scope of this chapter.
-
8/14/2019 ULP File by REX
26/50
The next nine characters are broken into three groups of three, giving permissions for owner,
group, and other. Each triplet gives read, write, and executes permissions, always in that order.
Permission to read is signified by an r in the first position, permission to write is shown by a w in
the second position, and permission to execute is shown by an x in the third position. If the
particular permission is absent, its space is filled by -.
In the case of myfile, the owner has rw-, which means read and write permissions. This file can't
be executed by typing myfile at the Linux prompt.
The group permissions are r, which means that members of the group "users" (by default, all
ordinary users on the system) can read the file but not change it or execute it.
Likewise, the permissions for all others are r: read-only.
File permissions are often given as a three-digit numberfor instance, 751. It's important to
understand how the numbering system works, because these numbers are used to change a file's
permissions. Also, error messages that involve permissions use these numbers.
The first digit codes permissions for the owner, the second digit codes permissions for the group,
and the third digit codes permissions for other (everyone else).
The individual digits are encoded by summing up all the "allowed" permissions for that
particular user as follows:
read permission 4
write permission 2
execute permission 1
Therefore, a file permission of 751 means that the owner has read, write and execute permission
(4+2+1=7), the group has read and execute permission (4+1=5), and others have execute
permission (1).
-
8/14/2019 ULP File by REX
27/50
If we play with the numbers, we quickly see that the permission digits can range between 0 and
7, and that for each digit in that range there's only one possible combination of read, write, and
execute permissions.
Changing File Permissions: -
To change file permissions, use the chmod (change [file] mode) command. The syntax is chmod
file.
There are two ways to write the permission specification. One is by using the numeric coding
system for permissions:
darkstar:~$ ls -l myfile
-rw-rr 1 fido users 114 Dec 7 14:31 myfile
darkstar:~$ chmod 345 myfile
darkstar:~$ ls -l myfile
wxrr-x 1 fido users 114 Dec 7 14:31 myfile
darkstar:~$ chmod 701 myfile
darkstar:~$ ls -l myfile
-rwxx 1 root users 114 Dec 7 14:31 myfile
This method has the advantage of specifying the permissions in an absolute, rather than relative,
fashion. Also, it's easier to tell someone "Change permissions on the file to seven-five-five" than
to say "Change permissions on the file to read-write-execute, read-execute, read-execute."
We can also use letter codes to change the existing permissions. To specify which of the
permissions to change, type u (user), g (group), o (other), or a (all). This is followed by a + to
-
8/14/2019 ULP File by REX
28/50
add permissions or a - to remove them. This in turn is followed by the permissions to be added or
removed. For example, to add execute permissions for the group and others, we would type
darkstar:~$ chmod go+r myfile
Other ways of using the symbolic file permissions are described in the chmod man page.
Changing Directory Permissions: -
We change directory permissions with chmod, exactly the same way as with files. Remember
that if a directory doesn't have executed permissions, we can't cd to it.
Any user who has write permission in a directory can delete files in that directory, whether or not
that user owns or has write privileges to those files. Most directories, therefore, have permissions
set to drwxr-xr-x. This ensures that only the directory's owner can create or delete files in that
directory. It is especially dangerous to give write permission to all users for directories!
Important Directories in the Linux File System: -
Most of the directories that hold Linux system files are "standard." Other UNIX systems will
have identical directories with similar contents. This section summarizes some of the
more important directories on our Linux system.
/
This is the root directory. It holds the actual Linux program, as well as subdirectories. Do not
clutter this directory with our files!
/home
This directory holds users' home directories. In other UNIX systems, this can be the /usr or /u
directory.
-
8/14/2019 ULP File by REX
29/50
/bin
This directory holds many of the basic Linux programs. bin stands for binaries, files that are
executable and that hold text only computers could understand.
/usr
This directory holds many other user-oriented directories. Some of the most important are
described in the following sections. Other directories found in /usr include
docs Various documents, including useful Linux information
man The man pages accessed by typing man
games The fun stuff!
/usr/bin
This directory holds user-oriented Linux programs.
/var/spool
This directory has several subdirectories. mail holds mail files, spool holds files to be printed,
and uucp holds files copied between Linux machines.
/dev
Linux treats everything as a file! The /dev directory holds devices. These are special files that
serve as gateways to physical computer components. For instance, if we copy to /dev/fd0, we're
actually sending data to the system's floppy disk. Our terminal is one of the /dev/tty files.
Partitions on the hard drive are of the form /dev/hd0. Even the system's memory is a device!
-
8/14/2019 ULP File by REX
30/50
-
8/14/2019 ULP File by REX
31/50
PRACTICAL-5
AIM: Managing Users and Groups in Linux- Adding, Modifying, Password
aging.
Linux is designed to serve many users at the same time as well as provide an interface between
the users and the computer with its storage media, such as hard disks and tapes .Users have their
own shells through which they interact with the operating system .As a system administrator, we
can manage user logins on our system .We can add or remove users, as well as add and remove
groups. A particular user can only access the files created by him. Whereas super user (i.e. root)
can access any file it wants to access. Super user has the unlimited access to all the files, devices,
and programs on the system. Each time when a user logs in, two profile scripts are executed. A
system profile script (located in /etc directory) is the same for every user, and each user has
the .bash_profile script in their home directory. As a super user, we can edit the profile script and
put in any commands we want to execute for each user when he logs in. Following is the list of
some directories related to the users.
Directory Description
/home Location of the users own home directory.
/etc/skel Holds the default initialization files for the login shell,such as .bash_profile,
.bashrc, and .bash_logout.
/etc/shells Holds the login shells, such as BASH or TCSH.
/etc/passwd Holds the password for a user.
/etc/group Holds the group to which the user belongs.
/etc/shadow Encrypted password file.
/etc/gshadow Encrypted password files for groups.
/etc/login.defs Default login definitions for users.
-
8/14/2019 ULP File by REX
32/50
User Management
To add, modify, and setting a password of a user following commands are used.
Adding a user:
useradd username options
Modifying a user: usermod username options
Setting a Password: passwd username.
When we add a user, an entry for that user is made in the /etc/passwd file, commonly known as
password file. Each entry takes up one line that has several fields separated by colons. The fields
are as follows:
Field Description
Username Login name of the user.
Password Encrypted password for the users account.
User ID Unique number assigned by the system.
Group ID Number used to identify the group to which the user belongs.
Comment Any user information, such as users full name.
Home directory The users home directory.
Login shell Shell to run when the user logs in; default shell is /bin/bash.
Options that we can include with the useradd and usermod commands are:
Option Description
-c str Adds a comment to the users entryin system password file: /etc/ passwd.
-d dir Set the home directory of the new user.
-
8/14/2019 ULP File by REX
33/50
-D Displays defaults for all settings.
-e mm/dd/yy Set an expiration date for the account (None by default). Specify by
month/day/ year.
-f days Sets the number of days an account remains active after its password expires.
-g group Sets a group.
-G group Sets additional groups.
-m Creates users home directory if it does not exist.
-p password Supplies an encrypted password (crypt or MD5).
-s shellSets the login shell of new user.
-u userid Sets the userid of the new user.
Group Management
To create a new group or to modify the existing groups following commands are used.
Creating a Group: groupadd groupname options
Removing a Group: groupdel groupname options
Modifying a group: groupmod groupname options
The system file that holds the group enteries is /etc/group.The file consists of group records with
one record per line and its fields separated by colons. A group record consists of following fields.
Field Description
Groupname Name of the group; name must be unique.
Password Encrypted password for the users account.
Group ID Number used by the system to identify the group.
-
8/14/2019 ULP File by REX
34/50
Users List of the users belong to the group.
Options that we can include with the groupadd and groupmod commands are:
Option Description
-g gid Changes a group ID.
-n groupname Changes a group name.
-f Detect if group already exists.
-r Creates a system group, one lower than the group minimum specified in
login.defs.
Practical-6
-
8/14/2019 ULP File by REX
35/50
AIM: Create, Remove, and Resize various types of partitions through
GUI as well as command line.
Partitioning is a means to divide a single hard drive into many logical drives. A partition is a
contiguous set of blocks on a drive that are treated as an independent disk. A partition table is an
index that relates sections of the hard drive to partitions.
Partition Types
A partition is labeled to host a certain kind of file system. Such a file system could be the Linux
standard ext2 file system or Linux swap space, or even foreign file systems like (Microsoft)
NTFS or (Sun) UFS. There is a numerical code associated with each partition type. For example,
the code for ext2 is 0x83 and Linux swap is 0x82.
Foreign Partition Types
The partition type codes have been arbitrarily chosen (we can't figure out what they
should be) and they are particular to a given operating system. Therefore, it is
theoretically possible that if we use two operating systems with the same hard drive, the
same code might be used to designate two different partition types.
OS/2 marks its partitions with a 0x07 type and so does Windows NT's NTFS. MS-DOS
allocates several type codes for its various flavors of FAT file systems: 0x01, 0x04 and
0x06 are known. DR-DOS used 0x81 to indicate protected FAT partitions, creating a type
clash with Linux/ Minix at that time, but neither Linux/Minix nor DR-DOS are widely
used any more.
Primary Partitions
-
8/14/2019 ULP File by REX
36/50
The number of partitions on an Intel-based system was limited from the very beginning:
The original partition table was installed as part of the boot sector and held space for only
four partition entries. These partitions are now called primary partitions.
Logical Partitions
One primary partition of a hard drive may be sub-partitioned. These are logical partitions.
This effectively allows us to skirt the historical four partition limitation.
The primary partition used to house the logical partitions is called an extended partition
and it has its own file system type (0x05). Unlike primary partitions, logical partitions
must be contiguous. Each logical partition contains a pointer to the next logical partition,
which implies that the number of logical partitions is unlimited. However, Linux imposes
limits on the total number of any type of partition on a drive, so this effectively limits the
number of logical partitions. This is at most 15 partitions total on an SCSI disk and 63
total on an IDE disk.
Swap Partitions
Every process running on our computer is allocated a number of blocks of RAM. These
blocks are called pages. The set of in-memory pages which will be referenced by the
processor in the very near future is called a "working set." Linux tries to predict these
memory accesses (assuming that recently used pages will be used again in the near
future) and keeps these pages in RAM if possible.
If we have too many processes running on a machine, the kernel will try to free up RAM
by writing pages to disk. This is what swap space is for. It effectively increases the
amount of memory we have available. However, disk I/O is very slow compared to
reading from and writing to RAM.
-
8/14/2019 ULP File by REX
37/50
Required Partitioning Software
fdisk- a command line tool for partitioning.
sfdisk- a command line-version of sfdisk.
Disk druid GUI partition editor.
Partitioning with fdisk in Command Prompt
fdisk utility is used to partition a hard disk of any capacity through command line. Linux
allows only 4 primary partitions and any one partition can be further subdivided to form
any number of logical partitions. Only one of the primary partitions can be sub-divided.
fdisk is started by typing (when logged in as root) fdiskdevice at the command prompt.
"device" might be like /dev/hda or /dev/sda. The basic fdisk commands we need are:
p to print the partition table
n To create a new partition
d To delete a partition
q To quit without saving changes
w To write the new partition table and exit
Changes made to the partition table do not take effect until we issue the write (w)
command.
When a partition is created and changes made to the partition table are saved, then to
activate the partition without rebooting the system, use the commandpartprobe otherwise
it will be activated automatically after reboot.
After activating the created partition, it must be formatted. To format the partition type
the following commands and press enter.
-
8/14/2019 ULP File by REX
38/50
(1.) mke2fs or mkfs.ext2 if we want the ext2 file system.
(2.) mke2fs j or mkfs.ext3 - if we want the ext3 file system (j is for journaling).
Partitioning with Disk Druid in GUI
The partitioning tool used in Red Hat Linux is Disk Druid. With the exception of certain
esoteric situations, Disk Druid can handle the partitioning requirements for a typical Red
Hat Linux installation.
Partition Fields
Each line in the "Partitions" section represents a disk partition. Each line in this section has
five different fields:
Mount Point: A mount point is the location within the directory hierarchy at which a
volume exists. The volume is said to be mounted at this location. This
field indicates where the partition will be mounted. If a partition exists, but
is "not set" we need to define its mount point. Double-click on the
partition or use the Edit key.
Device: This field displays the partition's device name.
Requested: This field shows the partition's original size. To re-define the size, we must
delete the current partition and recreate it using the Add button.
Actual: This field shows the space currently allocated to the partition.
Type: This field shows the partition's type (such as Linux Native or DOS).
-
8/14/2019 ULP File by REX
39/50
Drive Summaries
Each line in the Drive Summaries section represents a hard disk on our system. Each linehas the following fields:
Drive: This field shows the hard disk's device name.
Geom [C/H/S]: This field shows the hard disk's geometry. The geometry consists of three
numbers representing the number of cylinders, heads and sectors as
reported by the hard disk.
Total: This field shows the total available space on the hard disk.
Free: This field shows how much of the hard disk's space is still unallocated.
Used: These fields show how much of the hard disk's space is currently allocated to
partitions, in megabytes and percentage.
-
8/14/2019 ULP File by REX
40/50
The Drive Summaries section is displayed only to indicate our computer's disk
configuration. It is not meant to be used as a means of specifying the target hard drive for
a given partition.
Adding Partitions: To add a new partition, select the Add button. A dialog box will appear
Mount Point: Highlight and enter the partition's mount point. For example, if this
partition should be the root partition, enter /; enter /boot for the /boot
o Partition, and so on. We can also use the pull-down menu to choose the
o Correct mount point for our partition.
Size (Megs): Enter the size (in megabytes) of the partition. Note this field starts with a "1"
in it; unless changed we'll end up with a 1 MB partition.
Use remaining space: This check box indicates if the size we entered in the previous field
is to be considered the partition's exact size, or its minimum size.
When selected, the partition will grow to fill all available space on
the hard disk. The partition's size will expand and contract as otherpartitions are modified. We can make multiple partitions growable;
if we do, the additional free space will be shared among all
growable partitions.
Partition Type: This field contains a list of different partition types (such as Linux Native
-
8/14/2019 ULP File by REX
41/50
or DOS). Select the appropriate partition type by using the mouse.
Allowable Drives: This field contains a list of the hard disks installed on our system. If a
hard disk's box is highlighted, then a desired partition can be created on
that hard disk. If the box is notchecked, then the partition will neverbe
created on that hard disk. By using different check box settings, we can
direct Disk Druid to place partitions as we see fit, or let Disk Druid
decide where partitions should go.
Ok: Select OK once you're satisfied with the settings, and wish to create the partition.
Cancel: Select Cancel if we don't want to create the partition.
Removing Partitions: To delete a partition, select the delete button after selecting the
partition we want to delete or make free. A dialog box will
appear that will confirm the deletion of the selected
partition. If OK is pressed the selected partition will be
removed and If Cancel is pressed the partitions will remain
as it is i.e. partition table will not be altered.
PRACTICAL-7
-
8/14/2019 ULP File by REX
42/50
AIM: Introduction to shell.
Using bash: -Shells in a Nutshell: -
What is a shell, anyway? It seems to be a word used all the time in Linux, but the exact meaning
is vague for many new users (and some veterans). This section explains exactly what a
shell program is and why it is so important when using Linux.
What Is a Shell?
The shell is a program used to interface between you (the user) and Linux (or, more accurately,
between you and the Linux kernel). Figure 10.1 illustrates the relationship between the user, the
shell, and the Linux kernel. Every command we type at a prompt on your screen is interpreted by
the shell, then passed to the Linux kernel.
The shell is a command-language interpreter. It has its own set of built-in shell commands. The
shell can also make use of all of the Linux utilities and application programs that are available on
the system.
Whenever you enter a command it is interpreted by the Linux shell. For example, when we were
introduced to the Linux file- and directory-manipulation commands, all of the sample commands
entered at the command prompt were interpreted by whichever Linux shell we were using.
Some of the commands, such as the print working directory (pwd) command, are built into the
Linux bash shell. Other commands, such as the copy command (cp) and the remove command
(rm), are separate executable programs that exist in one of the directories in the filesystem. As
the user, we don't know (or probably care) if the command is built into the shell or is a separate
program.
The shell tries to find these application programs by looking in all of the directories that are in
your search path. The path is a list of directories where executable programs can be found. If the
-
8/14/2019 ULP File by REX
43/50
command that was entered is not an internal shell command and it is not an executable file in
your path, an error message will be displayed.
As the last step in a successful command, the shell's internal commands and all of the application
programs are eventually broken down into system calls and passed to the Linux kernel.
Another important aspect of the shell is that it contains a very powerful interpretive
programming language. This language is similar in function to the MS-DOS interpreted
language, but is much more powerful. The shell programming language supports most of the
programming constructs found in high-level languages, such as looping, functions, variables, and
arrays.
How the Shell Gets Started: -
The shell is the main method by which a user interacts with the Linux kernel. But how does this
program get initialized to do so? The shell is started after you successfully log into the system,
and it continues to be the main method of interaction between the user and the kernel until we
log out.
Each user on our system has a default shell. The default shell for each user is specified in the
system password file, called /etc/passwd. The system password file contains, among other things,
each person's user ID, an encrypted copy of each user's password, and the name of the program
to run immediately after a user logs into the system. The program specified in the password file
does not have to be one of the Linux shells, but it almost always is.
The Most Common Shells: -
Several different kinds of shells are available on Linux and UNIX systems. The most common
are the Bourne shell (called sh), the C shell (csh), and the Korn shell (ksh). Each of these three
shells has its own advantages and disadvantages.
The Bourne shell was written by Steven Bourne. It is the original UNIX shell and is available on
every UNIX system in existence. The Bourne shell is considered to be very good for UNIX shell
programming, but it does not handle user interaction as well as some of the other shells available.
-
8/14/2019 ULP File by REX
44/50
The C shell, written by Bill Joy, is much more responsive to user interaction. It supports features
such as command-line completion that are not in the Bourne shell. The C shell's programming
interface is thought by many not to be as good as that of the Bourne shell, but it is used by many
C programmers because the syntax of its programming language is similar to that of the C
language. This is also why it is named the C shell.
The Korn shell (ksh) was written by Dave Korn. He took the best features of both the C shell and
the Bourne shell and combined them into one that is completely compatible with the Bourne
shell. ksh is efficient and has both a good interactive interface and a good programming
interface.
In addition to these shells, many other shell programs took the basic features from one or more of
the existing shells and combined them into a new version. The three newer shells are tcsh (an
extension of csh), the Bourne Again Shell (bash, an extension of sh), and the Public Domain
Korn Shell (pdksh, an extension of ksh). Bash is the default shell on most Linux systems.
The Bourne Again Shell: -
The Bourne Again Shell (bash), as its name implies, is an extension of the Bourne shell. bash is
fully backward-compatible with the Bourne shell, but contains many enhancements and extra
features that are not present in the Bourne shell. bash also contains many of the best features that
exist in the C and Korn shells. bash has a very flexible and powerful programming interface, as
well as a user-friendly command interface.
Why use bash instead of sh? The biggest drawback of the Bourne shell is the way that it handles
user input. Typing commands into the Bourne shell can often be very tedious, especially if we
are using it on a regular basis and typing in a large number of commands. bash provides several
features that make entering commands much easier.
PRACTICAL-8
AIM: Using Bash shell develop simple shell programs.
-
8/14/2019 ULP File by REX
45/50
# Program to find the sum of a number.
clear
echo -e "enter a positive number: \c"
read n
j=0
i=1
while [ $i -le $n ]
do
j=`expr $j + $i`
i=`expr $i + 1`
done
echo "addition of first $n numbers is $j"
enter a positive number: 8
addition of first 8 numbers is 36
[root@localhostprog]#
-
8/14/2019 ULP File by REX
46/50
# Program to check whether the given number is a prime or not.
clear
echo -e "Enter a Positive Number: \c"
read num
i=2
while [ $i -le `expr $num - 1` ]
do
if [ `expr $num % $i` -eq 0 ]
then
echo "$num is not a prime number"break
fi
i=`expr $i + 1`
done
if [ $i -eq $num ]
then
echo "$num is a prime number"
fi
Enter a Positive Number: 8
8 is not a prime number
[root@localhost mm]#
-
8/14/2019 ULP File by REX
47/50
# Program to find the factorial of a Number.
clear
echo -e "enter a positive number: \c"
read n
prod=1
i=2
if [ $n -gt 1 ]
then
while [ $i -le $n ]
doprod=`expr $prod \* $i`
i=`expr $i + 1`
done
echo "factorial of $n is $prod"
else
echo "factorial of $n is $n"
fi
enter a positive number: 5
factorial of 5 is 120
[root@localhostmm]#
-
8/14/2019 ULP File by REX
48/50
# Program that works like a five function calculator.
clear
echo "Menu is shown below:"
echo "1. ADDITION "
echo "2. SUBTRACTION"
echo "3. MULTIPLICATION"
echo "4. DIVISION"
echo "5. MODE"
ch='y'
while [ $ch = 'y' ]do
echo
echo -e "enter the operation to be performed: \c"
read op
echo
echo -e "enter first no.: \c"
read a
echo -e "enter second no.: \c "
read b
echo
if [ $op -eq 1 ]
then
c=$(($a + $b))
echo "addition = $c"
elif [ $op -eq 2 ]
then
-
8/14/2019 ULP File by REX
49/50
c=$(($a - $b))
echo "subtraction = $c"
elif [ $op -eq 3 ]
then
c=$(($a * $b))
echo "multiplication = $c"
elif [ $op -eq 4 ]
then
c=$(($a / $b))
echo "divison = $c"elif [ $op -eq 5 ]
then
c=$(($a % $b))
echo "mod = $c"
else
echo "wrong choice"
fi
echo -e "Want to perform some other opertaion: \c"
read ch
done
-
8/14/2019 ULP File by REX
50/50
Menu is shown below:
1. ADDITION
2. SUBTRACTION
3. MULTIPLICATION
4. DIVISION
5. MODE
enter the operation to be performed: 3
enter first no.: 15enter second no.: 6
multiplication = 90
Want to perform some other opertaion: y
enter the operation to be performed: 5
enter first no.: 19
enter second no.: 5
mod = 4
Want to perform some other opertaion: ns
[root@localhost mm]#