Slashdot Mirror


Teach Yourself Unix in 24 Hours

Spencerian writes "The surge of Unix-derived operating systems such as Mac OS X, Linux, and the now-free Solaris is not slowing against the fortified but embattled breakwaters of the Microsoft operating system family. But new power users of other operating systems, including those just starting with Unix as well as the graphical interface of the operating system (such as the Mac OS Finder, or the navigators of KDE or Gnome), remain in need of a comprehensive primer for Unix that complements their previous knowledge. The fourth edition of Dave Taylor's "Teach Yourself Unix in 24 Hours" should remain on the top of the buy list for computer users in need of a strong Unix reference where they may find themselves managing or using the subtle variants of Unix flavors." Read the rest of Spencerians' review. Sams Teach Yourself Unix in 24 Hours, 4th Edition author Dave Taylor pages 518 publisher Sams Publishing rating 7.5 of 10 reviewer Kevin H Spencer ISBN 0-672-32814-3 summary The fourth edition of Dave Taylor's "Teach Yourself Unix in 24 Hours" should remain on the top of the buy list for computer users in need of a strong Unix reference where they may find themselves managing or using the subtle variants of Unix flavors.

The format of this Sams book, as with other books in this "Teach Yourself...In 24 Hours" series has not changed. The book content does favor Windows or Macintosh users when describing, comparisons and contrasts of Unix tasks to those popular operating systems. Unless the reader has been a fan of very little-used operating systems in their past and somehow managed to avoid Mac OS, Windows or Linux, absorption of what is needed for each chapter shouldn't be difficult.

Each chapter is technically noted as a one-hour lesson, although the author acknowledges that many may need more than one hour to absorb some material and should take as much time as they need to understand what they need to know. Chapters include the Unix basics such as using text editors such as vi, moving and copying files, viewing file contents and locating files in the operating system, and topics scale upward to advanced shell programming and even Perl programming. Generally, most readers need not read from beginning to end, chapter to chapter. Despite the lesson-like mode of the book, "Teach Yourself Unix" is a reference.

The "Teach Yourself" books are not advanced reference books, however, and "Teach Yourself Unix in 24 Hours" is no exception. As someone that's used more and more Unix commands in the background of Mac OS X to make things easier or to circumvent limitations or flaws of the Mac OS X Finder, the previous editions of "Teach Yourself Unix" were handy references when I needed a quick and certain process to accomplish a task. Sometimes it's too easy for graphical interface users to moan and while when the Windows Explorer or Mac OS X desktops stick and slows to a crawl when managing something as simple as copying a file, forgetting that there is another way. This book contains the basics to manage these tasks without being too basic of a reference.

The author's breadth of knowledge in many Unix-derived systems such as BSD, Solaris, and Linux continue to extend themselves well in the lessons. Each chapter contains explanations and examples to aid those that need more information. Most Slashdot readers might find this level of detail a bit plodding, but some newbies to Unix may need this since Unix is not inherently a graphical operating system that's easy to understand by sight, so things need to be literally spelled out. Peppered throughout the book are sidenotes that keep the reader apprised of exceptions or proper etiquette when handling, discussing or pronouncing Unix tasks and terminology.

There's a marginally useful amount of back matter on the book, consisting of two appendices, one on frequently-asked Unix questions, and another more useful appendix on managing the Apache web server from a command line. The back cover has a simple command-line reference that's not bad, however, being Unix, the amount of commands and versatility seem a bit limited, so the command-line reference lacks a bit of punch. Some chapters seem a bit archaic and probably need to be reconsidered in a future edition--very few of us may have a need to send mail from the command line in this age of Yahoo Mail and the sheer number of mail services available on computers in schools, businesses, homes, and even from cell phones for jotting off a quick note to a comrade for quick answers. Full-time conversing by mail in Unix isn't something I feel anyone but the most hardcore Unix user will relish--and those users aren't the audience of this book.

This book is designed for new Unix users, but intermediate users will find "Teach Yourself Unix in 24 Hours" a handy reference when having to workaround GUI pitfalls or failures. This book's previous versions have saved my bacon in reinforcing my previous experience and skills at the command line when the Mac OS Finder seizes, leaving no graphical way to complete a task. Unfortunately, given the volume of information I must remember in using both Mac OS X and Windows XP, I, for one, can't remember every nuance of Unix needed, particularly since it's not as easily remembered as icons or menus. Perhaps the author may find that a fifth edition will need information on the long-awaited Windows Vista in the event it contains Unix parts and pieces."

You can purchase Sams Teach Yourself Unix in 24 Hours from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

