Webocreation

Wednesday, July 22, 2009

An Introduction to Red Hat Linux

An Introduction to Red Hat Linux


Course Contents of Red Hat Linux –

1. File and Directory Operations
2. User Information
3. File Permissions
4. Linux File System Essentials
5. X-Window System and GUI application (introduction)
6. Standard I/O Pipes
7. String Processing
8. Process
9. VI editor
10. Bash Shell and Shell Scripting
11. Basic Network Clients



Introduction

An operating system (OS) is software designed to act as an interface between the computer and the user. It performs various important functions such as ,

· An OS is a command interpreter. It translates the high level language to machine language and vice versa.
· An OS acts as process manager. There are various processes running simultaneously in a computer. The amount of time to be spent on a process by the CPU is decided by the OS.
· An OS is a memory manager. As said above, there are various processes running simultaneously in a computer which require memory from CPU. The amount of memory to be allocated on certain process is also decided by the OS.
· An OS acts as a hardware or peripheral manager. The task of accepting input producing the output and redirecting to different peripherals is done by the OS.

About Linux

Linux is one of the popular OS in the market today. It is developed form of UNIX. So, most of its features are UNIX-like. Most of the tools found in UNIX are supported in Linux.

UNIX was designed and developed in 1960s to provide an environment to create programs. It became popular and got spread to educational institutes, research labs and industries. Later a Finnish student Linus Torvalds developed LINUX from UNIX and made the source code available on the internet. Later more developers added additional functions to LINUX.

UNIX principles
· Everything is a file including hardware.
· Configuration data are stored in the text format.
· Small-single purpose programs are present.
· It has ability to chain programs.

Linux has many unique features.
· It has a kernel programming interface. Kernel is responsible for controlling the resource and scheduling user jobs. All the programs interact with the kernel through system calls.
· Linux is a multi-user OS. This allows many users to access all the system resource almost simultaneously.
· It is a multitasking OS. It can run up to 32768 processes at a time.
· Files are arranged under a directory.


Structure of Linux system
Linux system structure consists of Kernel, Shell, Tools and Applications.

User Applications
Hardware
Kernel
Shell and Utilities

Layer view of Linux Operating System

Kernel is the heart of the Linux OS. It is loaded in the memory when computer is booted. It interacts with the hardware. It manages the system resources, allocates time for different users and process, and sets process priorities.

Shell acts as the interface between user and the computer. There are different types of Shell available in Linux. Among them, bash shell is widely used.

Linux has its own applications for word-processing, spreadsheet, creating presentation, image processing etc.


Simple Commands

Linux has six virtual consoles and one GUI console.
1. To switch between the text consoles, press
Ctrl+Alt+F1
Ctrl+Alt+F2
Ctrl+Alt+F3
Ctrl+Alt+F4
Ctrl+Alt+F5
Ctrl+Alt+F6,
To switch to GUI console, press
Ctrl+Alt+F7

2. To shut down the system, type “halt” in the command line and press enter.

3. date: To view and change current date and time.
· date (<┘): to view current system date and time.
· date –s mm/dd/yy : to change date
· date –s hh:mm:ss : to change time
· date –s ‘mm/dd/yy hh:mm:ss’ : to change both
· cal (<┘) : to view calendar of the current month and year
· cal 2004 (<┘) : to view calendar of the year 2004
· cal 7 2003 (<┘) : to view calendar of July 2003

4. To pause
more
or
less

press (<┘) to scroll one line at a time.
press ‘spacebar’ to scroll one page at a time.

5. To quit
press q (<┘)

6. To cancel a command, press
ctrl+c (<┘)

7. To clear screen
clear (<┘)


Getting Help

· For quick help
--help (<┘)

· For detailed help
man (<┘)

· Help files are also available in the directory
/usr/share/doc/

· Or we may also check the site
http://www.tldp.org
for linux documentation project.


File and Directory Commands

Directory Commands

NOTE:
. : represents current directory
.. : represents parent directory
/ : represents root directory
~ : represents home directory

1. pwd (<┘)
Displays the full pathname for the current directory.

2. ls (<┘)
Displays the list of files in the current directory.

ls /directory name (<┘)
Displays the contents of the specified directory.

This command various options to use. Some of them are as follows:
ls –l
Lists file in long format. Filenames are displayed along with their mode, number of links, owner, size, modification date and time.
ls –t
Lists in order of last modification time
ls –a
Lists all entries along with hidden files
ls –u
Lists in order of last access time


