Chapter 5 – Linux Shells

advertisement
TOPIC 5.0
LINUX
SHELLS
SHELL SCRIPT
 Shell is the interface between end user and
the Linux system, similar to the commands
in Windows
 Typical operations performed by shell
scripts include
 file manipulation,
 program execution,
 text printing.
EXAMPLE OF A SHELL SCRIPT
Use text editor to generate the “first” file
#!/bin/sh
# first
# this file looks for the files containing POSIX
# and print it
for file in *
do
if grep –q POSIX $file
then
echo $file
fi
done
exit 0
% /bin/sh first
% chmod +x first
%./first
IMPORTANCE OF A SHELL SCRIPT
 easy program or file selection,
 quick start, and interactive debugging.
 A shell script can be used to provide a sequencing and
decision-making linkage around existing programs
 Non-expert users can use scripting to tailor the behaviour
of programs.
VARIOUS OF LINUX SHELLS
 Bourne shell (sh commands)
 C shell (csh commands)
 Bourne-Again shell (bash commands)
 Korn shells (ksh commands)
 Almquist shells (ash commands)
BOURNE SHELL (sh commands)
 The Bourne shell, or sh, was the default Unix shell of Unix
Version 7,
 It replaced the Thompson shell, but the executable file had the
same name, sh.
 It was developed by Stephen Bourne, and released in 1977 in
the Version 7 Unix.
 It remains a popular default shell for Unix accounts.
 The binary program of the Bourne shell or a compatible
program is located at /bin/sh on most Unix systems
 Its command interpreter contained all the features that are
commonly considered to produce structured programs.
 Although it is used as an interactive command interpreter, it
was always intended as a scripting language.
C SHELL (csh commands)
 The C shell is a Unix shell that was created by Bill Joy in the






late 1970s.
It has been distributed widely in 1978.
The C shell is a command processor that's typically run in a
text window, allowing the user to type commands which
cause actions.
The C shell can also read commands from a file, called a
script.
C shell has an interactive features and overall style.
Its new features made it easier and faster to use.
And the overall style of the language looked more like C and
was seen as more readable.
BOURNE-AGAIN SHELL (bash commands)
 Bash is the shell, or command language interpreter, that will





appear in the GNU operating system.
Bash is an sh-compatible shell that incorporates useful
features from the Korn shell (ksh) and C shell (csh).
It offers functional improvements over sh for both
programming and interactive use.
In addition, most sh scripts can be run by Bash without
modification.
The manual is available online at
www.gnu.org/software/bash/manual/.
BASH can be downloaded at http://ftp.gnu.org/gnu/bash/
KORN SHELL (ksh commands)
 The Korn shell (ksh) is a UNIX shell which was
developed by David Korn in the early 1980s.
 It is backwards-compatible with the Bourne shell
but includes many features of the C shell as well,
such as a command history
 The main advantage of ksh over the traditional
Unix shell is in its use as a programming language.
 Several features were gradually added, while
maintaining strong backwards compatibility with
the Bourne shell.
ALMQUIST SHELL (ash commands)
 The Almquist shell (also known as A Shell, ash) was




originally developed by Kenneth Almquist‘s
it is a fast, small, POSIX-compatible Unix shell designed to
replace the Bourne shell in later BSD distributions.
Originally it did not feature line editing or command
history mechanisms - should be moved into the terminal
driver;
ash are installed as the default shell (/bin/sh) on
FreeBSD, NetBSD, DragonFly BSD and Minix.
Debian's version of ash is known as Debian Almquist Shell
(dash).
METHODS TO GET SHELL
INTERFACE
 Shell Prompts
 It looks like an MS-DOS screen.
 Users type commands at a shell prompt,
 the shell interprets these commands,
 and then the shell tells the OS what to do.
 Linux functions can be completed faster from the shell
prompt than from a GUI.
METHODS TO GET SHELL
INTERFACE
 Terminal Windows
 synonymous with a command line shell or text terminal, the
term terminal covers all remote terminals, including graphical
interfaces.
 A terminal emulator inside a GUI is often called as terminal
window.
 A terminal window allows the user access to Command Line
Interfaces (CLI) and Text User Interface applications.
 On Unix-like OS, it is common to have one or more terminal
windows connected to the local machine.
METHODS TO GET SHELL
INTERFACE
 Virtual Terminal
 In open systems, a virtual terminal (VT) is an
application service that:
 Allows host terminals on a multi-user network to interact with
other hosts regardless of terminal type and characteristics,
 Allows remote log-on by LAN managers for the purpose of
management,
 Allows users to access information from another host
processor for transaction processing,
 Serves as a backup facility.
 ITU-T defines a virtual terminal protocol based on the OSI
application layer protocols.
LINUX TEXT EDITOR
 vi editor
 Vi is often the default editor that pops up when we're ready to write an
e-mail message or when we're posting a News message.
 Vi is complicated and seems difficult to learn at first.
 it is often the default for Unix and Linux systems.
 pico (Pine composer) editor
 Pico is a simple text editor that provides straight-forward options
and easy-to-use commands.
 it provides everything necessary to write long documents with minimal
hassles.
 Pico is not very good when manipulating certain types of files such as
making changes to .cgi files
LINUX TEXT EDITOR
 emacs (Editor Macros) editor
 Emacs falls somewhere between the straightforward Pico and the
complicated Vi.
 Unlike Vi, we don't need to switch between modes to perform basic
text editing functions.
 powerful commands themselves are difficult to remember.
 mcedit editor (Midnight Commander Editor)
 mcedit is a link to mc, the main GNU Midnight Commander executable.
 Executing GNU Midnight Commander under this name requests staring
the internal editor and opening the file specified on the command
line.
 The editor is based on the terminal version of cooledit (standalone
editor for X Window System).
LINUX TEXT EDITOR
 joe (Joe’s Own Editor)
 JOE is a full featured terminal-based screen editor
 It is distributed under the GNU General Public License (GPL).
 JOE has been around since 1988
 It is comes standard with many Linux distributions.
 JOE is being maintained by its original author Joseph Allen
 JOE is written in C and its only dependency is libc.
LINUX TEXT EDITOR
 Graphical text editors:
Nedit editor
 already installed in Computer Systems
 smaller and easier to use/customise than emacs
 easy to get it to do syntax colouring for Java/HTML etc
 suitable for Unix/Linux only (see below)
 impossible to use via telnet/ssh
 more difficult than emacs
Xedit editor
 It is a text editor for the X Window System on Linux and UNIX
 It is a visual text editor for the virtual machine operating system
Download