![]() Sell Back Your Copy for $1.70
Whether you buy it used on Amazon for $3.00 or somewhere else, you can sell it back through our Book Trade-In Program at the current price of $1.70.
Used Price$3.00
Trade-in Price$1.70
Price after
Trade-in$1.30 |
Introduction
This book is about shell programming or to be more precise shell and Bourne
shell programming.
With LINUX now firmly taking its rightful place in the market as a viable and
robust operating system, shell programming has become even more popular. No-one
can say with any confidence how many LINUX users there are out there because
LINUX is free, though there is a growing number of third parties selling their
own LINUX variants. UNIX is still as popular as ever and growing despite a forecasted
demise by IT consultants a few years ago.
If you want to learn shell programming, then this is the book for you; even
if you are an intermediate shell user you will find the book a good learning
and reference tool as there are some handy administrative tips and one-liners
for you.
This book has been written from the outset with six main objectives in mind.
These are:
Getting the reader up to speed quickly learning about shell tools and
shell programming.
Using the book not only as a learning tool but also as a reference book.
Using shell scripts to use your system more productively.
Showing scripts that are clear and easily understandable.
Making the chapters self-contained where possible for the subject covered,
for ease of use.
Showing the reader not just shell scripting but also some administrative
tasks like rc.scripts and cgi scripts.
One of the annoying things about certain books on this topic was how some scripting
examples were made to look complicated just to save a few lines of extra code.
You won't find that sort of thing happening in this book: all the code in this
book is simple but effective.
If you're reading this, then you have probably already got your own reasons
for learning shell programming; great. If you want to know the main reasons
for learning shell programming they are:
The shell is a programming language all on its own; it has iteration,
conditions and testing constructs and it's easy to use.
You can create scripts quickly.
You can automate boring manual tasks using scripts.
The Bourne shell
The Bourne shell is the standard shell shipped with all UNIX systems and is
linked into the LINUX bash shell. A book about shell programming that covers
all leading systems must cover the Bourne shell. There are other shells, mind
you, like bash, Korn, and the C shell. If you are familiar with the bash shell,
the scripts presented in this book will run on your system, because bash is
backward-compatible with Bourne. If you have the Korn shell, the syntax of the
shell is very close.
If you look at installation scripts you will find that over 95 per cent of them
are Bourne shell scripts. This is simply because the person who wrote the script
knows it will run on any UNIX or LINUX system.
Shell portability
When you write a script that you want to run on any system it has to be what
is called portable. Portability of scripts has two major issues:
script syntax of the shell you are using;
shell commands.
The first issue is practically already solved if you are going to program with
the Bourne shell: it has few or no portability problems.
Most shell scripts spend at least 20 per cent (or probably more) of their time
using shell commands such as cp, mv, mkdir etc. This is where the problems of
portability come in. Different system vendors have different command options
on their machines; coupled with this if you have UNIX then you are either a
SystemíV or BSD user. This book uses generic scripts and command examples.
I have only used options and commands that are common to both SystemíV
and BSD and in my opinion useful, throughout the book. Where there are slight
differences they are pointed out with an alternative command, but these are
few and far between.
Organization of the book
This book is organized as both a learning tool and a reference book, therefore
do not think that you have to read each chapter in sequential order. Feel free
to wander through the chapters or even start on the last chapter, if you want
to knock up some cgi-based HTML pages.
The book is split into five parts, and within those parts are chapters dealing
with different aspects of the shell and shell programming.
The book is full of complete working examples of scripts.
The shell
In Part 1 of this book we will cover the topics that show you how to list files
using patterns, and how to change directories quickly. When you create a file,
you want to make sure it has the right permissions and directories. This is
also covered. Coverage is also given to file operations such as umask and group
file ownerships.
To avoid endlessly searching for files you have created, a whole chapter is
devoted to the find command.
When your scripts are up and running you will at some point want to run them
during the night or late in the evening: you will discover how to do this in
the chapter dealing with running commands unattended.
The nitty-gritty of any shell is its ability to read commands into a file or
from a terminal and also display the output. This is also covered. You may want
to run certain commands only if the previous command succeeded -- no problem,
that's covered as well.
Text file filtering
Part 2 of the book covers all the major test filtering tools. Text filtering
includes all you need to know about filtering text before your scripts get hold
of the information, during the script execution and the output of the text.
Topics include awk, a language by itself; grep, a text file searching utility;
and sed, an in-line editor that lets you edit on the fly. We also cover sorting,
merging and pasting files and records. There is also a chapter on tr, the character
translation utility.
Login environment
Part 3 covers your login environment and how to customize it. Understand which
files are executed when you login. Learn all about local and global variables.
Uncover the mystery surrounding quoting, so you can use variables to their full
power.
Basic shell programming
Part 4 of the book is all about shell scripting. The basics are explained including
how to make a file executable and run it in the shell; different control constructs;
and how to test for different types of conditions and take action based on that
result. Once we have covered all the angles with working scripts we then look
at functions. Functions are pieces of reusable code, and we will see how to
use and share these functions between scripts.
Being able to pass arguments to a shell script is an important function. We
look at three different methods of using commands that are passed to scripts.
By now we are putting together competent scripts, so all that we need now is
some information on using colour and control characters -- guess what, we cover
that as well. No shell programming book should be without a file updating system,
and there's a whole chapter devoted to this subject in this book. We finish
off this part of the book looking at other built-in shell commands we have not
yet covered.
Better scripting skills
Is there really a subject such as better scripting skills? You bet there is.
That's what Part 5 of the book is all about. We look at the more advanced areas
of scripting, and we cover signals and traps, so your scripts can take action
if someone tries to kill them. We also look a bit more at here documents. What
are here documents, you might say? They let you give input into your scripts
or, to put it another way, the scripts get a touch of remote control.
Have you ever wondered how some programs get started automatically when a system
boots up? It's no secret; we will look at run levels and how to put an rc.script
together. If you follow the examples in this chapter you will have your own
scripts up and running when your machine boots up.
There's a chapter containing a small collection of smallish but favourite scripts,
which includes amongst others how to deny access to other users without touching
the /etc/passwd file. If you have ever wondered how to put html pages together,
send information to another page, or continuously refresh pages, we look at
cgi-bin scripting using not Perl but Bourne shell scripts.
There are also two appendices, AppendixíA which deals with the ASCII
chart, and AppendixíB which contains some useful shell commands commands.
Assumptions
I assume the person who is reading this book knows how to login into a shell,
change directories, and how to use a text editor.
If you want to try out the cgi scripts that are covered in Part 4, you should
really have a Web server installed and be able to run cgi scripts on your machine
(though this is not a 'must have' condition).
Conventions used in this book
Throughout this book the following conventions are used:
CTRL-key
means hold the control key and the key specified. For instance CTRL-O means
hold down the control key as well as the letter O.
This typeface
means a non-command example or text of special interest.
This typeface
is used for all script listings.
This typeface
is used for any command line or script input and output.
In the first two parts of the book, you will find text boxes that look like
this:
If it's LINUX thenÄ.Ä.Ä. These have been used to quickly point
out differences between the BSD/LINUX and SystemíV command that is currently
being described.
I have tested the scripts both on LINUX (Redhat) and on AIX, and some scripts
have also been tested on Data Generals.
I hope you enjoy the book, not only as a learning tool but also as a reference
tool. Enjoy and have fun. Stand-by to stand-to.
Any comments, or just to say hello, e-mail me at dtansley@my-Deja.
0201674726P04062001
This comprehensive book is a practical, easy-to-use guide to programming and using the Bourne shell for beginners and experienced users - the Bourne shell is the standard shell for UNIX, and is also fully backward compatible to the Linux BASH shell. This book will fully illustrate the ability of the shell to unlock the real potential of UNIX and Linux, and aims to get the reader up, running and creating robust shell scripts for real tasks and situations as quickly as possible - shell scripts that will work on any mainstream UNIX or Linux machine.
If you are new to UNIX and Linux or if you are a power user in waiting then this book is for you. Most shell programming books merely annotate manual pages and syntax , but in this book users of all abilities will find plenty of practical working examples - all of which are available as full code script via an ftp site - as well as a host of tips, tricks and code one-liners, that will save you time on a day-to-day basis. The book is organized into self-contained chapters on individual topics for ease of reference.
Product Details
Would you like to update product info or give feedback on images?
|
|
Share your thoughts with other customers:
|
||||||||||||||||||||||
|
Most Helpful Customer Reviews
6 of 6 people found the following review helpful:
5.0 out of 5 stars
Simply a great book on Unix Shell Programming,
By Victor Kamat (Modesto, CA United States) - See all my reviews
This review is from: LINUX & UNIX Shell Programming (Paperback)
Reviewer: A reader from Modesto, CA United States This is a marvellous book on Unix/Linux shell programming. D. Tansley knows unix/linux very well, and is a very good teacher too. (In my opinion if you study this book and "The Korn Shell" by Olczak you'll become very good at Unix and Shell scripting.) He has obviously thought a great deal about the organization of the book; in my opinion he has done it very well. About 1/2 the book is devoted to grep, find. awk, cron, file permissions, quoting, the login environment, etc. His explanations are the best I have read, and all this is enhanced by his organization of the material and his examples. He then gets into shell scripts, things like conditional testing, control flow structures, functions, and then more advanced material. And once again he does a very nice job. The more I read this book and use it in my daily work, the more impressed I am with it. If you are a unix/linux user do yourself a favor and get this book. One reviewer has given this book a scathing review; in my opinion this reviewer is totally off-the-wall. It may be that he has a problem with the english language (he's from Swizterland). Set aside his remarks.
6 of 6 people found the following review helpful:
5.0 out of 5 stars
Tansley's Linux book is an Amazing Friend to keep nearby,
This review is from: LINUX & UNIX Shell Programming (Paperback)
A friend of mine raves about "Linux & Unix Shell Programming" by David Tansley, and I certainly have to agree with him.In my case, I had to add Linux to my Windows 98 computer so that I could better talk to and understand programmers who enter the programming contest at <www.MSOworld.com/programming.html>. This book would almost be my "Best Friend" if such a thing were possible, because it lets me look up the DOS terms I memorized years ago and see the equivalent Linux terms and syntax. (I'm in love with that feature, by the way). "Linux & Unix Shell Programming" even has material that will help you learn the same CGI that is found on many web pages, and, thank goodness, the wild cards I fell in love with in DOS are there. As you can see from the table of contents, below, it covers quite alot of ground, from "Introduction to Linux/Unix in general" to "Building CGI scripts for a web site." Cool, eh? Definitely buy it if you're looking to understand Linux, and especially if you're an old DOS user from the early computer age. The Table of Contents is below. I hope you fall in love with it. John Knoderer -- PART 1: THE SHELL -- PART 2: TEXT FILTERING -- PART 3: THE LOGIN ENVIRONMENT -- PART 4: BASIC SHELL PROGRAMMING -- PART 5: BETTER SCRIPTING SKILLS -- APPENDICES
17 of 23 people found the following review helpful:
1.0 out of 5 stars
A very poor book,
This review is from: LINUX & UNIX Shell Programming (Paperback)
Don't buy this book. Not only that; if you receive it as a gift, don't bother reading it.I made the mistake of judging (and ordering) it by its "Contents". I have ordered a fair number of programming books from Amazon, but this is the first one bad enough to compel me to write a review. The author is painfully unable to express himself with the clarity required by this kind of book. This leads to confusion and, sometimes, to errors. To compound this, the book seems to have received no proofreading whatsoever. A few samples, from Chapter 2, "Using find and xargs": pg. 21 "-print When find finds the files, this prints them to standard output" pg. 22 "-newer file1 file2 Find files that are newer than file1 but older than file2" "-size c n Find files by block 'n' size or by character length 'c', which is taken as bytes." pg. 23 "-mount Use find to find files only on mounted filesystems" pg. 25 "Find files by modification times [...] Use the '-' to specify files that have not been accessed in x number of days. Use '+' for files that have been accessed in the last x number of days. To find all files that have been modified in the last five days: $ find / -mtime -5 -print " pg. 30 -- a masterpiece "When using the -exec option in find to process files, find passes all the located files to exec to be worked on in one go. Unfortunately on some systems there is only a limited command line length that can be passed to exec before it bombs out after running for a few minutes with an error message. The error message usually says 'Too long on Args list' or 'Args list exceeded'. This is where xargs comes in, especially when using find. Find passes on the located files to xargs and xargs grabs the files in portions and not all in one go, unlike using exec. Thus it can process the first portion of files, do its stuff, then request the next batch of the files and so on." Well, and so on it goes. I resisted as far as Chapter 5, "Shell input and output". (So, yes, I didn't read the whole book. There is a chance it miraculously becomes excellent after chapter 5 :-)). One more pearl of wisdom (pg. 57): "Standard error is file descriptor '2'. [...] You may be wondering why there is a special file for errors; well, some people like to keep their errors in a separate file, especially when processing large data files, where a lot of errors might be raised." I would have laughed, if I hadn't paid for the book. Perhaps I should have read the "Acknowledgements" section before ordering. There, the author says: "When it comes to writing a book in the end, it's just the author and the keyboard tapping away a merry tune into the early hours of the morning." Well, that might explain some things. And further: "I would also like to thank my children Louise and Matthew for their help. Louise for informing me of grammatical errors as I was typing away: thanks Louise!" Well, it's a pity Matthew apparently doesn't know anything about the shell. So, learn from my mistake and stay away from this book.
Share your thoughts with other customers: Create your own review
|
|
Tags Customers Associate with This Product(What's this?)Click on a tag to find related items, discussions, and people.
|
|
This product's forum
Active discussions in related forums
Search Customer Discussions
|
Related forums
|