3. mkdir (<┘)
This command is used to create a new directory of specified name.

4. cd (<┘)
This command is used to change from working directory to any other directory specified.


5. rmdir (<┘)
This command removes or deletes the specified directory. The specified directory must be empty.



File Commands

1. cat command
Lists the contents of the specified file. If we do not specify the name of the file , it takes input form the standard input.

Options of cat commands are as follows:
cat
Displays the contents of the specified file.
cat –s
Suppresses warning about non-existent files
cat >
Creates a new file with specified file name. Takes input from standard input file. We can type in our text and terminate with ctrl+d to take us back to prompt.
cat >>
Appends data to the specified file

Conventions of filename
· Filename can be of maximum 255 characters.
· Special chars can be protected with quotes.
· Filename are case sensitive.
· Filenames beginning with dot is hidden file.

2. head (<┘)
Displays the first ten lines (default) the text file.
head –n N (<┘)
Displays the first N lines of the text file.
tail command is just the complement of the head command.


3. cp command
This command creates a copy of source file and gives the file name specified in destination file.
cp (<┘)

Options:
cp –i
Interactive
cp –r
Copies all the contents of dir1 to new directory dir2


4. touch …. (<┘)
Creates zero length (blank) files namely file1, file2, ….. fileN.

5. mv command
This command is used to rename and move ordinary and directory files.For this we need both execute and write permissions.
mv (<┘)

We can also use this command to rename files as follows:
mv (<┘)

6. rm command
This command removes the specified file.
The options available with this command are
rm -i
Prompts the user if he/she wants to delete the mentioned file.
rm -r
Recursively deletes the entire contents of the directory as well as the directory itself.
rm –ir
Interact with the rm command and deletes a directory.





Wild Card Characters
Group of files can be accessed using the wild card patterns.Various wild card patterns are as follows:
*
Match zero or more characters
?
Match any single character
[abx]
Matches any single character from given character
[a-e]
Matches by single character from given range
[^a-e]
Matches any single character except given range of character (^ stands for ‘not’)


User Information

The user information are stored in /etc/passwd. The file could be viewed by the root user.
The user information is stored and displayed in the following format.
username:x:user-id:GID:comment:/home-dir:/login shell

·Here, username specifies the name of the current user.
·x represents the shadow password. It is displayed instead of the actual password. The passwords are saved in /etc/shadow.
·User-id are the numbers. Zero (0) is for the root user by default Above zero till 499 specifies system users. While for the normal user it starts from 500.
·GID is the short form of Group ID. All the users are assosciates with a group in Linux OS. GID donates the user’s primary group number. User may be the member of more than one group. Primary GID is unique for all the users.
·Comments (finger information) are the information about the user. These are the common information which are not used in system.
·Home-dir is the home directory of the user. The user has the whole right in his/her home directory.
·Login shell


Some commands related to User Information

1. To create new user
useradd (<┘)

2. To assign password to new user
passwd (<┘)
Enter new password.

3. To change the user password
passwd (<┘) This command can be used by the user himself.
or
passwd (<┘) This command can be used by the root user.
Enter new password.
4. To change the comment of a user
chfn (<┘) chfn stands for “change finger”. This command can be used by the user himself.
chfn (<┘) This command can be used by the root user.

5. To view the finger information of any user
finger (<┘) This command can be used by the user himself.
finger (<┘) This command can be used by the root user.


6. To display the username of currently logged on users
· who (<┘)
Gives the details of the users who have logged in to the Linux system lately.


· whoami (<┘)
Gives details regarding login time and system’s name for the connection being used.
· w
Displays the users who are currently logged in.
· users
Displays the username of the users who have currently logged in. It displays only the usernames.

File Permission

Linux helps a very great deal in file security.
The Linux files can be classified into
- Directory files
- Ordinary files
- Special files
When a list of files is displayed using “ls –l” command, we can see the file-type and file permission specification in the first column (which is in the format drwxrwxrwx).

The first character represents the file type. Ordinary file starts with ‘-‘ and the directory files start with ‘d’.

The last nine charcters specifies the file permission.
The owner (one who created the file) of the file can perform any operation on the file. If the owner wants other people to access his/her files, then permission has to be granted by the owner.
Permission available are
r -> read (display, copy or compile a file)
w ->write (write, edit or delete a file)
x -> execute (execute a file)
The permissions are given from the second position onwards. The first three characters indicate the permissions of the owner of the file. The next three positions indicate the permissions of the group which consist of the owner and the last three indicates the permission for others.

