Linux Programmer's Reference, Second Edition

 in
This book covers the configuration, initialization, creation and execution of shell scripts, as well as a description of all programming-related commands for the respective shell.
  • Author: Richard Petersen

  • Publisher: Osborne McGraw-Hill

  • E-mail: customer_service@mcgraw-hill.com

  • URL: http://www.osborne.com/

  • Price: $19.99 US

  • ISBN: 0-07-212355-9

  • Reviewer: Ibrahim F. Haddad

Every once in a while—and more frequently lately, due to the growing popularity of Linux—a book appears pretending to be a reference, but the material is neither well-organized nor complete enough to truly be called a reference for the subject. Linux Programmer's Reference does not fall into either category.

Linux Programmer's Reference is divided into three parts, with seven chapters and three appendices. The first part, Chapters 1, 2 and 3, involves the BASH, TCSH and Z shells. It covers the configuration, initialization, creation and execution of shell scripts, as well as a description of all programming-related commands for the respective shell. In addition, syntax, usage and short practical examples are given to make sure the reader understands the idea.

The second part, Chapters 4 and 5, concerns the compiling, debugging and packaging of C and C++ programs. Peterson covers everything from binary formats, static vs. shared and dynamic libraries, the gdb debugger, passing by the make utility, the revision control system (rcs), up to the man pages.

The author recognizes GNOME and KDE programming popularity by including a chapter on each (Chapters 6 and 7) describing the essentials of how to create GNOME and KDE interfaces.

Finally, the three appendices serve as a quick reference for Perl, the Tcl/Tk scripting language, and TeX and LaTeX commands.

The Perl appendix covers file commands, array operations, operators, control structures, functions, pattern-matching operations and regular expressions and subroutine components. The Tcl/Tk appendix lists Tcl operators, the most common Tcl and Tk commands, standard Tk widgets and Tk options. The TeX and LaTeX appendix covers the essential commands of TeX and LaTeX.

As a Linux programming reference, the book has much to offer. It presents valuable, precise programming syntax and advice for every Linux programmer, whether you are a novice, intermediate or expert programmer. In addition to syntax, it provides brief explanations and programming examples for each command, as well as advice on how, when and why to use each command, helping you choose the most suitable one for your particular task.

The examples throughout the book are very structured, short enough to type and try yourself, and still contain all the major concepts intended to be present. In general, the use of examples help to clear up questions the readers may have after reading the concept materials, and Peterson's examples serve that purpose well.

Petersen's writing style is clear and concise, making the book easy to read and follow. However, someone on one of the newsgroups complained that Petersen covers ci and co commands for RCS without ever noting that they stand for “check-in” and “check-out”, a concept that surely makes rcs easier to understand. Such small notions may seem not important for professionals, but they are of great significance to newcomers—a matter to which Peterson might have paid more attention.

Linux Programmer's Reference is not a “Learn-X-in-12-hours” type of book. This book is not meant to teach C, C++ or Perl. It is meant to serve as a reference for those moments when you have a programming-related question, such as when you've forgotten the syntax or wonder whether a feature exists or not. This book will give all you need to get a clear and concise answer without having to search countless pages in different books or seek the help of your colleagues.

The book, as a reference, can find its place on the bookshelves of Unix-experienced users and programmers who are migrating to Linux and want specific Linux information, especially on critical gcc compiler and library issues. Linux programmers and newcomers will also find it very useful for its list of shell commands, its programming section and the quick references.

Personally, I found this book to be a useful reference worth the price ($16.99 US at Amazon.com). On the other hand, I felt the author assumed the reader knows his way around Linux and its programming tools. So, if you are a fresh, out-of-the-box newcomer, expect to dirty your hands.

I received a number of comments from some reviewers wishing there was more on scripting languages than the Perl and Tcl/Tk listings in the appendices. I agree with them. If a solid chapter on scripting languages was included instead, it would have been a great book. Nevertheless, it's still a good book, well-written and concise, and it covers the ground. If you need a good reference, Linux Programmer's Reference is the book to buy.

Ibrahim F. Haddad (ibrahim.haddad@lmc.ericsson.se) is a Senior Member of the Technical Staff at Ericsson Research Canada based in Montréal. Ibrahim is currently a D.Sc. Candidate in Computer Science at Concordia University. His research interests include distributed-object technologies, web servers, e-commerce platforms and Linux clusters.

______________________

Webcast
How to Build an Optimal Hadoop Cluster to Store and Maintain Unlimited Amounts of Data Using Microservers

Realizing the promise of Apache® Hadoop® requires the effective deployment of compute, memory, storage and networking to achieve optimal results. With its flexibility and multitude of options, it is easy to over or under provision the server infrastructure, resulting in poor performance and high TCO. Join us for an in depth, technical discussion with industry experts from leading Hadoop and server companies who will provide insights into the key considerations for designing and deploying an optimal Hadoop cluster.

Learn More

Sponsored by AMD

White Paper
Red Hat White Paper: Using an Open Source Framework to Catch the Bad Guy

Built-in forensics, incident response, and security with Red Hat Enterprise Linux 6

Every security policy provides guidance and requirements for ensuring adequate protection of information and data, as well as high-level technical and administrative security requirements for a system in a given environment. Traditionally, providing security for a system focuses on the confidentiality of the information on it. However, protecting the data integrity and system and data availability is just as important. For example, when processing United States intelligence information, there are three attributes that require protection: confidentiality, integrity, and availability.

Learn more about catching the bad guy in this free white paper.

Learn More

Sponsored by DLT Solutions