Linux
Linux
Linux
Introduction: UNIX is an operating system which was first developed in the 1960s, and has
been under constant development ever since. By operating system, we mean the suite of
programs which make the computer work. It is a stable, multi-user, multi-tasking system
for servers, desktops and laptops.
UNIX systems also have a graphical user interface (GUI) similar to Microsoft Windows which
provides an easy to use environment. However, knowledge of UNIX is required for
operations which aren't covered by a graphical program, or for when there is no windows
interface available, for example, in a telnet session.
Types of Unix: There are many different versions of UNIX, although they share common
similarities. The most popular varieties of UNIX are Sun Solaris, GNU/Linux, and MacOS X.
Here in the School, we use Solaris on our servers and workstations, and Fedora Linux on the
servers and desktop PCs.
The UNIX operating system is made up of three parts; the kernel, the shell and the
programs.
The kernel
The kernel of UNIX is the hub of the operating system: it allocates time and memory to
programs and handles the file store and communications in response to system calls.
As an illustration of the way that the shell and the kernel work together, suppose a user
types rm myfile (which has the effect of removing the file myfile). The shell searches the
file store for the file containing the program rm, and then requests the kernel, through
system calls, to execute the program rm on myfile. When the process rm myfile has
finished running, the shell then returns the UNIX prompt % to the user, indicating that it is
waiting for further commands.
The shell
The shell acts as an interface between the user and the kernel. When a user logs in, the
login program checks the username and password, and then starts another program called
the shell. The shell is a command line interpreter (CLI). It interprets the commands the user
types in and arranges for them to be carried out. The commands are themselves programs:
when they terminate, the shell gives the user another prompt (% on our systems).
The adept user can customise his/her own shell, and users can use different shells on the
same machine. Staff and students in the school have the tcsh shell by default.
The tcsh shell has certain features to help the user inputting commands.
Filename Completion - By typing part of the name of a command, filename or directory and
pressing the [Tab] key, the tcsh shell will complete the rest of the name automatically. If
the shell finds more than one name beginning with those letters you have typed, it will
beep, prompting you to type a few more letters before pressing the tab key again.
History - The shell keeps a list of the commands you have typed in. If you need to repeat a
command, use the cursor keys to scroll up and down the list or type history for a list of
previous commands.
The programs
One of the main features of UNIX is that it includes a variety of small programs to meet
various needs. Typically, each of these programs does one thing and does it well. This
modular design allows the functionality of small programs to be mixed and matched. As you
become more familiar with UNIX, you will find that this design provides you great flexibility
and power to accomplish almost any task. Typically these programs operate on top of the
shell, but they may also interface directly with the kernel.
• Kernel − Kernel is the core part of Linux. It is responsible for all major activities
of this operating system. It consists of various modules and it interacts directly
with the underlying hardware. Kernel provides the required abstraction to hide
low level hardware details to system or application programs.
Basic Features
Following are some of the important features of Linux Operating System.
• Open Source − Linux source code is freely available and it is community based
development project. Multiple teams work in collaboration to enhance the
capability of Linux operating system and it is continuously evolving.
Architecture
The following illustration shows the architecture of a Linux system −
• Hardware layer − Hardware consists of all peripheral devices (RAM/ HDD/ CPU
etc).
• Utilities − Utility programs that provide the user most of the functionalities of
an operating systems.
Role of System Administrator and Ordinary User
Root account
This is also called super user and would have complete control of the
system. A super user can run any commands without any restriction. This
user should be assumed as a system administrator.
System accounts
System accounts are those needed for the operation of system-specific
components for example mail accounts. This account is usually needed for
some specific function on your system, and any modifications to them could
adversely affect the system.
User accounts
User accounts provide interactive access to the system for users and groups
of users. General users are typically assigned to these accounts and usually
have limited access to critical system files and directories.
• /etc/passwd − Keeps the user account and password information. This file
holds the majority of information about accounts on the Unix system.
• /etc/group − This file contains the group information for each account.
The following table lists out commands that are available on majority of
Unix systems to create and manage accounts and groups −
S.No. Command & Description
1
useradd
2 usermod
3 userdel
4 groupadd
5 groupmod
6 groupdel
You can use Manpage Help to check complete syntax for each command
mentioned here.
Create a Group
We will now understand how to create a group. For this, we need to create
groups before creating any account otherwise, we can make use of the
existing groups in our system. We have all the groups listed
in /etc/groups file.
All the default groups are system account specific groups and it is not
recommended to use them for ordinary accounts. So, following is the
syntax to create a new group account −
1
-g GID
2 -o
3 -r
4 -f
This option causes to just exit with success status, if the specified group
already exists. With -g, if the specified GID already exists, other (unique)
GID is chosen
5 groupname
If you do not specify any parameter, then the system makes use of the
default values.
$ groupadd developers
Modify a Group
To modify a group, use the groupmod syntax −
$ groupdel developer
This removes only the group, not the files associated with that group. The
files are still accessible by their owners.
Create an Account
Let us see how to create a new account on your Unix system. Following is
the syntax to create a user's account −
1
-d homedir
2 -g groupname
3 -m
4 -s shell
5 -u userid
6 accountname
Actual account name to be created
If you do not specify any parameter, then the system makes use of the
default values. The useradd command modifies
the /etc/passwd, /etc/shadow, and /etc/group files and creates a
home directory.
Before issuing the above command, make sure you already have
the developers group created using the groupadd command.
$ passwd mcmohd20
Changing password for user mcmohd20.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
Modify an Account
The usermod command enables you to make changes to an existing
account from the command line. It uses the same arguments as
the useradd command, plus the -l argument, which allows you to change
the account name.
Delete an Account
The userdel command can be used to delete an existing user. This is a
very dangerous command if not used with caution.
There is only one argument or option available for the command .r, for
removing the account's home directory and mail file.
$ userdel -r mcmohd20
If you want to keep the home directory for backup purposes, omit the -
r option. You can remove the home directory as needed at a later time.
Your hard drive can have various partitions which usually contain only one
file system, such as one file system housing the /file system or another
containing the /home file system.
One file system per partition allows for the logical maintenance and
management of differing file systems.
Tree Structure:
Directory Structure
Unix uses a hierarchical file system structure, much like an upside-down
tree, with root (/) at the base of the file system and all other directories
spreading from there.
A Unix filesystem is a collection of files and directories that has the
following properties −
• It has a root directory (/) that contains other files and directories.
• Each file or directory is uniquely identified by its name, the directory in which it
resides, and a unique identifier, typically called an inode.
The directories have specific purposes and generally hold the same types of
information for easily locating files. Following are the directories that exist
on the major versions of Unix −
1
/
This is the root directory which should contain only the directories needed
at the top level of the file structure
2
/bin
This is where the executable files are located. These files are available to
all users
3
/dev
4
/etc
6 /boot
7
/home
8 /mnt
9
/proc
10
/tmp
11
/usr
12 /var
Typically contains variable-length files such as log and print files and any
other type of file that may contain a variable amount of data
13 /sbin
14
/kernel
1 cat filename
Displays a filename
2 cd dirname
3
cp file1 file2
4 file filename
5
find filename dir
Finds a file/directory
6 head filename
7 less filename
Browses through a file from the end or the beginning
8
ls dirname
9
mkdir dirname
10 more filename
11
mv file1 file2
12 pwd
13
rm filename
Removes a file
14 rmdir dirname
Removes a directory
15 tail filename
16
touch filename
17 whereis filename
Shows the location of a file
18
which filename
You can use Manpage Help to check complete syntax for each command
mentioned here.
The df Command
The first way to manage your partition space is with the df (disk
free) command. The command df -k (disk free) displays the disk space
usage in kilobytes, as shown below −
$df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vzfs 10485760 7836644 2649116 75% /
/devices 0 0 0 0% /devices
$
The df -k output is generally the same on all Unix systems. Here's what it
usually includes −
1
Filesystem
2 kbytes
3 used
4 avail
Total kilobytes available for use
5
capacity
6
Mounted on
You can use the -h (human readable) option to display the output in a
format that shows the size in easier-to-understand notation.
The du Command
The du (disk usage) command enables you to specify directories to show
disk space usage on a particular directory.
$du /etc
10 /etc/cron.d
126 /etc/default
6 /etc/dfs
...
$
$du -h /etc
5k /etc/cron.d
63k /etc/default
3k /etc/dfs
...
$
$ mount
/dev/vzfs on / type reiserfs (rw,usrquota,grpquota)
proc on /proc type proc (rw,nodiratime)
devpts on /dev/pts type devpts (rw)
$
This assumes that your CD-ROM device is called /dev/cdrom and that you
want to mount it to /mnt/cdrom. Refer to the mount man page for more
specific information or type mount -h at the command line for help
information.
After mounting, you can use the cd command to navigate the newly
available file system through the mount point you just made.
$ umount /dev/cdrom
The mount command enables you to access your file systems, but on
most modern Unix systems, the automount function makes this process
invisible to the user and requires no intervention.
Quotas operate around two limits that allow the user to take some action if
the amount of space or number of disk blocks start to exceed the
administrator defined limits −
• Soft Limit − If the user exceeds the limit defined, there is a grace period that
allows the user to free up some space.
• Hard Limit − When the hard limit is reached, regardless of the grace period, no
further files or blocks can be allocated.
1
quota
2 edquota
This is a quota editor. Users or Groups quota can be edited using this
command
3
quotacheck
Scans a filesystem for disk usage, creates, checks and repairs quota files
4 setquota
5
quotaon
This announces to the system that disk quotas should be enabled on one
or more filesystems
6 quotaoff
This announces to the system that disk quotas should be disabled for one
or more filesystems
7 repquota
This prints a summary of the disc usage and quotas for the specified file
systems