To change the file access permission (FAP)

The mode of the file can be changed using ‘chmod’ command.
FAP can be changed for one user or for all the users. This can be done by specifying the name of the user before +/- sign.


‘u’ indicates the owner of the file.
‘g’ indicates the group which consists of the owner.
‘o’ indicates the others.
‘a’ indicates the all.

‘+’ is used to grant permission
‘-‘ is used to revoke permission
‘=’ is used for absolute assignment

syntax:
chmod user+/-permission characters (<┘)

For example,
chmod u+rwx file1 (<┘)
This command grants all the permissions to the owner.

chmod u-wx,g-wx,o-wx file1 (<┘)
This command revokes write and execute permissions from the entire user category.


Octadecimal Representation of FAP

FAP can be represented Octadecimally. The octadecimal values are as follows:
Numbers
Values
0
000
1
001
2
010
3
011
4
100
5
101
6
110
7
111

If a file has the permission set, then the value allotted is 1 else it is 0. If FAP is represented by 111, it means all the permissions are granted. The corresponding value for 111 is 7. So, the following command
chmod 777 file1 (<┘)
grants all the permissions for all the users.




Linux File System Essentials

Linux treats all the information as files. Directories and hard devices are also treated as files. They are stored in single rooted hierarchical order and grouped together which enables easier search of files. The supermost directory is called root directory and is represented by ‘/’. Only root doesn’t have a parent directory.

Linux file system can be shown as follows:

Root ‘/’ directory consists following subdirectories:

/bin
Consists of executable user programs
/usr
It is the home directory of the
/sbin
Contains system programs
/lib
Contains library files
/root
It is the home directory of the super user ie root user
/var
Location for variable files such as mail spools, print spools, log files etc
/mnt
Typical location for mount points mounted after system is booted
/etc
Consists of configuration files
/boot
Kernel and other files used during system startup
/lost+found
Used by file system check to place orphand files
/dev
Contains device files
/proc
It is the virtual file system containing system information used by other programs and kernel parameters
/home
Default location for user’s home directory
/opt
Installation directory for some third party programs such as star office
/tmp
Consists of temporary files

***----------------------------------------***
Remained to write about ext2/3 file systems
Filesystem metadata etc etc

Inode metadata

Stat command
***---------------------------------------***



Managing Devices

As has already been stated, Linux treat everything as a file. Even the hardware devices in which files are stored are treated as files. The special files that represent the hardware devices are kept in the directory /dev. Devices may be either Character Device or a Block Device.

The character device is a device in which we can read a sequence of characters. For instance, keyboard is a character device. They are also called sequentially accessed device.
While, a block device is the one in which we can read a block of data at once. Blocked devices have a fixed capacity and it allows accessing every part equally. Hence also called random access device. Floppy and Hard disks its examples.
The kernel identifies the type of the device by looking at the file mode, at the far left of the output of ls –l command.

Mounting Removable Media

The mount command can be used to mount blocked device (only) on the filesystem.
Syntax:
mount –t (<┘)

- fstype signifies the file system type to mount.
- device file represents a particular device to be mounted.
- mount point must be a directory and it need not be empty. When a filesystem is mounted in this directory, all files under the directory become inaccessible.

Floppy Disks
A floppy could be mounted with a filesystem such as msdos or vfat for FAT file system.
The device file corresponding to the floppy disks begin with the letters fd. /dev/fd0 represents the first floppy disk and /dev/fd1 for the second if exists. The device file /dev/fd0H1220 denotes a 1.44MB high density floppy.
CD-ROM Drive
A CD-ROM have a standard iso9660 filesystem.
The device name /dev/cdrom is used as a symbolic link to the actual device.
The audio CDs cannot be mounted.

In the above syntax, the fstype and deivce file are optional. Those details are retrieved from the /etc/fstab file. The mount point can be specified only if filesystem to mount is specified in /etc/fstab file.
Example of mount command :

mount /mnt/floppy (<┘)
mount /mnt/cdrom (<┘)
mount -t msdos /dev/fd0 /mnt/floppy (<┘)
mount -t iso9660 /dev/cdrom /mnt/cdrom (<┘)


To view the contents of the files in the media

cd /mnt/floppy (<┘) (for floppy disk)
ls (<┘)

