Beginning Unix (Programmer to Programmer)

Beginning Unix (Programmer to Programmer)
Authors
Paul Love, Joe Merlino, Craig Zimmerman, Jeremy C. Reed, Paul Weinstein
ISBN
0764579940
Published
29 Apr 2005
Purchase online
amazon.com

* Covering all aspects of the Unix operating system and assuming no prior knowledge of Unix, this book begins with the fundamentals and works from the ground up to some of the more advanced programming techniques* The authors provide a wealth of real-world experience with the Unix operating system, delivering actual examples while showing some of the common misconceptions and errors that new users make ?

Page 2 of 2
  1. Editorial Reviews
  2. Customer Reviews

Customer Reviews

DesertHowler said
This review first appeared in the AZTCS journal.

When I glanced at this book, my first question was, "Who are these guys on the cover?" Before scanning the contents and index, my usual first step in examining a new book, I searched for the cover credits. I found none.

I use the term Unix as the authors use the term, to designate all Unix based systems including Linux, Solaris, OSX, and the BSDs as well as Unix.

The 400+ page paperback book is divided into 21 chapters. Each chapter ends with exercises; the solutions are found at the end of the book. The book's copyright is 2005 but the fundamentals of the Unix based operating systems don't change much so this book is by no means out of date.

Included is a CD of KNOPPIX 3.7. This is an old version of KNOPPIX but very usable for the authors' purpose of learning Unix. By using the live CD, it is possible to study Unix without installing it.

The book begins with introductory material giving a, thankfully, very brief history of Unix and its evolution. Next "Beginning Unix" explains how the Unix system is set up and what the major components are.

Logging in is covered. Logging out and shutting down the computer, if you have permission, are explained. Logging in and out properly is well detailed.

The book explains files in a very thorough and informative manner. As the whole strategy of Unix is based on files, creating, removing, copying, moving and organizing files are important functions. File permissions and their importance receive thorough and clear discussion. With a thorough understanding of permissions many potentially frustrating problems can be avoided or solved quickly.

Commands are introduced as needed for completing simple to very complex exercises. The functions of the shell are explored. Simple and advanced scripting is explained and several examples are presented. Besides shell scripts, there is a brief introduction to PHP. Piping, using the output of one program as input for another program, is illustrated with several meaningful examples.

There is a chapter on customizing your personal environment. Customizing the prompt, creating aliases, and organizing your work are explained in detail. This is much different than the usual customizing instructions focusing on the desktop.

Full chapters cover securing the system, using log files, understanding and controlling jobs and processes, backing up information, and automating tasks using cron. These chapters are useful in administering your Unix system. Administration on a desktop Unix system is important as the user is usually the administrator.

Network connections are explained, both in theory and by example. As Unix originated as a network environment, there are many tasks to be accomplished over the network. This information is important in connecting to the Internet.

There is a chapter covering installing programs from source code. Although this was necessary in early Linux distributions, the repositories available with most distributions make this interesting but seldom used information for most users. The procedure and potential pitfalls are discussed in detail. Reading this chapter reenforced my feeling "this is something I don't need to do for a while."

Migrating from a Mac or a Windows PC to Unix takes up the last two chapters of the book. These chapters should be very helpful in making the transition. They concentrate on the skills developed in using the Mac or a Windows PC and help transfer them to a Unix system.

Conclusions

There are several things I like about this book. Extensive use of screen shots in combination with the text helps me understand the examples more easily. The examples are clear and concise. The theory included helps improve understanding of the subject but doesn't overload the reader. The flow of the book is logical with examples building on previous exercises.

The complete lack of discussion of KDE, Gnome and other desktops is refreshing as these are explained in several other sources; I see no use for another superficial chapter or two in this book. It is more difficult to find good information on using the command line than using GUIs and this book has much good excellent information.

I am a Linux user with about two years experience so I found much new information in "Beginning Unix". This book answers questions I didn't know I had. There are several examples and techniques presented that will make my use of Linux more efficient, powerful and fun. Many "fuzzy areas" came into focus for me.

I think, at completion of this book, the user will be comfortable and effective at using the command line. After these exercises the user might be tired of the command line but they will not be fearful.

avid programmer said
Here are a bunch of problems I discovered with this book(I had to omit half of them because of amazon's 1000 word limit for reviews):

1) Links (p.63)
There are some contradictory statements in this section. I found a website that does a good job of explaining hard links v. soft links, and it uses diagrams. Why didn't the authors use diagrams?

2) Deleting Files (p.73)
The authors say the rm command(remove) has a -f option that will remove a file without prompting for confirmation, e.g.

rm -f filename

However, when I use the rm command *without using the -f option*, it removes files without prompting for confirmation anyway. So, I'm left wondering what the -f option does. I have to use rm -i to make rm prompt me for confirmation before removing the file. The authors mention that you can create aliases for commands, which essentially means you can rename a command. So you can do this:

$ alias rm = "rm -i"