51 of 250 comments (clear)

  1. Good start... by fak3r · · Score: 3, Insightful

    Sounds like a good start, but know that it'll only be a base to build on. As someone that has used Linux/*BSD/Unix for over 10 years, it's something that will provide a lifetime of learning. The challenge is what I love about it; think about it this way if you want to start with a book like this.

    1. Re:Good start... by ergo98 · · Score: 5, Insightful

      Sounds like a good start, but know that it'll only be a base to build on. As someone that has used Linux/*BSD/Unix for over 10 years, it's something that will provide a lifetime of learning.

      Using and learning are very different things. There are people out there, right now - probably millions of them - doing software development the wrong way. They're implementing their small set of knowledge over and over again, for years at a time, not realizing how redundantly and incorrectly they're doing things (a great example would be the millions of developers squeezing out terrible database designs year after year - a particular vice of mine. Perhaps they'll imagine that they're expert database designers after a few years, but that couldn't be further from the truth). If they took a moment and actually learned for a few hours, it would make the implementation part much more effective, but people shun learning when they can just use what they already know as their hammer.

    2. Re:Good start... by Otter · · Score: 5, Insightful
      The challenge is what I love about it...

      See, one day I was wrestling with a CUPS upgrade that broke printing and telling myself I was learning something in the process, when it dawned on me -- there are more rewarding challenges in life than fighting with a computer.

      To the degree that Unix makes my life easier, it's worth using. (There's a VNC window open now saving me from something that would be excruciating in Windows.) But using it to make life more difficult has lost its luster.

    3. Re:Good start... by Golias · · Score: 2, Interesting

      The funny thing is, yeah OS X has expanded *nix use, but not in a way that people will need this book.

      I have a UNIX cert, and know what I'm doing on many flavors of *nix. I'm proud to say (as I push my glasses up the bridge of my nose) that I have vi skillz.

      I have not opened the command prompt on any of my OS X systems in over a year.

      When I was doing it, over a year ago, it was to ssh to a Linux web server that I used to have.

      Once you get used to harnessing the full potential of OS X, bash becomes as redundant as... well... vi.

      --

      Information wants to be anthropomorphized.

    4. Re:Good start... by fak3r · · Score: 2, Interesting

      See, one day I was wrestling with a CUPS upgrade that broke printing

      Funny, I had this same issue on my server at home, my solution eventually was to buy a Netgear wireless router/print server. I tried with CUPS, I really did, for a few years as I thought it was a cool solution, but upgrading would *always* break it. I'm at work, phone rings, my wife says, "I can't print". As a client, CUPS is fine, but on a server? No thanks.

      CUPS = Can't Usually Print Stuff.

    5. Re:Good start... by anicca · · Score: 2, Interesting

      I've hit that a few times. My main computer is a bit of a challenge, getting hardware to work is a pain sometimes. I have found that windows may be easier to get things working, linux is better at keeping things working. I am in the process of switching away from MS...I'll be opening that virtual machine to do the odd windows tasks I cannot quite do in linux. I have been comparing them for years and I definately like my linux experience better. Best practice is to pick what works best for the task at hand but I keep coming back to linux even though I am a video editing gamer ;). I am testing Kubuntu Breezy on the main box and Hoary on this P3. Mostly I think its because windows 'vista' will be a horror that will drive a hardware upgrade...once again... so my fast machine can seem slow. Better to hedge my bets and learn an alternative OS. Perhaps MS will surprise me.

      --
      A people that values its privileges above its principles soon loses both. Dwight D. Eisenhower
    6. Re:Good start... by legirons · · Score: 2, Funny

      As someone that has used Linux/*BSD/Unix for over 10 years, it's something that will provide a lifetime of learning.

      I recommend "Teach yourself Unix in 24 years", by the University of Life press...

  2. work with someone knowledgable... by SlashSquatch · · Score: 5, Informative

    ...if you can. There's no substitute.

    --
    Autonomous Retard -- Is your camp safe? UnsafeCamp.com
    1. Re:work with someone knowledgable... by s20451 · · Score: 4, Funny

      But they cost a lot more than a book.

      In India, I hear they give you a free sysadmin with your coffee at Starbucks.

      --
      Toronto-area transit rider? Rate your ride.
  3. Re:ohh yeah thats right, i read this once by xv4n · · Score: 2, Funny

    "I hate Unix because it made me type man mount"

  4. Re:Just stick with Mac by rootedgimp · · Score: 2, Funny

    if this wasnt a joke: post something non AC so i can find and shoot you. if it was: not funny. go get shot somewhere.

  5. It's on my bookshelf next to... by toupsie · · Score: 5, Funny

    It's on my bookshelf next to Nuclear Powerplant Management for Dummies and Learn to Navigate Alaskan Bound Oil Tankers in 24 Hours. I hate these cheat your way to understanding book titles.

    --
    Strange women lying in ponds distributing swords is no basis for a system of government.
    1. Re:It's on my bookshelf next to... by Overzeetop · · Score: 3, Insightful

      You must not have see these 'Sams" series books before. I picked up a C++ version about 6 ot 7 years ago. 24 hours? Try 24 lessons which can be read and completed by the author in just over an hour each. They're freakin texts. I must say I haven't seen this one in particular, but if it's like the others I've seen, a good user without some prior understanding of the subject can figure that it will take an evening - 2-3 solid hours - to thoroghly digest each chapter...longer if you work most or all of the examples. It's only the title which makes it appear quick...a more apt title would be "Teach yourself Unix in less than a month if you don't have a life".

      --
      Is it just my observation, or are there way too many stupid people in the world?
    2. Re:It's on my bookshelf next to... by WhiteWolf666 · · Score: 3, Informative

      That being said, they are quite good texts.
      Its pretty well thought and explained to be able to teach yourself .

      In 24-hours? Not unless your a crazed, methampthetamine monkey with an IQ of 180 and a degree in speed reading, not too mention the ability to type ~200 wpm.

      More realistic would be 1-3 hours per lesson, 3-5 lessons per week.

      Each 'hour' in the book is one 'lesson', and there really is no reason to try and complete each lesson in one hour; far better to go over it and make sure you grasp it, and to just generally take it at a relaxed pace.

      --
      WhiteWolf666 an exBush supporter. All you new-school,compassionate,save the children Republicans can rot in hell
    3. Re:It's on my bookshelf next to... by pyrrhonist · · Score: 2, Funny
      Comparing Unix to nuklar powerplants and navigating oil tankers is unfair. Unix is far simpler by several orders of magnitudes. First of all, if you make a mistake, you're not irradiating the countryside or dumping oil all over the coastline.

      But with the power of UNIX, I can.

      --
      Show me on the doll where his noodly appendage touched you.
  6. time by karvind · · Score: 3, Funny
    I wonder if the book tells the reader not to use his watch and use unix command time before he/she starts reading the book. That 24 hours may not be real or user time but sys instead.

    Just kidding :P

  7. screw that book by Anonymous Coward · · Score: 4, Insightful

    If you really want to understand unix you shouldn't get this book

    Some time ago I found an old text book for sysadmins written in 94.

    It skipped all that about guis and actually explained how to manage the OS via commandline.

    I had been using gnome for some time, but after reading that book I finally understood what all those scary commands meant when I configured my wifi card.

  8. Step #1 by GillBates0 · · Score: 3, Informative

    % man man

    --
    An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
    1. Re:Step #1 by DeafByBeheading · · Score: 3, Interesting

      The thing is, as a novice *nix user who is very interested in learning more, I find this approach very limiting. Sure, it'll give you info on commands, but it won't tell you anything about how the system is organized. For example, my system has a nic that's unsupported by the default kernel. There is an open source driver available, but I was only able to get an old version to work by following a step-by-step guide that had you type in commands verbatim (using backticks where necessary), explaining very little of what was actually going on. The newer version doesn't work if I just follow the same steps. The forums have not been of much help. Learning enough to do this by manning would take ages.

      *nix has a weird learning curve. At first, the CLI-centered approach is intimidating. Then you learn the FHS (or BSD's hier); some basic commands like man, apropos, ls, cd, cp, mv, rm, and eventually find, grep, and a couple of other things; and it's not so scary. Then you try to figure out how to add a kernel module, and you either have people hold your hand through it without actually teaching you anything, or you have to try to dig this out from man and co. yourself.

      I've found it very difficult to get beyond knowing the basics to actually being comfortable with the system. It doesn't sound like this book would help much...

      --
      Telltale Games: Bone, Sam and Max
  9. The best way is to solve a problem by path_man · · Score: 4, Interesting

    I've found that the best way is to solve some particular problem. Example: add these four new disks from the JBOD enclosure to your linux system. This teaches about the physical device drivers, device files, volume mgmt, filesystem mgmt, and mounting them upon boot (which touches many important aspects of UNIX).

    Working with someone else who can help point you in the right direction and solving a problem by yourself is much much better than a book.

    --
    The surest sign of intelligent life in the universe is that none of it has tried to contact us. -- Calvin & Hobbes
  10. Teach Yourself Programming in Ten Years by Janek+Kozicki · · Score: 4, Insightful

    When people talk about books titled "ten yourself something in NN hours/days" it always reminds me about this webpage.

    And in fact that's the truth - you can't learn that something in few days. Progamming? unix administration? sailing? playing chess? Man... that takes years to master.

    --
    #
    #\ @ ? Colonize Mars
    #
    1. Re:Teach Yourself Programming in Ten Years by Petrini · · Score: 4, Insightful

      Sure, those things take years to master. But that's mastery. Does it take years to learn how to play chess? No. Does it take years to become a master of chess? Yes.

      Learning how to accomplish tasks like adding a user and its options is simpler and takes far less time than learning how to write 'adduser.' Evaluate the book on the standard it sets for itself: learning how to do things. Don't judge it wanting because it doesn't teach the entire universe of how unix works.

  11. Re:Dubya! by Hosiah · · Score: 4, Funny

    It's easy to see why you got modded down -1 flamebait. You need to get the facts straight. A recent study shows the average IQ of the following groups:
    Stupid gits: 56
    Blithering morons: 48
    Bumbling fools: 44.3
    Fucking Idiots: 37
    Bleeding halfwits: 29.1
    Fucking Imbeciles: 26
    You have to get to the level of inanimate objects or at the very least slow-moving vegetables as a basis for comparison with Dumbya before you can completely abolish all concerns for counterattacks.

  12. You must have found one amazing book... by anandamide · · Score: 5, Funny

    ...if it described how to configure your WiFi card in 1994!
    Was it called "Configuring Not-Yet-Invented Hardware for Dummies" ?

  13. insulting? by tomstdenis · · Score: 4, Insightful

    I find all these "$THING for $PEOPLE" and "$THING in $QUANTITY of time" books insulting.

    Sure you can learn how to type "cd /usr/bin ; sudo rm -rf *" in 20 minutes. Can you learn to develop and debug shell scripts in 24 hours? I think not.

    Nor do I think people can learn C or C++ or Java in 24 hours. It's just insulting. Now I know they don't literally mean one day, but even college classes run longer than 24 hours. In college you'll have a 50-60 hour class on "intro to C" followed by FIVE MORE SEMESTERS of classes that build on it.

    I hate these books because they're retarded. I learned C primarily from "type and learn C" [I think by Sams] when I was 12. Then I proceeded to actually write programs [lots of them, 1000s of them]. I learned by doing and it took a long time. I wasn't half-way decent at "coding" until I was 19 and I'm just getting solid at proper development [well I'd say the last year has been really smooth].

    For all of us who do take it serious and have been through a lot of training I find these books insulting. And no, it isn't because I sunk a boatload of cash into the courses like a MCSE. I think people are quite capable of teaching themselves how to use UNIX shells or C programming. I just don't think it's the sort of thing you can do over a weekend or two.

    So fuck off already with the books that serve no purpose but to flood the market with a lot of "smart" people who turn out to be useless as the day is long.

    Tom

    --
    Someday, I'll have a real sig.
    1. Re:insulting? by skribble · · Score: 4, Insightful

      dude, lighten up...

      "Can you learn to develop and debug shell scripts in 24 hours? I think not."

      What does this have to do with a book designed to get new users familiar with using Unix? (which BTW the book in question is designed to do?) I would add, that yes you could learn to develop and debug scripts in 24 hours if you were so inclined, you might not be any good at it, but you could learn the basics.

      The purpose of this book and other like it are to teach the reader the basics of doing something, and overall they tend to do this fairly well. Nowhere do they say that you will gain 10 years of experience in a book.

      "In college you'll have a 50-60 hour class on "intro to C" followed by FIVE MORE SEMESTERS of classes that build on it."

      That statement seems to reflect more about your ignorance and some of the problems with higher education then actually making a valid point. The main text on the C language is "The C Programming Language" by Kernighan and Ritchie. I quote from the book "C is not a big language, and it is not served well by a big book." The book in question is less then 300 pages... easily worked through in a week or so (and could possibly be absorbed in 24 hours as well). And while this book isn't going to teach you every library and algorithm necessarily to create many outstanding applications, This book will in fact teach you the C language pretty much in it's entirety. (After all all the extensions and libraries are essentially built out of the these very basics taught in this book).

      So if you must, be insulted. I don't think too many people on Slashdot really care (and seriously who hasn't been insulted by something on Slashdot at one time or another). But you arguments just point out what are apparently your own shortcoming and misunderstandings about anything. I mean anyone who states "I hate everything that ..." without exploring everything you supposedly hate represents the height of ignorance.

      --
      --- Nothing To See Here ---
  14. Hit TV series on the way? by saskboy · · Score: 4, Funny

    24 Unix!

    It would be modeled after the hit American TV series with Mr. Sutherland in it. He'd have just 24 hours to learn Unix, or a bomb goes off yadda yadda. Each hour of the show would show him at the command line, or trying to get X Windows running, and about hour 15 someone should show him a Linux Live CD and nearly save the day.

    It could be shot under the BSD license, and run on either a Mac or Intel processor, depending on what they'd think would get better ratings.

    Any TV producers out there want to buy the rights to my idea?

    --
    Saskboy's blog is good. 9 out of 10 dentists agree.
  15. Marketing Titles Rejected By Publishers by Dystopian+Rebel · · Score: 5, Funny

    The Hopeless Moron's Guide To

    The Shallow Unteachable Twit's Manual For

    Become Dangerous With Too Little Knowledge Of In 24 Hours

      For The Brainless

      For Assholes

    --
    Rich And Stupid is not so bad as Working For Rich And Stupid.
  16. Re:ohh yeah thats right, i read this once by rootedgimp · · Score: 5, Funny
    "I hate Unix because it made me type man mount"

    man mount && touch tail more && more; finger assets |grep && fsck; locate cat && tar; whereis find mysqldump..... chpwned.

    i need to get out more...well.. on second thought, ill do society a favor.
  17. "Teach Yourself UNIX in a week" - by same author by Animats · · Score: 4, Funny
    The same author also wrote "Teach Yourself UNIX in a Week".

    But he's way behind on speed. The current record holder is "Teach Yourself UNIX in 10 minutes".

    You may also need "Advanced Speed Typing" and Carpal Tunnel Syndrome Treatment.

  18. The Difficulty by miyako · · Score: 4, Informative
    I think that the biggest difficulty that a lot of users have when transitioning from working with the GUI to working with the command line is the fundamental difference in the way that the two operate. The biggest difference as I see it is that the GUI is good at performing 1 operation at a time on an arbitrary set of files. The command line on the other hand seems to be most useful when you want to perform many tasks on a single file, or a group of files like *.txt or foo*. For many things on the command line there is no real anlagous way to perform the task with a GUI.
    The problem is that many people who first start out with the command line seem to view it as more of them having to simply type in obscure commands to correspond to the same steps they would take were they using a GUI. I've seen many people type:
    cd /home/myusername/foo
    ls
    cp foo.txt /home/myusername
    cd /home/myusername/
    mv foo.txt bar.txt
    cd foo
    rm foo.txt
    instead of simply typing mv ~/foo/foo.txt ~/bar.txt Of course this is a simple example, but I think that it illustrates my point that people are often locked into the GUI mindset. As such, even if they understand in the abstrace the use of piping and output redirection, etc, the difficulty is in understanding how to use those tools efficiently.
    --
    Famous Last Words: "hmm...wikipedia says it's edible"
  19. I quit Sam's years ago by Hosiah · · Score: 3, Interesting
    As the well-known tech author Peter Norvig noted, you won't learn but diddly in 24 hours (my wording). In fact, I daresay that Unix is not a topic one expects to learn completely in *any* finite length of time. Instead, one must stroll to the heftier material (like "Unix: the Complete Reference" that McGraw-Hill publishes) and take it home for a few dollars more. You keep it on hand as an on-going reference source.

    I'm afraid I can't pull any punches on this one: any "teach yourself X in 24 hours" book is snake oil to get your money. It's there to take advantage of people with the wrong attitude - Unix (and most of IT along with it) evolves so continuously, it practically re-invents itself every five years (through BSD, Linux, Solaris, etc). Get it in your head that it's a "learn-it-once" thing and you end up ten years later still able to babble Apple 2 Basic and remembering that SIMM = "single inline memory module" and DIMM = "dual inline memory module", but having to scurry back to the docs every time you edit your Python script.

  20. Re:Just stick with Mac by rootedgimp · · Score: 2, Funny

    you could have mentioned you were psychic beforehand :(

  21. Step 1: rm vwls -r by G4from128k · · Score: 4, Funny
    When trying to remember commands, step one is to remove all the vowels.

    I don't even want to think what Unix would have been like if it had been created by Finns or Hawaiians.

    --
    Two wrongs don't make a right, but three lefts do.
    1. Re:Step 1: rm vwls -r by snark23 · · Score: 2, Funny


      > I don't even want to think what Unix would have been like if it had been created by Finns or Hawaiians.

      I recall hearing something about a Finnish student dabbling in creating his own Unix back in the early 90's... named Linos or something... anyone know if he had any success with that? He could call it "Finnux" or something...

  22. My problem with "learning Unix" by TheReckoning · · Score: 4, Interesting

    ... whatever that means, is this. I need a high-level description of how Unix works. I have a reasonable handle on how Windows works (at least on a conceptual basis), so if I run into a problem or would like to get something done, I have an idea the kind of tools I need.

    I've only played with HP-UX and a couple of Linux flavors - and not long or thorough enough to know what's going on under the hood.

    Some examples:

    How does **nix boot? How does it interact with hardware? Is there a general hint to what all the directories are about or any memory aids for knowing what's in them? Permissions - any chance of an overview of what the bits mean, why they might be used and how they're actually used?

    The books I've seem go right from a brief history of Unix to either installing it or talking about commands. I've got no problem learning the "how", but I really need to know the "why" before I will spend the valuable time re-learning my way around an OS. Until then, I'll be sticking with Windows.

    Does anyone know any books that address the "how it all works together" part? I'll be happy to read man pages and cryptic HOWTOs once I know why I'm doing it.

    1. Re:My problem with "learning Unix" by 680x0 · · Score: 2, Informative
      Well, if no-one recommends a good title, maybe I should work on one. I think it's actually pretty simple. I can give you the highest level outline in two sentences:

      The BIOS (also called "boot prom" on some systems like Suns) loads a bootloader (one of GRUB, LILO, SILO, etc.) which loads the kernel which runs a special program called init. Depending on the flavor of Unix (System V vs BSD types), it either reads /etc/inittab and executes scripts found in there, or starts executing the script /etc/rc.

      So, once you can read shell scripts, you can follow the whole chain of system startup from there. Some examples of the System V influenced Unixes are Solaris, and most distributions of Linux. BSD types include Free/Net/Open BSDs and old SunOS (before it was called Solaris).

      There's a concept called "run levels" which you'll need to understand (basically tells the system whether it's booting up to full multiuser mode, shutting down, running single-user system maintenance mode, whether or not to automatically start the graphical user login - as opposed to text mode login). init controls the system as it goes from one "run level" to another, executing the scripts that start or stop system daemons ("services" in Windows terms). Running the command "man init" will give you the details of how init works on your particular system.

      If I do work this up into a fuller description, I'll post a link in my journal, so check there in a few days.

    2. Re:My problem with "learning Unix" by Arandir · · Score: 2, Informative

      I've got no problem learning the "how", but I really need to know the "why" before I will spend the valuable time re-learning my way around an OS.

      Wow! You're a born Unix person. Really. Windows was made for people who don't care how it works, Unix was made for people who do. You're a perfect fit.

      Unfortunately, the current crop of Unix advocates are too busy trying to shield the potential newbie from the "why" to realize how important it really is. If the "why" scares the newbie, then they're not a good fit for Unix, so we shouldn't be trying to fit them into an OS that they won't like.

      Does anyone know any books that address the "how it all works together" part?

      Someone else mentioned "Design and Implementation of *BSD", but that's too hardcore for your needs (unless you're a developer and are keenly interested in the inner workings of kernel data structures). I'm going to point you in other directions instead.

      First, check out the set of newbie documents for FreeBSD, http://www.freebsd.org/projects/newbies.html. More technical, but much less so than the Design book, is the FreeBSD Architecture Handbook, http://www.freebsd.org/doc/en_US.ISO8859-1/books/a rch-handbook/index.html. Finally, "Learning the Unix Operating System", http://www.oreilly.com/catalog/lunix5/, is a very good introduction to Unix that doesn't hide away the "why" nearly as much as other introductory books do.

      --
      A Government Is a Body of People, Usually Notably Ungoverned
    3. Re:My problem with "learning Unix" by multipartmixed · · Score: 5, Informative

      > How does **nix boot?

      The hardware runs a program. That program loads the kernel and executes it. Any more specific, and you're now talking platform-specifics which don't have to with UNIX.

      For example, Linux on a DEC Alpha might boot like this:
      - Windows NT ARC loader configured to spawn program MILO.EXE on FAT-formatted disk in Drive A:
      - MILO.EXE understands Linux ext2fs, and launches the kernel wherever the Windows NT ARC loader's environment variables tell it to find it. (Hint - it's faster if you point it at a harddisk). The kernel is generally called /vmlinuz is a gzip-compressed Alpha ELF binary. (Or is it COFF?)

      Another example, Solaris on a SPARC box might boot like this:
      - The EEPROM stores the identity of the boot partition
      - The PROM loader goes looking for the boot blocks (installboot (1M)) on that partition, and executes the code it finds there
      - The software just executed understands the Unix Filesystem (UFS), goes looking for the kernel where it belongs (set by the installer, I forget where it's written down). Traditionally, it was /vmunix, now it's somewhere else.
      - The kernel looks in /etc/path_to_inst to figure out what device drivers to load, and loads them.

      Solaris on an x86 box boots pretty much like windows.
      - The BIOS goes looking for the first "active" partition, as marked by the disk partitioning utility. Generally on the first IDE controller's master disk.
      - The BIOS executes the code in the master boot record (MBR), which somehow winds up loading the boot blocks.
      - The software just executed understands the Unix Filesystem (UFS), goes looking for the kernel where it belongs (set by the installer, I forget where it's written down). Traditionally, it was /vmunix, now it's somewhere else.
      - The kernel looks in /etc/path_to_inst to figure out what device drivers to load, and loads them.

      > How does it interact with hardware?

      Same as any other operating system; through the PCI/ISA/etc bus and the API implemented by the hardware.

      > Is there a general hint to what all the directories are
      > about or any memory aids for knowing what's in them?

      Keep in mind, UNIX is not Windows. Generally speaking, you can put anything anywhere you want, as long as you change everything which cares about it. Which is usually possible!

      Keep in mind also, that nothing is absolute. /etc - misc OS crap that doesn't have a defined place. Generally config files /etc/inet - Like etc, but for networking stuff in SYSV. Generally linked to same-named files in /etc to be compatible with BSD. /var - Theoretically, for VARs. Nothing much officially lives here, except log files (/var/log, /var/adm on Solaris). Oh, and also spools (/var/spool/mail, /var/spool/lp, etc. Lp stands for "line printer") /opt - OEM or Third party packages on SYSV boxes, esp Solaris. /usr - Apps and stuff that came with the OS /usr/bin - Binaries for anybody to run (executable prorgrams) that should be available all the time. /bin - Like /usr/bin, but more OS-centric/important /sbin - Like /usr/sbin, " " "/" /usr/sbin - Binaries for super users /usr/local - Addons which are local to that box /usr/local/bin, sbin, etc -- Local to that box, but have /bin, /sbin, /etc functionality

      > Permissions - any chance of an overview of what the bits mean,

      Permissions are most useful to examine as four-digit octal numbers. Assign each octal digit as such: SOGW

      S - Special stuff, like sticky bits. Almost always 0
      O - Permissions for the file owne

      --

      Do daemons dream of electric sleep()?
    4. Re:My problem with "learning Unix" by hackstraw · · Score: 2, Informative

      How does **nix boot?

      I only really know how Linux boots at an overview, but other *NIX systems may be very similar. There is something called a "boot loader" that sits at the beginning of the boot disk and points to the Linux kernel. The linux kernel then takes over the machine in terms of getting an inventory of the hardware attached on the computer and initializing the device drivers and the devices. It then looks for /sbin/init which then brings up userland processes (GUI shell, bring up network, login prompts, etc) and/or modifies the behavior of the kernel via loading modules or modifying default parameters.

      That in no way is very comprehensive, but its pretty much sums things up. I don't know if this is still the case, but I used to make linux bootable disks simply by doing "cat kernel_image > /dev/fd0" which puts the kernel at the beginning of the floppy disk, and if the machine is told to boot from a floppy linux comes right up.

      How does it interact with hardware?

      Depends. It just "does the right thing(tm)". Just kidding. I'm not sure what you are asking here in terms of how do you manipulate hardware via the OS, or how the OS internally handles the hardware. Both are too large of a topic to talk about here.

      Is there a general hint to what all the directories are about or any memory aids for knowing what's in them?

      Most of this is Linuxcentric, but many things apply to other systems as well.

      I always put just about everything in my path, because some of the directory naming conventions are ambiguous or whatever (like traceroute being in /usr/sbin or ping being in weird places sometimes). But here is the overview. /bin hold basic utilities. It almost always is on the same boot disk as the kernel, so you can do basic stuff even if the other drives are hosed or down or network attached, or whatever. /sbin is the same, but has more "super user" commands in there which I guess is where the 's' comes from. /etc is on the same disk and holds most of the configuration files for the system, to include the user and group database. /lib is for basic common shared libraries (like DLLs). Again, its typically on the same disk. Sometimes some or all of the /sbin and /bin commands are statically linked or have statically linked alternatives so that the system is still useable in the event of shared library problems. /dev is on the same disk and it is a file based abstraction of many of the hardware devices. /dev/hda is the first IDE disk. /dev/hda1 is the first IDE disk partition, etc. /dev/null is where all of the important stuff goes. If you accidentally delete a file or something, its probably there :) There are other fun things like /dev/zero that is filled with zeros, bunches of them. And /dev/random or /dev/urandom which has bunches of random junk in there. There is too much about /dev for here and now, but its pretty cool.

      There is /proc which is typically on the first disk, but it is a virtual filesystem, and all the stuff in there is dynamically displayed by the kernel. General information about each process is stuffed in there, getting and setting kernel variables is in there. Its kinda like /dev and again its too involved for this overview.

      Now there is /opt, which is wrongly put in / and its misnamed from /usr/local. I see the conceptual value of /opt (for optional) and I do see a small distinction from /opt and /usr/local because /opt typically has optional stuff that came with your base system. I'll get to that in a second. /usr has

    5. Re:My problem with "learning Unix" by Ashtead · · Score: 2, Informative

      Some others have given some really good explanations on most of these questions, I'll try explaining a little more about the way the system deals with hardware.

      The operating system kernel is this part of it that runs all the time and takes care of the scheduling of the various processes and of servicing the requests that these have for access to disks, keyboard, mouse, screen, serial ports, network ports, printers and so on. Since there is a lot of different varieties of these, the operating system uses a set of suitable drivers for each device. The devices and their associated drivers are of three major kinds: there are character devices, that work with streams of characters, such as the keyboard or the screen or the printer, and there are block devices such as disks, that deal with large chunks of data. The third kind of device are network interfaces that are not classified as traditional block or character devices at all.

      The block and character devices are identified in the systems with their "major number". In older unix systems, there was two master tables of these device numbers, that indicated that for example character device number 1 would be a console, block device number 7 would be some kind of disk and so on.

      On Linux systems, the same idea of major numbers are used, but the device driver programs usually request their own major numbers themselves, and the kernel builds these tables on boot, and we can see what this becomes through the pseudo-file /proc/devices.

      Programs in the "user-space", that is all programs that we normally run as processes ourselves, have to access these devices through "node files", normally located in the /dev directory. When reading or writing to a device through these files, the operating system routes the requests for reading and writing to the appropriate driver since it knows the major number. Each driver provides a read() and a write() function to the kernel code that it calls for the device-driver to do its job. Both character and block devices may be read and written as if they were disk files, the block devices hold filesystems, and can additionally be mounted, and thus made accessible through a directory somewhere in the system.

      The node files in /dev indicate a filename of a device, its major number, its minor number (this is used to tell several different devices of the same type apart), and of course whether this is a block or character device. On a long listing, (ls -l) the prefix shows as b or c for block or character device. Like other files, these may have read/write permissions set to control who may read or write the files. Most of them are owned by root. It is possible to create such node-files elsewhere in the file system, but that tends to be frowned upon.

      brw-rw---- 1 root disk 3, 0 Jan 30 2003 hda
      brw-rw---- 1 root disk 3, 1 Jan 30 2003 hda1
      brw-rw---- 1 root disk 3, 2 Jan 30 2003 hda2
      crw-rw-rw- 1 root uucp 4, 64 Feb 21 2005 ttyS0
      crw-rw-rw- 1 root uucp 4, 65 Feb 21 2005 ttyS1

      In the above, very short, excerpt from /dev on this machine, we see the hard disk is block device major number 3, and the serial ports are character devices major number 4.

      There is usually a whole slew of such node files under /dev, and they come in long series of names, beginning with some short prefix such as tty, pty, sda, hda, fd and so on. Generally, these prefixes follow a convention:

      tty are serial lines, terminals, or consoles, (the abbreviation comes from "teletype"); pty are "pseudo-tty" devices, basically a kind of pipe that look much the same as a real tty to the programs reading and writing to them. Another character device of interest is the lp series, these are the parallell ports as used for printers.

      fd ar

      --
      SIGBUS @ NO-07.308
  23. Who Needs a Book?! by Comatose51 · · Score: 3, Funny

    Conversation between me and friend:
    Me: What else should I put on my resume?
    Friend: Can you use grep?
    Me: Yeah kind of
    Friend: Bam! Instant Unix admin!

    --
    EvilCON - Made Famous by /.
  24. Re:ohh yeah thats right, i read this once by Homology · · Score: 2, Insightful
    but i thought it was called 'apropos'.. no no, it was 'man'! im sure of it!

    What is not mentioned in the review of the book, but that you joke about, is the importance of high quality and relevant documentation. Many people today just don't read documentation (be it man pages or not), but perhaps that is the result of shoddy documentation practices on some non *BSD platforms. All to often I see someone post about a "problem" that reading the man pages, the FAQ or a few minutes of Googling will solve.

  25. Best intro to Linux book out there... by massysett · · Score: 2, Informative

    ...is free on the Net. Introduction to Linux: A Hands-On Guide at the Linux Documentation Project. Print the PDF, save a trip to the bookstore. Doesn't assume (much) prior knowledge, yet omits all the trivial "Here's how to burn a CD in K3B" nonsense.

  26. There are many books about UNIX internals. by CyricZ · · Score: 3, Informative

    You need a book such as "The Design and Implementation of the 4.4BSD Operating System". I believe there is a more recent edition which focuses on FreeBSD. There are many other books out there, too, focusing on the internals of systems like Linux, Solaris and OpenServer.

    They explain how each portion of the system works, in addition to how they work together. And then they explain exactly why.

    You should be able to find such books at a university bookstore.

    --
    Cyric Zndovzny at your service.
  27. Learn to be an elitist slashdotter in 24 hours by foQ · · Score: 2, Insightful

    Most of the replies to this article go something like "You can't learn anything in 24 hours" or "If you use this book you shouldn't use Unix". The first type of reply is valid, but this review points out in several places that this book is useful as a reference guide, not just as a lesson-based learning method. And "Learn $THING$ in $TIME$" is a whole lot catchier and more profitable than "Figure It Out Yourself". Everybody needs to start somewhere, and for some folks, getting a book that will get them to do something meaningful at a command line is a GREAT start! As for the people who post the second type of comment: Get back under your bridge, troll. Seriously, not everybody here at slashdot has been programming C for a decade and uses lynx to surf. I'm sure a lot of people will find this book useful to them, just as "Learn Personal Hygiene in 24 Hours" would be useful to you.

  28. Re:Indeed, get some Sun! by CyricZ · · Score: 2, Insightful

    But the integration isn't there yet. Solaris works very well with Sun hardware. You don't run into hardware conflicts, or driver issues. It just works. And for somebody new to UNIX, having a system that works well right off is a blessing.

    --
    Cyric Zndovzny at your service.
  29. Type and Learn C by a1ok · · Score: 2, Insightful

    'Type and Learn C' (iirc, by Tom Swan) was a really good book, it helped me a lot too when I was initially exploring the language. That and the online help in Borland's Turbo C++, which imho was highly impressive. OTOH, I also bought 'Type and Learn C++', but that was quite a disappointment - the entire book was an ongoing exercise in making an editor, so I couldn't jump from chapter to chapter as I wished, and due to several other things didn't get utilized remotely as much as the C book.

    I do like the '24 hours' books in some cases when I want a quick intro to a topic, but 'Learn' is probably too strong a word - its more like 'Get Acquainted With', which is what I use them for.

  30. I found the third ed. useful. by spasticus74 · · Score: 3, Informative

    I bought the third edition in January 2004 when I started a new job with a Unix/Linux company. I found it very easy to get up to speed quickly, which is a testament to the quality of the book as my previous *nix experience was measured in minutes. I particularly appreciated the way it compared and contrasted *nix with Windows as that's my background. It won't teach you everything but it covers the basics and will get you working pretty well straight away. As noted above to become really effective you should get help from someone with a lot more experience, but this book will introduce most *nix concepts.

    --
    "I'd like to think oysters transcend national barriers Adrian"
  31. Unix in 10 seconds by d1rty_d0gg_ · · Score: 2, Funny

    dd if=/dev/zero of=/dev/sda

    That'll teach you not to mess with Unix in 24 hours.

    --
    "Show me your tables and I won't usually need your flow charts; they'll be obvious".
  32. learn %s in %d days by sohp · · Score: 2, Insightful

    From "Teach Yourself Programming in Ten Years"
    "I did the following power search at Amazon.com:

              pubdate: after 1992 and title: days and
                (title: learn or title: teach yourself) ...
    The conclusion is that either people are in a big rush to learn about computers, or that computers are somehow fabulously easier to learn than anything else. There are no books on how to learn Beethoven, or Quantum Physics, or even Dog Grooming in a few days."