cd /mnt/cdrom (<┘) (for cds)
ls (<┘)

After the use of the media, it is necessary to unmount it.

To unmount the media,
unmount (<┘)

Mounted CD-ROM cannot be ejected before unmounting. The following command first unmounts the CD Drive and then ejects it.

eject (<┘)


Links

There are two types of link available in Linux.
Hard Link and Soft or Symbolic Link.

The hard link establishes an additional filename for the existing file. Any modification made in one is reflected in both of them. Creating hard link does not take additional memory. Although we see two files, the same hard drive space is used for both.

Symbolic links are different from hard links in the sense that a symbolic link is a pathname, or alias, to the original file. Nothing happens to the original file if you delete the symbolic link.



To create hard link,
ln (<┘)
For directories, hardlinks cannot be created.

To create symbolic link,
ln –s (<┘)


Searching Files
There are two commands in Linux to search files in a directory and subdirectory.

slocate: This command accesses the database containing filenames and location to
find a file.

syntax:
slocate (<┘)

find: This command scans the actual file system.
syntax:
find ≥ dir ≤ [options] [action]

- dir is the directory name where file is to be searched.
- There are various options available with the find command. They are as follows:
-atime +/-N
List files that were accessed more or less than N days ago
-mtime +/-N
List files that were accessed more or less than N days
-user username
List files owned by user in username
-size N[c]
List files containing N blocks or if c is specified N characters long
-type filetypechar
List files whose type is filetype character
File type characters :
d for directories
b for block device file
c for character device file
l for soft link
f for regular or normal file
-name pattern
List files whose name matches to the pattern
-iname pattern
Same as above but case sensitive

- action can be as follows
-exec command {} \;
or
-ok command {} \;
The exec action executes the specified command on the found files.
The ok action is similar to exec. The only difference is that, it is interactive in nature.

Compression Utilities

Compression utilities are used for saving disk space by compressing large, less often used files. The compression utilities in Linux are
- gzip , gunzip (By default, extension of the compressed file will be .gz )
- bzip , bunzip (By default, extension of the compressed file will be .bz2 )

To compress file
gzip (<┘)
The compressed file is created in the current
directory. The original file is deleted.
gzip -c > (<┘)
The original file is not deleted.
bzip2 (<┘)
bzip2 –c > (<┘)

To uncompress file
gunzip (<┘)
The uncompressed file is created in the current
directory. The original file is deleted.
gunzip -c > (<┘)
The original file is not deleted.
bunzip2 (<┘)
bunzip2 –c > (<┘)


Archive Files (Backups)

Taking regular backups is one of the most important tasks. Backup copies are essential when the system malfunctions and files are lost or when a user deletes a file accidentally. Backup files are usually kept on floppy or magnetic taps. Writable CDs are also used.
One of the Backup Utilities provided by Linux is “tar”. The tar (tape archive) utility is used to store and retrieve files from a tape archive. Compression utilities could also be used to compress the archive, thus saving space. The archive can be written into hard drive, a tape drive, or nearly any other Linux device.
syntax:
tar [options] (<┘) .

The following options are available for tar command:
-c
Creates a new archive
-v
Verbose
-f
Specifies filename
-x
Extracts file from archive
-t
Test (list files in archive)
-z
Use gzip compression utility
-j
Use bzip compression utility

Here, ‘-‘ is optional. –c and –x can’t be used together.

Tar always restores files in the current directory. To restore file,
tar [options] (<┘)


X-Window System and GUI Applications (introduction)

An X-Window System is an application to provide GUI Environment. It is designed to be a machine/OS independent networked client/server program. As a result, the system is broken up into two major components: the X-Window server that runs on the machine and interacts with the monitor, hardware and the various clients. Component displaying is done by X-Client.
X-Free86 Package is used in Linux for GUI environment.

There are different window managers available with the X-Window System under Linux, each with different features. They are
- gnome
- KDE
- TWM
All these allow us to perform the basic operations.
To switch between displays, we may use following command.
If we are in run level 3,
switchdesk (<┘)
If we are in run level 5, then
- click start
- run program
- switchdesk
- select the display


The various GUI applications available in Linux are as follows.

