The First Three Books Every Linux User Should Read
lessthan0 writes "Anyone proficient with Linux had to climb the steep learning curve. Part of getting over the top for me was reading a hundred different Linux and Unix related books. From that list, three books stand out as the most useful and influential. I can't promise easy sledding; it will take some work, but mastering this material will demystify Linux and make you appreciate it more."
Disclaimer: I have no financial or other motive of profit in recommending this book.
The recommended books are good choices, but the underlying principles guiding Linux originate from Unix. The first sea change influential Unix book for me was The Unix Programming Environment by Brian Kernighan and Rob Pike.
This book is a must read, and a must have. Unix at my office was a mere curiousity, an available "time share" (not kidding, that's what people at my office called it) that noone used (we were mostly a COBOL/mainframe shop).
I tinkered with this new and interesting world and immediately saw something unique(s). And, Kernighan/Pike lit the fire under me. By page 50 or so they've described Unix philosophy dead-on (they should know), and I couldn't start creating in the Unix environment fast enough.
The first thing I did was create an on-line self updating corporate documentation system (the old one was paper and microfiche), and I never looked back.
Add this book to your collection, read it! You won't be sorry.
...Though there are no illustrations...
...There is excellent coverage of the GNU utilities, a guide to TCP/IP and networking, Apache, DNS, NFS, email, databases and more...
...The one glaring omission is the Common Unix Printing System (CUPS)...
...Learning the BASH Shell...
...You need to understand shell scripting to understand the system...
...Learning BASH will make you more productive and at ease managing a system 1000 kilometers away...
... If you were not lucky enough to work with Ken Thompson, and didn't cut your teeth on Unix, the system may seem chaotic...
:-P
The author's conclusion?
Anyone can learn Linux
Me: "Here Grandma. These three books will make you an expert sysadmin so that you can use your own Linux box!"
Grandma: "What kind of idiot are you, boy? Your old grandma just needs something that works, not something that takes an associates degree from CalTech to use! You kids these days have it so easy that you think you can waste time on learning everything there is to know about a computer before you use it! Why, in my day we were too busy walking uphill both ways through a snowstorm to waste time with these neutered Enuich computers!"
Me: "But Grandma! Bash is so easy..."
Grandma: "BASH?! You want BASH?"
* Grandma whacks me over the head with her cane.
Grandma: "There's your BASH, boy! Now hurry up and get Grandma a computer she can use!"
Me: (sheepishly) "Like a Mac?"
Grandma "Yes, like a Mac, you dolt!" *mutters something about genes from the wrong side of the family*
(Disclaimer: The above is well-intentioned humor. Do not attempt to argue with it or grandma will bash you over the head with her cane.)
Javascript + Nintendo DSi = DSiCade
I agree with these book selections though I think that it's wrong to say "these are must-haves for the Linux/Unix user" if they cost money. That's because Linux should be free, you shouldn't 'need' to drop $200 to be proficient in it. You need to invest time but not money.
Perhaps there are free resources out there.
My work here is dung.
No doubt that google will index these some day soon... ;)
After you have read these books, start with section 1 of the manual pages, read through to section 8 or 9 if it exists.
Then start with the Gnome and KDE help pages, and the info pages, and swear and swear and swear at the rotten uncooperative bastards that can't agree on one documentation format, so I have to go searching all over the place to figure out how to use anything.
Oh, yeah, and then buy everything O'Reilly publishes, and sprinkle in most of Addison Wesley.
All the technology in the world won't hide your lack of vision, talent, or understanding.
Bruce Perens' Open Source Series
"Academicians are more likely to share each other's toothbrush than each other's nomenclature."
Cohen
I may not like or trust books, but it's too late to recommend me the first three books I should read!
but there's really no substitute for learning a new operating system like being 16, being in a special school for gifted kids that completely stiffles any socializing after 8PM, being without a lady friend, having the drive to learn new things, and having the intense desire to show that really annoying kid two floors up that he's got shit for brains.
Everyone has their own method, I suppose.
What if the entire Universe were a chrooted environment with everything symlinked from the host?
My take is that the initial reads should be practical, then slowly they should move into theory.
Therefore my first pick is the book that got me started:
Teach Yourself Unix in 24 Hours (first edition)
It's a very pragmatic guide to learning the Unix command shell and system layout.
My second pick is Think Unix by Jon Lasser, which covers using Unix systems but also gives a bit of background and teaches the lesson on how to learn.
Lastly, to go into the pure theory, Eric Raymond's The Art of Unix Programming is a wonderful guide on explaining *why* things are the way they are in Unix (and by extension, GNU/Linux).
and you'll never be lost on any Unix-like system. Trust me.
I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
The "man" command doesn't work anymore? I know "man woman" definitely does not work. :P
Here's my recommendation: Linux For Non-Geeks
I remember my start in the *nix world (circa 1993) was a half-page typed command reference. One of the commands was "man". Another got me onto the new-fangled newgroups where every other question I needed answered was. It might just be me, but most of the Linux gurus I know picked up the environment a bit quicker than a "couple weeks"...without any books.
Mine were Cars and Trucks and Things that Go, The Tawny Scrwany Lion, and The Sesame Street Bedtime Storybook. Learning the Bash Shell seems a bit high-level for young children. . .
You are not the customer.
The "man" command doesn't work anymore? I know "man woman" definitely does not work. :P
Try "man man" first, to understand how it works.
I'll probably be modded down for this...
Once you understand what you've become a part of, you're more likely to contribute in some way.
While not every user has to be a zealot, and not everyone is willing or capable to participate, the opportunity to become a part of something that will last longer then yourself is something people should be aware of in using GNU/Linux and GPL'd software.
I don't think it's enough to just use it because it's free. You need to have some sort of understanding as to why it's important, how standards empower the consumer, and that free information is the only way to go to keep our technological advances moving forward instead of getting stuck in a freeze-frame induced by patent lawyers and litigation that explicitly deters education (DMCA).
Knowing the goals of Open Source has often made members more forgiving of its present-day shortcomings, because the notions of freedom to use, freedom to change, freedom to learn and freedom to share outweigh some little compatibility nuances that exist today, but continue to improve through the contribution of the community at large.
If you're half as beautiful naked, you'd be 4 times as beautiful with twice as many clothes on.
In a thread on this topic a couple of years ago, I recommended Think Unix by John Lasser (ISBN: 078972376X) as the best intro to *nix. Although countless forests have been chopped down to produce yet more manuals, I still think it is the absolute best place to start.
My lament is that we seem to be having conversations in circles. Next week, I'm sure some other talking head will declare 2007 to be the year of Linux on the desktop, then in a month the designers will blog about how usability lags behind commercial OSes, then we'll all make our own distros for our grandparents, then...
I fear we have forked. Score an entire year of posts -1, Redundant
Vanya's Law: "In any culture without irony, fart jokes will be the highest form of humor."
I would start with the First Testament of the Holy Bible. Move on to the Qur'an and Goddard's A Buddhist Bible. Now that you've dealt with historical texts you're ready for more modern religious material, like man1-8 and Kernighan and Ritchie's 'C Programming Language.' The truly devout might want to consider leafing through rms' 'EMACS' manual, though be aware that even just reading the text exposes one to higher Carpel Tunnel risks. Zealots are encouraged to grep through the kernel source tree for hilarious examples of expletive use.
HAHAHAHA!!!
*cough*
man man
Maybe Computers will never be as intelligent as Humans.
For sure they won't ever become so stupid. [VR-1988]
Not every Linux user needs to become a Unix guru to use Linux. For me, reading a bit in the Ubuntu wiki took care of what I needed to use Linux on a daily basis. For my less tech-savv friend all it took was a Mepis cd. It was a live/install combo, and I told her to mess around with it until I had the chance to install it for her. By the time I had the chance, she already had it installed and she was happily using OpenOffice/Firefox/Gaim (which is all she ever used Windows for). I taught her how to change themes and how to install programs, and now she has more puzzle games then she'll ever need and even stupid desktop pets.
Really, I fail to see how every Linux user needs to read complex sysadmin books and learn everything about the command line.
"What is Internet Explorer 7? Are you saying we can't access the normal internet?" - I love tech support. Really.
Essential System Administration, O'Reilly.
The K&R.
and maybe the Camel book, Programming Perl, O'Reilly.
You're right, Windows XP is for dummies.
Okay, though books are a good source of information, I've had better luck with my friends/family upgrading from Windows/Mac to Linux by using the following list of periodicals.
Tux Magazine - A Free e-zine geared towards the Linux Newbie. http://www.tuxmagazine.com/ This comes out approximately once per month in PDF format and is VERY good. It is published by Nicholas Petreley, who is well-regarded in the *nix world. He apparently has a book of his own out now - http://www.oreilly.com/catalog/linuxdeskhks/ - I have not seen or read it so cannot comment.
Linux Magazine Pro - http://www.linux-magazine.com/ - Note for those in the US - this comes as a pricey ($100/year) subscription but is WELL worth it!
Linux Magazine - http://www.linux-mag.com/ - more technical in nature but still very interesting.
The Kai's Semi-Updated Website Thingy
man, google and irc.
my password really is 'stinkypants'
Think Unix by Jon Lasser.
http://isbn.nu/078972376X
You can't buy friends with salad!
God, I'm sorry.
You better watch out, there may be dogs about . .
The FIRST three books?
I surely hope by the time someone has become a Linux user, they've read way more than three books. I started with Dr. Seuss.
-bugg
The second is Red Mars, by Kim Stanley Robinson. This may seem an odd choice, but the fact is that Free Software, and GNU in particular, constitution new territory that requires revolutionary ideas to push forward, and resistance from the usual conformist powers that impose the old status quo on the new. Red Mars will get you into the right mind-set for the inevitable fight.
The third is The Naked Sun, by Isaac Asimov. There is an insular quality to much of GNU/Linux development, which needs to be overcome, at all costs, if you're to do the job right. If you're afraid of the open spaces, of the new territories you need to enter to create bang-up, top-notch, software, then you're liable to let your fears dictate your direction, and inevitable end up making mistakes again and again and again until you can overcome those fears. Asimov is in top form as he demonstrates the folly of claustrophobic thinking.
Avoid anything by Heinlein, and if you want to read some Niven, avoid the Pournelle collabs, they're likely to get you screaming for business-driven proprietary solutions.
You are not alone. This is not normal. None of this is normal.
The Story About Ping might be a better place to start. It's kid-friendly as well.
Nevertheless, the old LIGS (Linux Installation and Getting Started) guide is still (although now decidedly dated) a useful guide. The emphasis here is on Linux rather than Unix. There are differences, and in this day and age, probably the majority of Unix (read BSD) heads approach it only after some exposure to Linux.
The learning curve has a top? As in, once you hit that point you start to get DUMBER? I had no idea.
I can't tell you what book or books to use for general purpose Linux use, but what I hate is when there are 30 pages about the history of Unix and Linux and GNU and the FSF in every book I buy. I know the history well enough to spot errors in many books' version of it, and don't want to pay to read it again. The first taste of Linux books can keep this section, but it should be left out of the other books. Who buys a book on Linux kernel, device driver, or systems level programming without having a pretty good idea and knowing where to look for more details on this?
You don't need to read books to learn linux. On the contrary, I'd say any book is going to be irrelevant to 2006, your distro, what you want to accomplish.
How I got here: man, online documentation, and helpful community forums. Don't play down that last one. If you don't have a linux geek friend or brother to call on, forums will save you time and time again. Thanks y'all.
Err... You did say the first three books, right?
if you plot knowledge gained (vertical axis) against time taken (horizontal axis), then a steep learning curve is the best to have as you learn a lot quickly...
Donald 'Duck' Dunn: We had a band powerful enough to turn goat piss into gasoline.
I once had a system that understood 'man porn'.
He ridiculed that naming convention mortally when Dilbert was assigned a new task and christened it TTP. TTP, The TTP Project.
Examples:
1. Perl/Python/Ruby: They attempt to provide every feature under the sun, with no pretense of doing one thing well.
2. Firefox: Okay, you could say the one thing it does well is "browsing the web," but that's far and away from clasic examples of how the UNIX philosophy is supposed to work. Firefox is not a collection of 20 small programs.
3. Inkscape, Sketch-Up, Blender...any big app, really.
If you are able to make your way thru James Joyce's Ulysse and more importantly understand what you just read, you will be able to understand Linux/Unix.
Interesting list of three books. Here is my list.
"Unix for the Impatient" by Abrahams and Larson
"A Practical Guide to {Unix varient}" by Sobell
"Essential System Administration" by Aeleen Frisch
The first two books are how I learned Linux back in '91/92, in fact it was primarily the 1st Ed. of "Unix for the Impatient" that I used. I find any dirt cheap copy you can pick up of Sobell to be good enough. I have two copies sitting here, and both are ancient (one has a picture of an S-100 card), but still useful (these days I only refer to them when I'm forced to use 'vi').
Limiting yourself to three books is pretty rough, but I couldn't figure out which of the above three to drop in order to add:
"TCP/IP Network Administration" by Craig Hunt
Z.
I think for me they were Goodnight Moon, Hop on Pop, and Cat in the Hat, but whatever floats your boat...
Sendou Wave Kick!!
Did lessthan0 write the article, or just the article summary? It's in the first person, so it appears that he wrote it, but I can't tell.
If he didn't write the article, then it looks like he's taking credit for it.
The Linux books that I found most helpful when learning Linux were... oh wait, this Ubuntu live CD is still sitting on my desk. I'll have to get around to that sometime...
- RG>
Hey pal, this isn't a pleasantforest, so don't waste my time with pleasantries!
Not sure a book is the best way to go... most linux boxen have enough on there that you could bootstrap yourself into linux mastery without too much difficulty. Start with these commands:
cd
ls
mv
rm
chmod
chgrp
man
Learn about the command line switches via man. When you think you've got a handle on that, add these:
bash
find
grep
sort
uniq
vi|emacs|nano (not touching this one editorial-wise - use whatever editor rocks your boat, I've got my favorites, you'll have yours)
Then top it off with one or more of the following:
awk
perl
python
and for network, try:
netstat (many many options here)
traceroute
ping
route
ifconfig
That's pretty much the shit you'll use most days if you're larking around linux. Then start browing around with man.
sloth jr
Hacking Linux Exposed
Linux in a Nutshell
The Lion's guide
0xB315AA8D852DCD3F3DCA578FD2E0BF88
> Anyone proficient with Linux had to climb the steep learning curve.
:)
Even ignoring the bad metaphor (a "steep" learning curve is one where learning occurs quickly), this is simply not true. Anyone who (like me) was already familiar with Unix before encountering Linux--in my case, before Linux was created--will find learning Linux a fairly trivial task. Or, to be more precise, learning GNU. (My proficiency with the kernel and its obscure interfaces is quite low, but my proficiency with GNU and the layers above is very high.)
There's also the question: do you need to become proficient with Linux or GNU/Linux? Most people who use Windows are not proficient with it. In fact, it is nearly impossible to become truly proficient with Windows, since so much of it is deliberately hidden and opaque. The only version of Windows that I can claim even the faintest proficiency with is Win3.1, and even there, I barely scratched the surface (although I was a DOS guru). What most people do is become proficient with various apps, and that one can do with a Linux-based system just as easily as one can with a Windows-based system without ever understanding Linux (or GNU/Linux) or Windows.
Most people will only need proficiency with Gnome and/or KDE, and then they will be free to use Linux or BSD or Solaris or any of a host of other systems, free or otherwise. Some (like me) may need or want proficiency with POSIX and/or GNU, and again, they will be ready and productive with a variety of systems. Only the tiniest handful actually need proficiency with Linux, and they are the ubergeeks!
In any case, I think the point here is that gaining "proficiency in Linux" depends both on where you start and where you want to end up. I haven't read the first of those books, but the second strikes me as a somewhat dubious recommendation (it is possible to use Linux without ever touching bash--it's even possible to run Linux without having bash installed). And the third is a fine book, but not necessarily one I would recommend to the average office user.
First book I read and the first book I suggest to any computer savy friend interested in linux is the Gentoo Handbook. I'm not trying to start a distro flamewar but is does a really good job of explaining nearly everything you are putting into your system as you install it. Plus you end up with a working linux install which is a definite plus. Then if you aren't burned out any of the books above will give you a better understanding of why everything works the way it does and how it varies from system to system. Most users don't care about the later though. That's my $0.02 for what its worth.
Three nice books, but I'm still in favor of starting everyone out with Learning the UNIX Operating System. Anyone can do it in a few hours and it will save days of frustration down the road. It's probably the only one that gives you just about all the information you can absorb in one go. And with no fat or carbs added.
Mod me down but... How is Linux going to go really mainstream if every user has to read 3 books first?
The simple fact is that computers ain't new anymore. Think of it like this would you dare suggest that a young adult of today is a better car operator then someone who has managed a jeep all the way through WW2?
Reminds me of a family trip ages ago to england with the ferry. Cousin was being all protective and telling grandpa that it was perfectly safe and all. Neatly forgetting that grandpa had actually been on convoys in WW2. A channel ferry crossing wasn't exactly going to be a trill ride was it now?
Long before you had Windows, long before DOS secretaties have had to deal with computers and type letters on systems their bosses couldn't figure out.
In many ways we are unlearning some of these lessons. Just as kids of today don't have the programming exposure that kids who grew up with home computers like the C64 had, kids today are no longer learning how to deal with programs that don't hold you hand all the way.
I seen kids stumped by older versions of windows because they only know XP and lack any kind of skill in just being able to figure things out.
So be carefull when you question your grandma's capabilities. You might find you don't compare very well.
Oh and a final note. Stupid grandma's have stupid grandchilderen. Now I ask you again, what kind of grandma do you got?
MMO Quests are like orgasms:
You may solo them, I prefer them in a group.
Was The Command Line, by Neal Stephenson.
"If you're not having fun right now, you're wasting your time."
The Linux Documentation Project ( http://tldp.org/ ). The HOWTOs and FAQs are the most valuable resources. Caveat: some of the information may be outdated, look at the date of the last update. Beginners should always read the accompanying documentation of their distribution first. It is the easiest way to get started. Once you feel familiar with your distro, you can go on gaining deeper insight into the inner workings of Linux by reading the HOWTOs and the kernel documentation (part of the kernel sources). There are a lot of other documents already installed with almost every distro. The man and info pages are the place to go to learn about a specific command. Also look for directories called "doc", like /usr/doc. Another good source for info is the homepage of your distro. For example, if you use openSUSE, check out the SDB (support data base) at http://opensuse.org/SDB. In any case, when installing Linux for the first time, the first thing that you should get working is your internet connection and a web browser. That way you have access to all the online documentation as well as the discussion boards. Google Linux ( http://www.google.com/linux ) is another good place to find specific info. You can find lots of free information if you know where to look.
Linux for Dummies. The rest I learned from man pages and the PDFs that came bundled with me early distros.
LK
"Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
Definitely the Hitchhikers Guide to the Galaxy.
UNFUNNY's not funny .. uh, no, nevermind, yeesh.
I guess you're right.
$META_SIG_JOKE
I think you forgot Nicolo Machiavelli's required reading for any programmer or BOFH, The Prince .
The O'Reilly book "UNIX Power Tools" is probably the most useful, but not super well-known unix book I own... I'd say it's a good candidate for a "first three" book. Anyone who does much with Linux/Unix should own it.
"Eye halve a spelling chequer, It came with my pea sea, It plainly marques four my revue, Miss steaks eye kin knot sea"
In all I find XP very hard to use in a powerful way. But to do simplistic things like most users probably do no simpler and usually more clicks required (I'm back to having a mouse hand that hurts).
There is a cheeky review by Micosoft product manager Stefanie Kugelsee of OReilly's Running Linux at . It uses the bash script on both Linux and Windoze.
I think http://www.tldp.org/ is a good choice to.