What Are Good Linux/Unix Books for an Advancing User

What are good Linux/Unix books for an advancing user?

I've wiki'd this post - could those with sufficient rep add in items to it.

System administration, general usage books

  • Nemeth et. al, Linux System Administration

  • The Armadillo book, as mentioned by Bill The Lizard below.

  • Anything by Mark Sobell. He does a sort of theme-and-variations for various flavours of unix, so pick the book most appropriate to the environment in hand. The books are quite good. One of his was a prescribed text when I did my B.Sc.

  • Stevens' TCP/IP illustrated, vol. 1: The Protocols for a comprehensive run down on how TCP/IP works in detail.

  • I've never read this particular book, but many people here are recommending Unix Power Tools as mentioned by Hortitude.

Programming:

  • Anything by the late W. Richard Stevens, in particular Advanced Programming in the Unix Environment and Unix Network Programming Vol. 1 and vol. 2

  • Various classic c/unix books, such as The Unix Programming Environment, Advanced Unix Programming, Programming Pearls and of course K&R. The C/Unix books tend to go into the underlying architecture, and will give a fair degree of insight that's relevant across the board - these are the underlying mechanisms within the system. Anyone trying to do system-level programming (basically anything using system services, no matter what the language) will find a grounding in this to be beneficial.

Specific tools (e.g. Sendmail)

Various of the books from O'Reilly and other publishers cover specific topics. Some of the key ones are:

  • The Bat book on sendmail - if you have occasion to experience the joys of working with sendmail.cf. If you have a choice on MTA, postfix or qmail are somewhat easier to work with (I've been using postfix since about 2000). O'reilly publish guides to both of them.

  • Some classic works on perl: the Camel and Llama books (the latter written by none other than Randal Schwartz).

  • Sed and awk. Not sure what the critters on the cover are. My copy went south a while ago. While on the subject of this, Mastering Regular Expressions has also gotten a mention here and is a good book on the subject.

  • Samba. The hornbill (?) book covers this; there is also quite a lot of on-line documentation.

  • NFS/NIS for those using or maintaining unix or linux clients.

Some of these books have been in print for quite a while and are still relevant. Consequently they are also often available secondhand at much less than list price. Amazon marketplace is a good place to look for such items. It's quite a good way to do a shotgun approach to topics like this for not much money.

As an example, in New Zealand technical books are usurously expensive due to a weak kiwi peso (as the $NZ is affectionately known in expat circles) and a tortuously long supply chain. You could spend 20% of a week's after-tax pay for a starting graduate on a single book. When I was living there just out of university I used this type of market a lot, often buying books for 1/4 of their list price - including the cost of shipping to New Zealand. If you're not living in a location with tier-1 incomes I recommend this.

E-Books and on-line resources (thanks to israkir for reminding me):

  • The Linux Documentation project (www.tldp.org), has many specific topic guides known as HowTos that also often concern third party OSS tools and will be relevant to other Unix variants. It also has a series of FAQ's and guides.

  • Unix Guru's Universe is a collection of unix resources with a somewhat more old-school flavour.

  • Google. There are many, many unix and linux resources on the web. Search strings like unix commands or learn unix will turn up any amount of online resources.

  • Safari. This is a subscription service, but you can search the texts of quite a large number of books. I can recommend this as I've used it. They also do site licences for corporate customers.

Some of the philosophy of Unix:

  • The Art of UNIX Programming by E S Raymond (available online and in print).

  • The Practice of Programming by B W Kernighan and R Pike.

Good book for Unix Internals

You want system administration knowledge, or programming knowledge?

For programming:

  • Advanced Programming in the Unix Environment
  • Unix Network Programming
  • The Art of Unix Programming

For system administration:

  • Automating Linux and System Administration
  • Unix and Linux Administration Handbook

What book or online resource do you suggest to learn programming C++ in Linux?

Programming in C++ under Linux isn't all that different at the core. Linux compilers are generally more standard's conforming than MSVC; however, that is changing as MSVC is becoming a better compiler. The difference is more from the environment and available libraries. Visual Studio isn't available (obviously) but some other environments like Visual SlickEdit and Eclipse are available on both.

The build system is widely varied and will probably be dictated by your preference between Gnome, KDE, or the ever-present command line. Personally, I find the latter to be the cleanest and most consistent. If you end up at the command line, then learn GNU Make and pick up a copy of GNU Autoconf, Automake, and Libtool. This will introduce the GNU command line development stack pretty nicely.

Debugging is a lot different being that VS provides a nice GUI debugging environment. Most Linux environments simply wrap a command line debugger (usually gdb) with a GUI. The result is less than satisfactory if you expect a nicely integrated debugger. I would recommend getting comfortable with gdb. There are some decent tutorials for gdb online. Just google for a bunch of them. Once you get a little comfortable, read the online manual for the really neat stuff.

The other choice is to use whatever development environment is packaged with your windowing system or to use something like Eclipse and some C++ plug-in

As for books on the subject, Advanced Programming in the UNIX Environment is a must-read. UNIX Systems Programming is also a good read since it gives you a solid grounding in shells, processes, and what not. I would recommend both the POSIX Programmer's Guide and POSIX.4 Programmer's Guide since they give you a lot of the systems programming stuff.

With all of that said, enjoy your foray into an operating system that really cater to programmers ;)

Advanced Programming in the Unix Environment 1st Edition

It's a good book, and the first edition is not very out of date. Much of the point of Unix is to limit how much the features and interfaces change over time. The older version of the book is still very valid, and the fact that there are only two editions in nineteen years speaks to the stability of the unix libraries and utilities. Of course, your professor should be able to explain and differences you might encounter.

Unix systems programming

Start with Mark Rochkind's "Advanced Unix Programming" if you can find it. Then graduate to Stevens "Advanced Programming in the Unix Environment".

Good books for learning C++ programming on UNIX (pref Linux)?

  • Advanced Linux Programming
  • W. Richard Stevens - Advanced Programming in the UNIX Environment
  • W. Richard Stevens - UNIX Network Programming, Volume 2, Second Edition: Interprocess Communications
  • W. Richard Stevens - UNIX Network Programming

For low latency you really have to dig into some blogs and the source of some cool open-source projects, AFAIK there aren't any books available..



Related Topics



Leave a reply



Submit