Text Editors
- xemacs
- gvim
- dedit
- kwrite
Web Browsers
- mozilla
- galleon
- conqueror
- lynx
- links
File Manager/Web Browser
- nautilus
Task Manager
- Gnome-system-monitor
FTP Client
- gftp (to upload and download files)
Graphics Manipulation Program
- gimp
IRC chat client
- xchat
Mail Clients
- kmail
- balsa
- evolution
- mozilla
Office application
- koffice
- Gnome
- OpenOffice
Audio Application
- xmms
- gnome-volume-control
- gnome-cd
- mplayer for video CDs
Develop Environment
- kdevelop
X-Configuration
- redhat-config-xfree86 (Could be run in GUI or Text terminal)


Input/Output Redirection

By default,
- the standard input device is keyboard
- the standard output device is terminal window and
- the standard error is also displayed in the terminal window.
However, input can be taken from other sources like file itself and output can be passed to sources like printers or files etc. Such a process of changing the default assignment of input and output devices is called redirection.

For output redirection, following command is used.

command > (<┘)
Redirects the output to the specified file in overwrite mode.
command >> (<┘)
Redirects the output to the specified file in append mode.
command 2> (<┘)
Redirects the error to the file in overwrite mode.
command 2>> (<┘)
Redirects the error to the specified file in append mode.

For input redirection,
command < (<┘)
Redirects the input from the specified file. If the file does not exist, the shell will issue an error and abort the operation.

For input and output redirection
command < > (<┘)
This command takes it’s input from the source and redirects the output to destination.


Standard Input/Output Pipes

Pipes help in performing multiple tasks in a single command line. A pipe takes output of a command as input to another command. The pipes are considered as temporary unnamed files stored in memory. This prevents the user from making temporary files using redirection.

syntax:
command1 command2 command3 (<┘)

Here, the output of command1 acts as the input for command2. And the output of command2 is used as input to command3. The final output will be displayed on the standard output if the output redirection is not done.

The ‘tee’ command
This command is used to store an output of a command in a file as well as send it to another command as an input.
For instance,
ls –l tee mylist lpr (<┘)
This command will store the output of ‘ls’ command in the file ‘mylist’ and also will send it the printer.


String Processing and Filters

The ‘wc’ command
The wc command is used to count the number of lines, words or characters in a specified file.
syntax:
wc [options] (<┘)

The options for the wc command are as follows:
-l
For line count
-w
For word count
-c
For character count


The ‘cut’ command
This command extracts one particular field from the specified file or output of any command.

syntax:
cut [options] (<┘)

The options are
-d
Represents the delimiter or the field separator
-f
Used to specify the list of fields that have to be displayed
-c
Used to extract single character


The ‘diff’ command
This command compares two files for differences. If found, it displays the lines which are different.
‘<’ refers to the contents of first file
‘>’ refers to the contents of second file.
syntax:
diff (<┘)


The ‘paste’ command
This command merges the contents of two or more files into a single file. It reads a line from each file in the file list specified and combines them column-wise into a single file.
The contents of the first file are displayed in first column.
The contents of the second file are displayed in second column and so on.
They are separated by tab by default. If we wish to change the delimiter, ‘-d’ option can be used as in cut command.

syntax:
paste (<┘)

Example:
paste > (<┘)
This command merges file1 and file2. The merged file will be saved as
newfile.

The ‘tr’ command
‘tr’ stands for translate. This command reads standard input and, for each input character, maps it to an alternate character, deletes the character, or leaves the character alone. The output is written to the standard output.
‘tr’ does not take a filename as a parameter. But redirection operation could be used.

syntax:
tr ‘’ ‘’ (<┘)


The ‘aspell’ command
This command is used to check spelling in a file.
syntax:
aspell check (<┘)


Filters
Filters are used to extract the lines, which contain specific pattern, to sort, to find and replace etc. Filters are also used to store the intermediate results of a long pipe.


The sort Filter
The sort filter arranges the input taken in the alphabetic order. The original file remains unchanged.
The options available with sort are
-r
Reverse alphabetic order
-n
Sorts according to the ascii value (numeric sort)
-u or uniq
Stands for unique. Removes duplicates. This is case sensitive.
-f
The case distinction is ignored.
-t x
Use x as a field separator. The default field separator for sort is blank space or tab.
-k pos
Sorts from the field pos.
syntax:
sort [option] (<┘)


The grep Filter
‘grep’ stands for “global search for regular expression”. It is used to search for a particular pattern from a file or standard input and display those lines on the standard output.
syntax:
grep (<┘)


