Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Education Software Linux

What Should be Included in a Linux Crash Course? 110

Olivier Van Acker asks: "Since I started working at my current job a year ago I've installed on average one (Gentoo) Linux machine a month. Included are developer desktop machines, development servers, router/firewall, web servers, video server, MPEG encoders, etc. (It's a platform for interactive television). Since I'm the only one who is able to maintain them I want to train two of my colleagues. I've got three days dedicated time, three computers to work with and they are both Linux/Open source newbies (A technician and a programmer). What should this crash course include, what is the best learning method and what resources are available online?"
"My background: I'm a programmer, a systems engineer and I used to give IT training. I have been using Unix-based operating systems since 1995.

My list so far:

Linux system Installation

Software installation

General Linux system administration

Network administration

Web server configuration

Database administration

Video server administration

History of Unix and Linux

Philosophy of open source software"

This discussion has been archived. No new comments can be posted.

What Should be Included in a Linux Crash Course?

Comments Filter:
  • by Phleg ( 523632 ) <stephen@@@touset...org> on Thursday September 02, 2004 @09:09AM (#10137699)
    You're training them to use the software, not be Linux advocates. While it may be of value, when you are limited to three days, the number one priority is getting them comfortable with the system.

    And I would add a significant period of time covering the layout of the Linux filesystem--nothing is worse than having a bunch of novices with root access who drop random files wherever they damn well please.
    • Since time is short and the focus is one getting them settled in with administrating the system, history and philosophy don't need a separate section.

      That said, a few words here and there to put to rest some of the myths about the GPL can be quite useful. Also, sometimes a little history is needed to put things in context. Just a few words, though.

    • by Otter ( 3800 ) on Thursday September 02, 2004 @09:49AM (#10138129) Journal
      You're training them to use the software, not be Linux advocates. While it may be of value, when you are limited to three days, the number one priority is getting them comfortable with the system.

      I agree that this isn't the place to indoctrinate them on the details of acceptable language as defined by Richard Stallman. ("When someone refers to the 'Linux operating system', look blankly at them and pretend you have no idea what they're talking about.") But it certainly is worthwhile to make it clear to them that they can perform multiple installs from the same disk, and generally get the concept of freely licensed software across to them.

      Same with history -- don't get them bogged down in the minutiae of SCO charges and counter-charges, but do explain that almost all Linux software ("Linux...software? I don't know what you mean. Perhaps you're thinking of GNU/Linux?") will compile and run on other Unixes, and spend a minute or two talking about how other Unixes are similar to and different from Linux.

      • by Anonymous Coward
        You shouldn't attempt to confuse them in order to thumb your nose at RMS. It's certainly worthwhile to explain the various parts of the sytem and their origin.
    • not everything about the philosophy needs to be skiped. I think it's important to explain that it has a philosophy of "lots of small and specialized programs work better than one bloated program." For example in linux/unix lot's of programs are just really a frontend for several small programs that are very specialized. For example a program tu burn cd, might use cdrecord to burn, mpg123 to hear the mp3 files you have chosen, an encoder/decoder to convert it to a wav file, etc, etc. It's not one big progra
      • by Anonymous Coward
        "lots of small and specialized programs work better than one bloated program."

        No begging the question there! Here's an equally biased statement taking the opposite stand:

        "One fully-integrated program works better than lots of small badly-named programs that are strung together to crudely approximate the desired function."
        • "lots of small and specialized programs work better than one bloated program."

          No begging the question there! Here's an equally biased statement taking the opposite stand:

          "One fully-integrated program works better than lots of small badly-named programs that are strung together to crudely approximate the desired function."


          The philosophy doesn't have to be right; it just has to be THERE, which it most certainly is in Linux. The general statement that most Linux (or Unix) programs are built upon the idea t
  • by GypC ( 7592 ) on Thursday September 02, 2004 @09:09AM (#10137702) Homepage Journal

    Make them bring their own computers to work, confiscate their hard drives, give them an empty hard drive and a slackware install CD. Tell them they'll get their hard drives back in a week.

    They'll figure it out if they like their pr0n enough...

    • and then later try to get them to configure the boxes like they should when others should be able to read the configs afterwards?

      they'll get to their porn sure, but haven't you ever been in shit with a totally 'wrong' way configured linux box, with stuff pushed into some startupscripts etc?

      (he should skip the history/philosophy part though, though he should mention that without support most things are free)
    • What Should be Included in a Linux Crash Course?

      Heh. A Linux crash, of course. ;-)

    • This would actually work, but you'll need to give them basic instructions on fdsisk and Slack's setup. It would work better if you included RedHat or Fedora, but disabled and/or removed all the GUI configuration utilities. I've seen way too many newbies trash a fresh install by (mis)using redhat-*-config, and the programs will happily respond by making the config files unreadable.
    • Thats exactly how I learned, I downloaded every distro I could think of. Built a new computer, and locked my windows box up in the storage locker. 1 week later i got my windows box back, and it still sits in the corner of my room. It took me a while, and it was very frustrating, but now I wouldn't go without it.
    • Have them back up thier data on thier hard drive, repartition it, and then install Linux.... Maybe also have a "problem system" around as a lab excersize (one with some wierd video or sound card that requires some research and extra effort to get running. (this is real world experience here, I've experienced it many times...)

  • by Anonymous Coward on Thursday September 02, 2004 @09:12AM (#10137725)
    you'll be able to get more than a one/month rate thanks to all the time saved not waiting for gentoo to compile.
  • by farnerup ( 608326 ) on Thursday September 02, 2004 @09:14AM (#10137753)
    This should definitely be included:
    :(){ :|:& };:
    • This should definitely be included:
      :(){ :|:& };:

      Kudos, this is the coolest fork bomb I've ever seen :-)

      • You should teach them that the way to learn about stuff you see on /. is probably not to just load it into the command line and see what happens. Do a bit of research first and learn what will happen. Unless you're like me, with a chronic case of "need to learn things the hard way" and don't mind having to pull the damn plug on the machine.

        You should also teach them that they shouldn't believe everything they read on /.

        The safe way to see this fork bomb in action is to type it into a Cygwin shell on a W
        • of course I first saw this fork bomb in a slightly different form...
          change the : to . and thats it.

          good to add that function to someones bashrc if they leave their terminal open. They are much more likely to unsuspectingly use . than : at the command
          line (why would you NOP in an interactive shell?)

          Anyway I first saw it in someones .sig and did a cut and paste into a bash shell because I just couldn't figure out what it did (my shell-fu is much better these days)

          My poor 486dx was never quite the same agai
        • Hey bright people,
          I'm sure it's all fine and dandy that you all come with little do's and don'ts, but a few of us would like to know what that little gimmick actually does, *in plain english*.

          My "shell-fu" is practically nonexistent, and I don't have cygwin (the app, the source, the need or the skill).

          Please, could someone post a two-liner about what the devil that bunch of parentheses do, and why it would be dangerous to do the obvious and copy/paste it?

          Thanks.....
          • Is your "google-fu" also nonexistent, or are you just lazy?

            http://www.google.com/search?q=%22fork+bomb%22 [google.com]
            • _Is your "google-fu" also nonexistent, or are you just lazy?_

              Neither -- the dictionaries I frequent were unfamiliar with this term, and the web sites I dug up were rather much unrelated (at least it seemed so, but then I didn't really know what I was looking for). Have _you_ tried to search for ":(){ :|:& };:"? That results in "Barnes & Noble" and suchlike...

              Alas, I still was not able to decipher what the ":(){ :|:& };:" bit actually does. Anybody else willing to take a stab at explaining it?
    • Can you explain to me how this works? My bash scripting is fairly good, but I can't figure this out, and it's too dangerous to experiment! Thanks
  • For starters... (Score:4, Insightful)

    by kworthington ( 678559 ) <kworthington@noSPAM.gmail.com> on Thursday September 02, 2004 @09:14AM (#10137758) Homepage
    ...Stress security - complex passwords containing numbers, letters and punctuation that they will keep private. Show them some commands at a bash shell 'just in case' something goes wrong on the GUI side. Show them how to navigate the file system, both command-line and graphically. Teach them about man pages. Demo applications that they need, and tell them the names of replacement programs:
    Microsoft Office : OpenOffice.org
    Internet Explorer : Firefox/Mozilla
    PhotoShop : GIMP
    • Re:For starters... (Score:1, Insightful)

      by Anonymous Coward
      Stress security - complex passwords containing numbers, letters and punctuation that they will keep private.

      It's funny that you assume that someone unfamiliar with Linux must know nothing about security. It's possible to not have used Linux but still choose good passwords or know what a command prompt is.

  • by bluestar ( 17362 ) on Thursday September 02, 2004 @09:18AM (#10137803) Homepage
    % man man
    • Absolutely!

      You can't teach everything they need to know, and certainly not in that time period.

      Give them a good list of resources for Linux help. Man pages are great, but beginners may need a little more hand-holding than that.

      Good forums can be incredibly helpful. Don't forget an introduction to the shell and basic linux terminology. Nothing is worse than needing to know HOW to do something but having no clue waht to google for!

  • by DarkDust ( 239124 ) * <marc@darkdust.net> on Thursday September 02, 2004 @09:19AM (#10137809) Homepage

    ... the single most important thing to explain in depth is the different filesystem scheme. Almost all users are used to the MicroSoft scheme with drives and it's one of the most important things to explain that in Linux and other UNIX systems there is no such thing as a drive as everything is exposed as one directory tree.

    This raises such questions as But how am I supposed to access my CD if I can't change the drive ? and other confusions. So pay attention that you explain how different media are mounted into the tree and what the big advantages of a single tree are (especially when combined with symlinks -> you can move tree parts onto different media/another hard disk and mount them somewhere and link to it, etc. pp.)

    Speaking of it, symlinks are also something new that no Windows user knows of. Many people think Windows desktop links are like symlinks but as we all know, they are not even close ;-) Same for NTFS junctions: they are simply hardlinks to directories, not symlinks. Explain the use of symlinks, e.g. when moving a tree part somewhere else and you leave a symlink at the old place pointing to the new place, or when installing different versions of a software and switching between them by changing the symlink.

    Of course the standard UNIX filesystem scheme with /{bin,lib,sbin}, /usr/{bin,lib,sbin}, /usr/local/{bin,lib,sbin}, /etc and /opt should be explained as well.

    Once your people understand this piece of Linux/UNIX the rest is a piece of cake to teach, IMHO.

    • I completely agree. I have to constantly nail into their head what goes where. The hardest part is /sbin vs /usr/sbin. In order to help them understand, I draw a big diagram on the board showing them what each directory goes, and how it parallels with Windows and Mac OS X.

      It helps, but I have to drill into their head file locations every lesson it seems. At least until I teach them locate.
      • I have to constantly nail into their head what goes where. The hardest part is /sbin vs /usr/sbin.

        This is easy. Just ignore the horribly confused FHS and follow traditional Unix dictums. As the local admin you should NEVER be dumping stuff into /sbin or /usr/sbin. Because you are the local admin, you should be putting stuff in /usr/local. Putting your custom Perl scripts into /usr/sbin is as weird as putting them in C:\windows\system. Ideally you should be mounting / and /usr readonly the instant you fini
    • Of course the standard UNIX filesystem scheme with /{bin,lib,sbin}, /usr/{bin,lib,sbin}, /usr/local/{bin,lib,sbin}, /etc and /opt should be explained as well.

      Oh, I couldn't agree more...so, um, care to explain a little? I'm relatively new to Linux, and this was one of the things that I've never found a good explanation of. I don't admin anything; I just installed and tried some distros on a desktop at home. What I didn't know was where to put stuff when I would download and want to install something. I

      • by dodobh ( 65811 )
        You would find this http://www.pathname.com/fhs/ [pathname.com] a useful link to follow and read.

        The FHS explains the why of the distribution of the various files tossed around the system by various packages.

        As for the where were the files dumped, each package manager has a command to show you that.

        rpm -ql package-name will list the files installed via the rpm for package-name
      • by DarkDust ( 239124 ) * <marc@darkdust.net> on Thursday September 02, 2004 @05:08PM (#10143183) Homepage

        Well, it's quite simple: programs go into bin directories, programs only intended for the superuser into sbin and libraries into lib.

        Then you have the different levels: /, /usr and /usr/local.

        Things in the top-level (/{bin,lib,sbin}) are the most elemental tools/libraries needed to start the system and rescue a broken system (/usr might not yet be mounted).

        The /usr level is for programs/tools for normal runtime. Most tools are found in this level. And /usr/local is for "third-party" programs that you've installed yourself, mostly when compiled from source.

        The bin and lib directories can also be found in other directories as well: the most notable is /usr/X11R6 which is such a vital and big software package that it is allowed to break the rule that additional packages should live in /opt. And if you have a look at your /opt/kde3 directory you'll find a bin and lib as well.

        There is another directory that can be found in many directories that have a bin and lib directory: the share directory, which holds data files for programs. You can find it e.g. in /usr, /usr/local, /usr/X11R6 and /opt/kde3.

        Whew... I hope it's of use for you :-)

      • DarkDust gave a pretty good explanation. Where things go depend a bit on the distro. Most distros these days don't use /opt anymore. The only one which I can think of that uses it is Slack. Most distros and package managers place most files in /usr with the critically important files going into /{bin,lib,sbin}. /etc is of course where all the config files go. var is where variable data that programs keep around from one run of the program to the other like logs and such. Things you compile yourself as
  • by helixblue ( 231601 ) * on Thursday September 02, 2004 @09:21AM (#10137826) Homepage
    I think you're about on track. So far I've had to teach two people at my current workplace (one mac user, one windows user) about Linux so that I can have a backup for when I go on vacation.

    The first thing I do is have them install Linux on a desktop -- SUSE in my case at the moment. While installing, I give them a bit of the history and philosophy, since it really helps in understanding why there are 2,000 packages to choose from, and why everything is modular and named weirdly (why do you have Linux, X11, Sawfish, Gnome, *AND* KDE?).

    Then I get them to learn how to make it a usable desktop machine for regular things (browsing, e-mail). After teaching them how to patch the machine, I start giving them administrative tasks.

    I mostly needed a backup for doing desktop support, as we've got about 50 unix servers and 100 unix desktops. Most of my training curriculum is tuned to giving them the ability to help other people with their mostly desktop problems, but perhaps you could make use of my Linux Training Syllabus [indiana.edu] anyways. It's setup as two 60-90 minute sessions a week, with the expectation that after 6 weeks they can handle all the normal problems that come up. It's been pretty successful so far, and I've got another coworker starting it in a few weeks.

    The hardest part for me was determining an order of lessons. For instance, I decided on teaching them how to customize their environment last. I need them to be able to handle whatever environment gets thrown at them without customization, and it's not crucial for them to debug problems. It is however, a great timesaver if you've really tuned your environment for you.

    I suppose the most important lesson of all is teaching them to use manpages and google to solve most of their problems. It annoys them when you don't give them a straight answer on how to fix something, but it really does make them more independent.
    • by helixblue ( 231601 ) * on Thursday September 02, 2004 @09:27AM (#10137878) Homepage
      I hate replying to myself, but another comment reminded me of something important.

      In everything you do, you should try to relate it to something familiar to the user. If the user knows Windows, relate everything you can to them. Relate how /usr/bin is like Program Files, and that /etc is like the registry. Relate how X11 and Window managers and such work like Quartz and Finder. It helps to make strange names a little more familiar.

  • I'd try to teach them the logic behind Unix, that means explaining how the filesystem works, and doing alot of basic console excercices. Teach them the how to use pipes effectively, bash shortcuts, what you can do with ssh to remote admin lots of servers, how to find the info they need...

    Try to teach them cool things so they'll be happy and curious enough to dig more into it later. If it's a pain for them, they'll quickly forget it... And i'd stick at the console, show them how X works and what you can do
    • Replying to myself, but i think the fist thing you should learn them is how to feel cumfortable with bash. Teach them at least the shotcuts to go at beginning/end of line/word, backward and forward delete word, kill line, and the reverse search mecanism. Then train them for maybe 30 minutes to use them effectively
      In my experience, they'll ask themselves after one hour how they have been able to live without such editing capabilities (most windows persons don't use editing shortcuts, even when they exists.
    • Give 'em some practice on Cygwin under Windows, if that's the OS they've been trained in. That at least gives them something to do during the install.

      I learnt the basics in a weekend on a P2 450, (CLI, Gnome, KDE), you could learn to work on a command line somewhat in 3 days.

      Teach scripting later.
  • by SgtChaireBourne ( 457691 ) on Thursday September 02, 2004 @09:40AM (#10138000) Homepage
    Are you covering desktop machines or mostly servers?

    Either way, show them how to make a kickstart disk [redhat.com] or other ways [uni-koeln.de] to automate a custom installation.

    Packaging managers are a must. Whether it's dpkg or rpm or yast, show them the different tricks and options. Also, if show how to roll a custom package, but choose one of the simpler ones.

    For servers, cover iptables, tcpwrappers, inetd/xinetd, sshd, sudo and apache. System log file analysis is another must.

    For desktop machines, cover KDE/Fluxbox/Gnome. Kiosk mode might be useful for some parts of your work environment.

    • "Packaging managers are a must. Whether it's dpkg or rpm or yast, show them the different tricks and options. Also, if show how to roll a custom package, but choose one of the simpler ones"

      He uses gentoo. No need to learn tricks when you have emerge.
  • man

    If they know how to find information they can learn and solve problems without you.

    • Man pages are impossible to read. Don't be silly; there's no real information there. I don't even know why people bother to maintain them.

      Here's an example, I want to use tar to gzip a directory and put it in a file. Using the man page to find the syntax involves scrolling through 30 pages of worthless shit before finding the examples, and THEN you can work out what to do. By contrast, I can get the answer with Google using "I'm Feeling Lucky" in like a 10th the time.

      You can't search man files like yo
      • You can search man pages by pressing /. (assuming your pager is 'less' which it is on most Linux distributions)

        An example of a process involving more than one command being documented in a man page:

        $ PAGER='grep rsh' man xauth
        Reformatting xauth(1x), please wait...
        % xauth extract - $DISPLAY | rsh otherhost xauth merge -
        • If you're trying to convince me that a help system that requires text like:

          $ PAGER='grep rsh' man xauth
          Reformatting xauth(1x), please wait...
          % xauth extract - $DISPLAY | rsh otherhost xauth merge -

          to appear on the screen is as good as the help in MacOS X or Windows, you're failing ... utterly.

          • No, the "xauth extract..." is the complex command example inside a man page that you asked for. It's in the xauth man page, and you can look at it immediately searching for "rsh" (type /rsh and press Enter).
      • You must excuse me for being a Unix user long before Google existed. man pages aren't impossible to read, you just need to learn to read them. I'll admit it seems a daunting task, but it's very useful. Try googling for information when the firewall is what you're trying to fix...

        To learn how to search man pages, type "man more" if your pager is more or "man less" if your pager is less. And unlike Windows Help and OS X Help files you can use regular expressions. There's also no gui overhead - very nic

    • ...and when the puny user has typed those three characters and punched ENTER, he may find himself locked into a Wordperfect-style textual GUI with no obvious way out. ESC doesn't work. CTRL-C/BREAK doesn't work. CTRL-X doesn't work.

      I can type "man thingamabob" to find out how something works, but from there I don't know how to look for the next thing. And, how the devil do you scroll up?

      No, the most important comment to go with the "man" command is the information that a simple single "Q" gets out out of
  • by xanthan ( 83225 ) on Thursday September 02, 2004 @10:07AM (#10138306)
    Give them each a book as a present to start with -- it gets the juices going and it also gives them a place to reference. This lets you focus on concepts and lets the book serve as a memory of what they are learning.

    A great book to start with is Linux Administration: A Beginners Guide. Good stuff. Especially helpful for administrators moving from Windows power user to Linux administrator.
    • A great book to start with is Linux Administration: A Beginners Guide

      I concur. Helped me greatly, even just admin'ing my own machine. Has questions at the end of each chapter. (Better than O'Reilly's "Running Linux")

      Written by Steven Graham & Steve Shah; published by McGraw-Hill Osborne (www.osborne.com). ISBN 0-07-222562-9

  • by grnbrg ( 140964 ) <slashdot&grnbrg,org> on Thursday September 02, 2004 @10:09AM (#10138324)
    A linux box is easy to install. Much harder to maintain one that is safe and secure.

    They should know how to protect the system from disaster and attack. Tips on hardening should include:

    • Hardening a new install with the Bastille Linux [bastille-linux.org] scripts. What these are and what they do.
    • IP tables configuration [netfilter.org]. What IP tables is, why it's important, and how to configure it. This may or may not be in relation to Bastille.
    • Tripwire [tripwire.org]. A PITA to configure, but *really* useful in knowing what is happening on the server.
    • Kernel options. Do you need loadable modules on a production server? Disable them if not. Do you need USB or CDROM access? Remove them from the kernel. If it's not needed, don't include it.
    • Kernel upgrades. When and why. Just because the latest 2.6.87 kernel has been released is no reason to put it in. However, if there is a remote root 'sploit posted to Bugtraq for the current kernel, everything else is a lower priority.
    • BugTraq [securityfocus.com] and other security lists. What they are and why they should be monitored.
    • Application security patches. Like kernel upgrades, guidelines on why and when production apps should or should not (or must) be upgraded.
    Also important would be a good understanding of how to set up a backup regime. This should include topics like:

    • tar [gnu.org], and it's more esoteric options, such as multi-volume tarfiles, dump levels, etc.
    • Rotation schemes [vic.edu.au]. What is Grandfather, Father, Son? Why is it important to do this? What is the difference between a differential and an incremental backup?
    • Backup media. Redundant hard drive? CDR? DVD-R? Tape? Onsite vs offsite?
    • Recovery procedures. Ok, you've got a backup. What do you do if you need it? You have tested the tapes, right? :)
    Some thought on a disaster plan might be a good idea too.

    grnbrg.

  • by Singletoned ( 619322 ) <singletoned@gmail.com> on Thursday September 02, 2004 @10:53AM (#10138820) Homepage
    Write up your course and release it on the web under a Creative Commons license so that the rest of us can also use it to learn/teach and so that we can improve upon it for you.

    You know you should ;)
  • some handy things: (Score:3, Insightful)

    by focitrixilous P ( 690813 ) on Thursday September 02, 2004 @11:20AM (#10139194) Journal
    a working knowledge of vi and/or emacs would probably be helpful. at least enough to edit files and save them, and maybe a couple tricks.

    the basics of installing new programs for whatever distro you train them on

    bash / other shell usage

    And the most important to any linux user:

    Nethack. How to move about and kill grid bugs, stairs, not to attack dragons, etc...

  • Crash (Score:4, Funny)

    by !the!bad!fish! ( 704825 ) on Thursday September 02, 2004 @11:37AM (#10139452) Homepage
    I think a linux crash course should include:
    Kernel Panic &
    Segmentation Fault

  • -- learn what to do when you reboot and your ReiserFS comes up read only

    -- research hardware problems (yes, of course i knew i had to unplug my PCMCIA NICs, load the appropriate modules, and then repeat the procedure later...)

    not that i'm bitter.... had to go back to Win2k due to some work arriving in but i will return gentoo and dammit you will work!!!

    *grovelling* tho if someone could explain the filesystem problem for me that would be great...

  • Documentation (Score:3, Interesting)

    by Spoing ( 152917 ) on Thursday September 02, 2004 @11:57AM (#10139750) Homepage
    If you don't have policies and procedures, you might want to start there and slip the Linux-specific stuff in as an implementation of them.

    I don't mean creating and enforcing ridgid doctrine, though.

    Here's an example -- if you've never done this or need a refresher;

    1. Backup procedure;
    2. Log the status of all network-based backups in the book (paper journal).
    3. Schedule backups so that they occur regularly including moving backups to an off-site location.
    4. If a system is added/removed or failed to be backed up note it in the book.
    5. If a system can't be backed up over the network or does not require backup, note it somewhere.

    The tool(s) used are up to the admin and training in them should be direct and simple. The people who are new to the tools should be given resources (books, notes, and someone experienced to talk to). That the tasks are being performed at all should be easily verifiable. Keep it simple as possible so that it actually gets done, though have it just formal enough that someone else can figure out what should be done -- not necessarily be told how they should do the job.

  • I know they are lame books, but when I wanted to start learning Linux, I picked up "Linux Administration for Dummies" I read the thing through and it helped a ton. I would also agree with an earlier post to relate things to what ever OS they are used to. It took me weeks to figure out that there was no C: and D: trees. Thirdly I would make sure to cover the basics, and get them used to the command line. good luck.
  • ... of Windows software in Linux should be used in the course. (assuming they are windows users)

    http://www.google.ca/search?hl=en&ie=UTF-8&q=progr am+equivalents+linux+windows&btnG=Google+Search&me ta=/ [google.ca] After all, it is mostly about the applications right?

  • by swillden ( 191260 ) * <shawn-ds@willden.org> on Thursday September 02, 2004 @01:35PM (#10140968) Journal

    In addition to the other good stuff that has been mentioned (file system layout, key config files, etc.), I think a very important thing for anyone who needs to administer Linux/Unix systems to understand is a bit of shell scripting. They don't have to be able to write scripts, but being able to read them is immensely valuable, because so much of how the system works is held together by script glue.

    And there's one particular part of the system that is both very important and almost entirely scripted: The boot process.

    It's hard to overestimate the value of understanding the boot process. Nearly any kind of system problem can be traced down by first figuring out where the process in question got started, how, and with what parameters. Don't know what files you use on this system to configure networking? Look at the boot scripts. Don't know where X server messages get logged to? Look at the boot scripts. Don't know what parameters are used to start apache? Look at the boot scripts. And so on.

    In addition to being a basic troubleshooting tool, understanding the init process does more than anything else to "de-magick" the system. When you see how simple the boot process is, and how everything gets started up, you suddenly understand that there is no magic here; everything is out in the open, visible and understandable. In my experience this knowledge does more to build confidence in new Linux admins than anything else, because it lets them know that whatever goes wrong, they can dig down and find out why. To Windows users/admins, this is a revelation of huge proportions, because they're so used to thinking that stuff just happens magically and they have no real visibility into it or control over it.

    I think building their confidence is important, also. Unless they're really gung-ho about the whole idea, they're probably going to be frustrated from time to time by the fact that this environment is not what they're used to. Giving them the understanding that they have the tools to figure out and fix just about anything should go a long way to compensating for the discomfort of a different environment.

    • I resent that.

      As a Windows admin with complete and utter control and understanding of everything my box does, and why, I will indeed grant you that Windows does *allow* you to believe it's all magic.

      It does not, however, keep you out of the nitty-gritty if you're willing to go looking for it. Tools to see startup items and their properties, tools to directly manipulate the LDAP database and XML schema of an AD domain, all exist.

      If anything, MS admins have to be better problem solvers than Linux admins --
      • I resent that.

        Chill, man.

        As a Windows admin with complete and utter control and understanding of everything my box does, and why, I will indeed grant you that Windows does *allow* you to believe it's all magic. It does not, however, keep you out of the nitty-gritty if you're willing to go looking for it.

        I'll grant you that you have a lot more understanding and control than most Windows users or even most Windows admins, but Unix takes this to a much higher level because it was designed to be open

  • Its real nice to point and say 'please consult the excellent documentation', but a total newbie probably doesn't even know what they are looking *for*

    Teach them:
    File system stuff- where, how- make a new directory, find a file, check permissions
    - permissions- look at and change
    -mounting devices (start above with 'Linux sees everything as a file system'), unmounting devices, names of devices
    - text editors. vi, emacs, whatever. start from the gui of your choice and show them the equivalent of notepad (Kate, g
  • I've been looking to train a replacement, and therefore have been thinking about this a lot. The most important "skill" is maturity. They need to be mature enough to prioritize tasks, handle the responsibility of keeping data secure, and not tinker with things too much.

    As a sysadmin I've had the opportunity to work with, or closely observe the work of, about 30 other admins. The ones who do well are those that have a healthy respect for the system. I try to keep my setups as default as possible. Any change must have a good reason. This keeps things more stable (defaults are better tested) and easier for my replacement. The "problem" admins are the ones that can't resist tweaking everything. Yes, they might get a 1% performance boost, but they're also more likely to generate system instability.

    In terms of priorities, there are a few basic rules: #1 priority is security, #2 is stability, and #3 is performance or other user requirements.

    Finally, there's the concept of structuring the environment. Think about dependencies. Try to consolidate services so there's a single point of failure. This means not having multiple fileservers with crossmounts. Running a single OS/distribution will make your life a lot easier, assuming your shop doesn't require the diversity.

    As others have said, there's a lot you can teach them about how to read manpages and use google, but without the basic philosophy of how to be an admin, all their knowledge will probably just lead them to manage unstable systems.

    • While I agree that running a single OS can make the admins' life much easier, if you really put security as #1 priority you should better not run the same software everywhere.
      • if you really put security as #1 priority you should better not run the same software everywhere

        I think you're confusing security with ability to stay up during a crisis (stability). Yes, if you're running a webserver farm, it's good to have a spread of OSes to keep them from all dying from the same thing. But that's a stability issue, as the concern is keeping them online, not keeping intruders out.

        The more common case is to have a few machines that users log in to. If those machines are all the sam

  • Learn to learn (Score:4, Insightful)

    by UrgleHoth ( 50415 ) on Thursday September 02, 2004 @03:41PM (#10142350) Homepage
    In three days, you are not going to get anything except the abolute fundamentals to stick. Since we all learn by hanging new knowledge on our existing experiences, the best you can do is show them how they can use resources at hand such as books, web, ask slashdot ;) to teach themselves. Any specifics should be directly job related.
  • make a wiki (Score:3, Insightful)

    by discogravy ( 455376 ) on Thursday September 02, 2004 @03:56PM (#10142499) Homepage
    make a wiki out of your course. others have suggested making it a creative commons licensed thing, but if you make a wiki, users can pick and choose what they want to look up right-quick, as opposed to googling for a FAQ, then having to tear through the whole thing for the answer to their question; a lot of times, a user encountering a problem will not know what the proper question is. an example entry for permissions (on ext2/ext3 FS's) would link (or explain) lsattr and how some files can be immutable even if you're root and it's on a writeable disk/dir/location with proper permissions.

    example configs with thourough documentation would be most edifying, of course. a friend of mine has a FreeBSD wiki (still a work in progress, i'm sure that when there's more content he'll want to make it more well-known, but for now, no link) and it's been quite handy and I've seen how useful it is to find something right away with no-nonsense answers.

  • You mean a course on when Linux crashes? Perhaps a boot disk HOWTO, or suggestion on configuring grub with mulriple kernels....
  • One resource you should check out and possibly incorporate is the Infrastructures.Org [infrastructures.org] practices for reproducable configuration management.
  • Seems strange noone has mentioned it but you should teach them how to download source code and build it. The ol' tar zxvf, configure, make, make install steps. Teaching them how to administer patches too would definitely be relavant.

    Furthermore you should give them some tips on troubleshooting. Ie searching google and IRC for tips and advice. Knowing where to turn to for help is _very_ important. Also make them read he "How to ask questions" guide. This way you won't have them suffer humiliation fr
  • there used to be an o'reilly book - essential system administration. billed as the book you need when your admin isn't around. dunno if they maintain it, but it was great back in 1995.

    to encourage them to learn, show them the intro man pages - man 1 intro; man 2 intro; man 3 intro; etc.

    • Essential System administration is in fact still availabel, recently (2003?) updated even...and its a *great* resource, very thorough but I wouldn't recemmend it to just anyone. its very dense and dry, and it goes into pretty good detail on a lot of things.

      S
  • linux.org/courses (Score:2, Interesting)

    by olscratch69 ( 697288 )
    Speaking as someone who is fairly new to world of linux based operating systems, I would suggest the courses on www.linux.org. They are based on a debian system, but most of the basics for all linux systems are there. I learned more from that then any other information I have come accross so far. First take a look at yourself and see what you would like to stress as important and go over those sections in the time you have with them. Then you can give them some homework by having them go over the course
  • along with your course, I think you would be smart to send each student home with a copy of Knoppix [linuxiso.org] so they can play around on their own time. If they're like most tech people, their computer use won't stop when they leave work, and knoppix would be an easy way for them to explore linux on their own. as most computer users will tell you, exploration is the best way to learn
  • Apparently, cd.. is a shell built-in or something on Windows that does the same thing as "cd ..". I recently got my coworkers to try Knoppix at home, and they said it took them a while to figure out what was "wrong". Either wean them off it quickly, or show them how to alias it in .bash_profile.
  • 1) If you have a programmer and a technician in the year 2004 who have absolutely no experience of open source, then you, and they, have a problem. The best way to "learn" "open source" is to have an interest in it, without interest, you cannot learn. Seeing as open source is a logical progression from just about any IT platform around, this should not be a problem. How you can be a programmer or a technician in this day and age without ever having used linux (at least once) completely escapes me.

    2) 3 da
  • I think perhaps the single most handy (and most used) program on my Linux box, INCLUDING INIT, is PS, specifically PS AUX, and it's partner KILL -9.

    When I brought an older computer back from the dead with RH 7.1 one of the first things I taught the guy it was for was how to call up a terminal and use PS and KILL. Because sometimes, rarely but often enough, something will crash on you and you need to know how to kill it and where to look to do it.

    Example: Xine crashes on me all the frickin' time. So I kill
  • http://www.google.com/linux That should help them out a lot. Also, be sure to teach them the basics of networking and how to set that up. For example, if these are clients on a network, be sure to explain the difference between Static IP and DHCP, as well as how to set each type up.
  • Basic Linux Training Course
    The Basic Linux Training Course is an online introductory level course written specifically for those coming from a DOS/Windows background, without any knowledge of Unix or programming.
    http://www.basiclinux.net/
  • I have read many good suggestions, having come from stricly Windows myself sometime ago, 3 things were indispensable to me
    1) learning how to question either searching through man or on teh web
    2) software installation / compiling kernel ( let them install the OS on the computers you have set aside / it'll breed familiarity very quickly. )
    3) tell em not to fight the OS, that was my biggest obstacle. Rembering that I was in control of the OS and not pointing it where I wanted to go. Here is a good analoy, Wind
  • The biggest problem I've had in indoctrinating myself in Linux isn't finding out how to do something but in seeing the larger picture of how things interrelate. I'm also a big fan of the whole O'Reilly series, what would be cool would be a Linux Cookbook with scripts that analyze configs or monitor potential problems. I can always turn to the web and geek out on JFS internals or bash commands but that only answers the small questions. I'm not a kernel geek but things like how to recompile your kernel with a
  • I have a few courses that I teach here in the Netherlands, feel free to browse them online (I have the slides freely available).

    http://www.schabell.com/course

    Good luck and feel free to contact me,
    erics

The biggest difference between time and space is that you can't reuse time. -- Merrick Furst

Working...