Thereafter, when you issue the rm command, unix will interpret rm to mean rm -i, and then the rm command will prompt you for confirmation before removing a file. Did the authors do that on their system? And is that why they say using rm -f is necessary to skip the confirmation message before removing a file? Who knows?

3) apropos (p. 110)
The authors say the command:

apropos keyword

can be used to find files with the specified keyword in their name. That doesn't work for me. I looked around on the internet, and I can't find any UNIX tutorials that say apropos will return file names with the specified keyword in them. In fact, after some more digging, I discovered that the apropos command is equivalent to man -k, and man -k searches the man pages for *descriptions* containing the specified keyword--it does not search filenames for the keyword, so the example in the book won't work.

4) Advanced Tools (chap. 8)
The authors decided to introduce regular expressions, which I know pretty well. Personally, I don't think regular expressions should be included in a beginning text on anything--although they are well worth learning for any computer language. So I was interested to see how the authors would tackle the subject. To my surprise, I found the author's introduction to patterns quite good--except for one little thing. They don't show you how to use the patterns with a unix command. The author's start out the section by telling you to type in an overly long amount of example text into a testfile. Then they say: "The results shown in each case represent output from your testfile if the example search were run on it". However, they don't tell you how to run an example search on the testfile. All they do is show you a pattern and what matches it would produce-- if you ran a search on the testfile. I don't think some(most?) beginners will be able to figure out how to perform a search on the testfile. The authors could have very simply combined all their example patterns with a simple vi search command(vi is a unix text editor). In vi, the '/' plus a specified pattern will search the file for the pattern and move the cursor to the matching word. That way a beginner could actually use one of the example patterns to search the testfile and see for themselves what it does.

5) grep p.160
Nowhere in the description of grep do the authors tell you what the command actually outputs. All they tell you is that grep is one of the most useful commands in UNIX. Great! What does it do? If you consult the man pages, i.e. man grep, you will learn that grep prints *the entire line* in a file if the line contains something that matches the pattern. I lost all respect for the author's ability to teach unix after that omission.

6) find (p.161)
The authors say if you issue the following commmand:

find /etc -name passwd

That command does nothing in Mac OS X. In Mac OS X, there is no ouput and no errors--even though there's a file called passwd in the /etc directory. Back to the man pages. This time the man pages weren't helpful in figuring out how the find command works. This is the worst section of the book so far.

I've only just finished chapter 8, but I feel like I should post this review now, so anyone considering this book will know what to expect.

I think these authors are too long removed from beginner status, and therefore they don't know how to speak to beginners. Unfortunately, this book contains contradictions and incomplete or confusing descriptions, and some things are just plain wrong. In addition, as I read the book I found myself repeatedly saying to myself, "Why didn't the authors simply say it like this?".

I was really excited about this book because I just started using an intel iMac with Mac OS X 10.4.7, and I wanted to learn some basic Unix. This book points out when other versions of Unix may have different commands or effects, and the authors specifically address Mac OS X differences throughout the text. However, nothing in the book explained some of the discrepancies I experienced when I tried some of the commands in Mac OS X. Did the descriptions contain mistakes or did the authors omit something? Or are things just different on Mac OS X? All three--as I found out.

I recently spotted the book Unix Visual QuickStart Guide(3rd edition) on the shelves of my local bookstore, and after reading some random sections, I wish I had purchased that book instead.

cSdNSk said
i'me new to unix. when i started reading this book i thought what a waste of money but after completing chapter 2 and reading through chapter 3 i realized that it was a gem in disguise. i still haven't finished reading it because i'me reviewing it about 3 weeks after i got it, but i have been messing around knoppix and now, i installed FreeBsd and currently all the examples in the book work. i feel comfortable. By the way, the examples at the end of the book make it somewhat of a school text and it gives u a little challenge at times but they are not gravely difficult.

ComputerGuy said
Great book for beginners to the Unix/Linux or Mac OS X operating system. The two appendices with the conversion from Mac (both Mac OS X and Mac OS 9) to Unix and Windows to Unix is helpful for those who are used to working with Windows or Mac and want to transfer their knowledge of those operating systems to the Unix/Linux world. These sections identify the fundamentals of the operating systems and how they are similar to Unix/Linux. There is also information on the different programs that are similar between the systems.

The rest of the book assumes the reader has no knowledge of Unix/Linux and progresses from the basics of the operating system to more in-depth topics as the book continues to later chapters. The inclusion of the Knoppix Linux operating system allows the reader to follow the book while using a complete Unix environment (with no changes to the thier installed operating system).

Gareod Kendall said
This is the third book that I have bought on Unix and by far the best. It not only gives you the UNIX commands, it also goes into a brief and concise background to the commands, which is very practical. I found the explication on cron very clear and thorough which I could not find anywhere else. Keep up the good work and let me know when you finish your next book.

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“Java is to JavaScript what Car is to Carpet.” - Chris Heilmann