The ‘sed’ Filter
‘sed’ stands for stream editor. This command searches a particular pattern and replaces it with the replace string. But the changes are not reflected in the original file.
syntax:
sed ‘s/search-string/replace-string/g’ (<┘)

The ‘g’ is used to replace all the search strings. If ‘g’ is not specified, the
command will replace only the first occurrence of the search string in a
line.


The ‘awk’
An ‘awk’ is a scripting language. ‘awk’ program can be entered in a number of ways on the command line. It is also used for pattern recognition. One of the methods of searching a pattern using awk code is as follows.

syntax:
awk ‘pattern {action}’ (<┘)
Example:
ls –l awk ‘$3==”user1” {sum+=$5} END {print sum}’
This command prints the total size of all the files under the ownership of
user1.



Process

A process is the basic context within which all user-requested activity is serviced within an O.S. In Linux, every process runs under another process (called Parent Process). So, every process is a child process. At a time there can be maximum 32768 numbers of running processes and consequently there can be 1 to 32768 processIds. All the processes created after login is controlled by terminal.

Init Process
It is the process that is executed during the booting process in Linux. Its processId is 1. It is the first process that is executed in Linux and is situated in the directory /sbin/init. Init process does not have any parent process because it is directly run by Kernel.

A process can be in following states:
R
Runnable
S
Sleeping
T
Stopped
D
Uninterruptible sleep (Not respondent task)
Z
Defunct (Zombie) process

When child process ask parent process to release its processed, parent process acknowledges releasing the process Id. But, due to some reason, if child process doesn't receive the acknowledgement, it is not released and the resulting state is said to be the zombie state.


Various commands related to the Process are as follows.

· Viewing process
ps command
‘ps’ stands for Process Status. It also displays the cumulative amount of time that the CPU has spent in the execution of the process.

The options of ps command are,
a
display all processes excluding the processes not controlled by terminal. It displays four columns for process Id, terminal, time, and command.

x
displays all processes including the processes not controlled by terminal
l
long listing; includes more information such as process owner's id UID.
u
displays the user name of process owner

· Running a process in the foreground
To run the process in the foreground, simply type the command and press enter.

· Running the process in the background
To run the command in the background following syntax is used.]
command & (<┘)

· Suspending (Stopping) a foreground process
To stop a foreground process, press
Ctrl + Z (<┘)

· Displaying the stopped and background process
To display the stopped processes and the background processes,
jobs (<┘)

· To display the process hierarchy, following command is used.
pstree (<┘)

· Terminating a process
We use KILL or TERM (default) commands to terminate a process.
syntax:
kill [ signal ] <>
TERM sends process the message as 'terminate yourself'
KILL forcefully free the resources using that process.

· Resuming the processes
To resume the jobs in foreground,
fg (<┘)
To resume the jobs in background
bg (<┘)


A process can have its priority form –20 to 19, -20 is the highest priority and 19 is the lowest priority. By default the priority of a process is 0.

· Running a process with specifies priority
syntax :
nice –n priority command (<┘)
Eg:
nice –n 10 find / -ml (<┘)

· Changing the priority of running program
syntax:
renice <-p PID -u username> (<┘)
The priority of the process having “PID” will be changed.
renice <-u username -u username> (<┘)
The priority of the processes under “username” will be changed.


Visual Editor(vi)
The editors help in creating and editing files. The editor in an OS has the same importance as the editor of the newspaper. Linux offers various tuypes of editors like vi, ex, sed, ed etc. Among them, the vi editor is the most powerful and widely used in Linux environment.

The vi editor functions in two different modes – the command mode, and the insert mode.
In the command mode, any key pressed by the user is assumed as commands by the editor. No text is displayed on the screen when any key is pressed.
The insert mode helps us to insert the text we want to.

To invoke the editor,
syntax :
vi (<┘)

To go to the insert mode from the command mode,
press i
To go to the command mode from the insert mode,
press escape key

In command mode the pressed character is the command.
The characters that works as command in the command mode:
i
Insert before the cursor
a
Insert after the cursor
o
Open a line below
I
Insert at beginning of line
A
Append to end of line
O
Open a line above

Saving and exiting from vi editor
:w (<┘)
save(write to disk)
:w (<┘)
if filename is not given
:q (<┘)
quit if saved
:wq (<┘) ] or :x (<┘) or :zz (<┘)
save and exit
:q! (<┘)
quit without saving
:e! (<┘)
abandon the changes and reload the last saved version


