Sell Back Your Copy
For a $1.70 Gift Card
Trade in
Have one to sell? Sell yours here
LINUX & UNIX Shell Programming
 
See larger image
 
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

LINUX & UNIX Shell Programming [Paperback]

David Tansley (Author)
3.3 out of 5 stars  See all reviews (18 customer reviews)


Available from these sellers.


Textbook Student FREE Two-Day Shipping for Students. Learn more

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

Book Description

0201674726 978-0201674729 January 6, 2000
Learn how to create and develop shell scripts in a step-by-step manner increasing your knowledge as you progress through the book. Learn how to work the shell commands so you can be more productive and save you time.

Customers Who Bought This Item Also Bought


Editorial Reviews

From the Inside Flap

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

From the Back Cover

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

  • Paperback: 528 pages
  • Publisher: Addison-Wesley Professional (January 6, 2000)
  • Language: English
  • ISBN-10: 0201674726
  • ISBN-13: 978-0201674729
  • Product Dimensions: 9.2 x 6.6 x 1.3 inches
  • Shipping Weight: 1.9 pounds
  • Average Customer Review: 3.3 out of 5 stars  See all reviews (18 customer reviews)
  • Amazon Best Sellers Rank: #83,060 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

 

Customer Reviews

18 Reviews
5 star:
 (9)
4 star:
 (1)
3 star:    (0)
2 star:
 (2)
1 star:
 (6)
 
 
 
 
 
Average Customer Review
3.3 out of 5 stars (18 customer reviews)
 
 
 
 
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, January 5, 2002
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.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


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, March 28, 2000
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
mazes@msoworld.com
webmaster@mazes.com

-- PART 1: THE SHELL

-- Chap 1. File Security and Permissions
-- Chap 2. Using 'find' and 'xargs'
-- Chap 3. Running Commands Unattended
-- Chap 4. Filename Substitution <-- talks about wildcards
-- Chap 5. Shell Input and Output <-- cat, echo, redirection,...
-- Chap 6. Command Execution Order

-- PART 2: TEXT FILTERING
-- Chap 7. Introducing Regular Expressions <-- Important!
-- Chap 8. The 'grep' Family
-- Chap 9. Introducing 'awk'
-- Chap 10. Using 'sed'
-- Chap 11. Merge and Divide <-- sort, uniq, cut, paste
-- Chap 12. Using 'tr'

-- PART 3: THE LOGIN ENVIRONMENT
-- Chap 13. The Login Environment
-- Chap 14. Environment and Shell Variables
-- Chap 15. Quoting

-- PART 4: BASIC SHELL PROGRAMMING
-- Chap 16. Introduction to Shell Scripts
-- Chap 17. Conditional Testing
-- Chap 18. Control Flow Structures <-- if/then/else, for, while
-- Chap 19. Shell Functions
-- Chap 20. Passing Parameters To Scripts
-- Chap 21. Creating Screen Output
-- Chap 22. Creating Screen Input
-- Chap 23. Debugging Scripts
-- Chap 24. Shell Built-in Commands

-- PART 5: BETTER SCRIPTING SKILLS
-- Chap 25. Going Further With Here Documents
-- Chap 26. Shell Utilities
-- Chap 27. A Small Collection of Scripts
-- Chap 28. Run Level Scripts
-- Chap 29. CGI Scripts <-- Yes, the CGI scripts

-- APPENDICES
-- Appendix A. ASCII Art
-- Appendix B. Useful Shell Commands

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


17 of 23 people found the following review helpful:
1.0 out of 5 stars A very poor book, May 14, 2000
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.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews











Only search this product's reviews



What Other Items Do Customers Buy After Viewing This Item?


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 

Your tags: Add your first tag
 

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   
Related forums



So You'd Like to...


Create a guide


Look for Similar Items by Category


Look for Similar Items by Subject