Cursor movement
The vi command involves alphabets and the shift and control keys.The cursor movement can be described as follows.

h
left
j
down
k
up
l
right
w
word ahead
b
word back
(
sentence back
)
sentence forward
{
paragraph back
}
paragraph forward

To Change, Delete (cut), Yank (copy) texts,

change
delete
yank
line
cc
dd
yy
letter
cl
dl
yl
word
cw
dw
yw
paragraph above
c{
d{
y{
paragraph below
c}
d}
y}
sentence back
c(
d(
y}
sentence foreward
c)
d(
y)

Paste
p
To paste after cursor/line
P
To paste before the cursor/ line

Undo
u
undo most recent changes
U
undo all changes to the current line since the cursor loaded on the line

Redo
Ctrl + r (<┘)

Searching the text
/searchtext (<┘)
searches the text in forward direction
?searchtext (<┘)
searches the text in backward direction
n
continue search in the same direction
N
continue search in the opposite direction


Search and replace
:s/search text/replacetext/g
searches and replaces on current line only
: 1,$s/searchtext/replacetext/g
searches and replace in entire file
: . , .+10s/searchtext/replacetext/g
searches and replaces on current line and 10 lines forward
:8, 12s/ searchtext/replacetext/g
searches and replaces on 8th lines through 12th lines.


Configuring vi
: set number[spelling] or nu
Displays the line numbers
: set nonunter or nonu
Removes line number
: set ignorecase (<┘)
Ignores case
:set noignorecase (<┘)
Considers case


Getting help
:help (<┘)
To come out of the help
:q (<┘)


Bash Shell and Shell Scripting
A Shell provides features that enable it to be used as a programming language. A set of commands can be grouped together under a single filename and executed. This is referred to as Shell Scripting in Linux. It offer varied of facilities for effective programming.

Various Shells in Linux are
o sh (Bourne shell): developed by Stevene Bourne at AT & T
o csh (C shell): developed by Bill Joy at Berkeley
o ksh (Korn shell): developed by David Korn at AT & T
o tesh (The Enhanced C shell): developed by community effort
o bash (Bourne Again Shell): by GNU, bash is the mostly used shell.

To know the currently using shell,
press ctrl-X, ctrl-V
It displays the current shell and its version.

Creation of Shell Scripts
A set of commands to be performed can be entered into a file by using any of the above editors or by using cat command.

Execution of Shell Script
A Shell Script can be executed using two methods. One is to type “sh ” at the command prompt.
The other method is to grant execute permission to the file and then type the file name at the prompt.



Variable
Variables can be
- shell variable
- environment variable
Shell variables are accessible within the shell only and environment variables are accessible within shell and its child shells as well.

The following commands display the list of variables
set (<┘) : Displays the list of shell variables as well as
environment variables.
env (<┘) : Displays the list of environment variables only.

The # symbol
The # symbol is used in the Shell scripts to insert comment lines. On execution, the comment line will be ignored.


//****
Eg. $a=5 (<┘)
It assigns the value 5 to the variable 'a'.
No space in front and back of '=' is required as the space in command line is taken as an argument.

'Echo' command
This command is used to display the definite value or string embedded in double quotation.
Eg. $echo "Hello" (<┘)
It displays the string “Hello”

Eg. $a=5
$echo $a
It displays the value of the variable 'a' as 5

If the user is in child shell then he cannot operate on shell variable, he has to return from child shell.

To create child shell we use the command 'bash'.
bash (<┘)

To return from the child shell 'exit' command is used.
exit (<┘)

Export command
To transfer the shell variable to environment variable 'export' command is used.
export a (<┘)
The variable 'a' is shell variable.
$ps
If there is more than one bash then you are in child shell.

Eg: $a=10
$bash
$export a
$echo $a
10 is assigned to the variable 'a'. Child shell is created the shell variable is transferred to the environment variable and the value of 'a' is displayed.
$a=10
$bash
$echo $a
It doesn't displays the value of a. You need to return from child shell.
$a=10
$bash
$exit
$echo $a
$export b=6 is equvalent to $b=6
$export b

ps1 is predefined environment variable.
$echo $ps1 defines command prompt with some predefined value as [\u@\h \W]\$
where \u ->user name
\h -> Host name
\H -> Full Host name
\W -> directory
\$ -> normal user ****/


History Command
'history' command is used to display the latest commands those were used by the user. By default, it displays latest thousand commands. It is user specific command and can be viewed only after logout. The history file is saved in the directory ~/. bash_history.
( ~ is home directory of the user.path = /home/user1/. bash_history)
So, we can also read or edit the content of the file using the following command,
vi .bash_history (<┘)

!! (<┘)
executes last used command
!x (<┘)
repeats last used command started with 'x'
!n (<┘)
repeats a command by its number in history output
!-n (<┘)
repeats a command entered n commands back


/************
Command line expansion
Shell function; shell scripting
************/

Programming Structures

Operators:
1. String operators:
· –z string : Returns true, if zero length string
· –n string : Returns true, if length of string is non-zero
· string1 op string2 : Here op may be ‘=’ or ‘!=’
2. Integer operators
· Integer1 op Integer2
Here op may be as follows:
-eq : equal to
-ne : not equal to
-lt : less htan
-le : less or equal to
-gt : greater than
-ge : greater or equal to
3. File operators
-e filename : Returns true if file exists
-f filename : Returns true if regular (normal) file
-d filename : Returns true if directory
-b filename : Returns true if block device file
-c filename : Returns true if character device file
-r filename : Returns true if file has read permission
-w filename : Returns true if file has write permission
-x filename : Returns true if file has execute permission
4. Logical operator:
-a : AND
-o : OR

Condition
Syntax : test expression
or
[ expression ]

Control Statements
1. if statement
The if condition statements may be used in the following four ways.
· if condition
then
statement
fi

· if condition
then
statement
else
statement
fi

· if condition
then
statement
elif condition
then
statement
elif condition
then
statement
else
statement
fi

· if condition
then
if condition
then
statement
else
statement
fi
else
statement
fi


2. Case Statements
The case statement executes a shell script based on a choice.
syntax:
case variable in
value 1)
statements
;;
value 2)
statements
;;
*)
statements
;;
esac

3. Loops
The following sorts of loops are available for shell scripting in Linux.

· for Loop
It is used ot perform the same set of operations on a list of values.
Syntax:
for variable in list_of_values
do
statements
done

· while Loop
The commands within it are executed repeatedly as long as the condition remains true.
syntax:
while condition
do
statements
done
· until Loop
Here, the statements are executed until the condition is false.
syntax:
until condition
do
statements
done


Positional Parameters
Linux accepts commands in the command line. A shell script can be made to accept arguments form the command line. Since the arguments represent their position, they are called positional parameters.

The variables defined for the positional parameters are
$#
Count of arguments
$*
List containing arguments
$0
Filename of the shell script
$1
First argument
$x
xth argument (where 0 &ge x<10)


Printing and Mailing

Printing
The various commands related to “printing” in Linux are as follows:
· lpr (<┘) : prints a named file.
· lpr –P printer (<┘) : configures printer and prints the specified file.
· lpq (<┘) : displays the queued print jobs.
· lprm (<┘) : removes the queued print jobs.

The various utilities related to printing are,
· enscript : Converts text file into PostScript file
· a2ps : Converts text file into PostScript file
· ps2pdf : Converts PostScript file to PDF file
· pdf2ps : Converts PDF file to PostScript file
· ggv : It is used in GUI terminal to view PDF and PostScript files. Could be compared to Adobe Acrobat Reader.

Mailing
There are various mail programs that can be used in Linux to send and receive mails.
In the text terminal, the following can be used.
· mail
· pine
· mutt
While in the GUI, the following applications can be used.
· Kmail
· balsa
· evolution
· mozilla

To send mail using “mail”
mail (<┘)
subject: (<┘)

(<┘)

. (<┘) //This signifies the end of the text.
cc: (<┘)


To check mail
mail (<┘)


Basic Networking

ping Command
This command is used to check if there is a connection between any two computers.

This command is also useful for verifying that your ISP’s IP addresses are valid and for testing the response times of your ISP’s host servers. Ping sends test packets of data and measures the time it takes for the host to send back the information.

Syntax:
ping (<┘)
Example:
ping 192.168.1.X where X is a machine-id

By default, ping will continue to send and receive information until we quit with
the following command:
Ctrl+C (<┘)

traceroute Command
This command is used if there is a network to network connection.

Example:
traceroute www.redhat.com (<┘)

white paper of linux, case study of linux, example of linux command, linux command

1 comment:

  1. First time visit here. You have a great blog. So informative :) Thanks for the article.
    See my blog http://www.another-new-blogger.blogspot.com

    ReplyDelete