Teaching Linux/Unix Basics to Microsoft Junkies? 570
flupps asks: "I've been asked to hold a two-day crash course in a class of students that currently are studying to become MCSD certified. I'm looking for ideas how to set this up. I was thinking about starting with some general file system descriptions, where to find what files, the man pages, the tab-button, etc.
After that move on to some of the daemons and just explain what they do." He's got at least one idea to start with (below), but what must-have skills or demonstrations would you add?
I also plan to set a database program in VB (one of the certificates in the MCSD suite) against a MySQL or Postresql db and show that there are free alternatives that works as well as SQL server.
What would you think could be a good addition to teach them?
This is in no way meant to be a very advanced course, but I want to show some of the excellence of *nix and why you sometimes can save time and stability and maybe make them interested and read up more by themselves afterwards.
Any suggestions very welcome.
Re:Do you type 80 WPM? (Score:3, Interesting)
One thing that Windows based users think of Linux users is that they are pretentious and cocky when it comes to using computers
By zooming around and doing the amazing things one can do in Bash (I am a big fan), you simply alienate them, and push them away. It almost says to them "ha, ha, you CAN'T DO this." That's poor teaching. The message you want to convey is "You can do this too, and it's not too tough."
Another angle (!): Ever tried installing Cygwin/SSH on a Windows 2000 box? I have it running on a machine or two, and if you have the HOME set to
SSH/X-forwarding (Score:3, Interesting)
A few thoughts. (Score:5, Interesting)
* Open a relatively complicated page in MSIE, the same page in Mozilla-win32, and the same page agin in Mozilla-linux. Go to a bunch of annoying web sites, with Mozilla's pop-up/pop-down filters enabled.
* Use ssh to log in to a box halfway across the world. Demonstrate some simple system administration tasks, and the fact that anything you can do at the console you can also do remotely, via ssh.
* Run either Gnome or KDE. Change the themes, a couple of times, demonstrate the customizable UI. Switching between one of the mac Aqua-like themes, some star trek theme, and one of the Winxx-lookalike themes should be very effective.
* Install a distribution in server mode (no X11). Demonstrate the extreme modularization of Linux, such as you can complete get rid of all GUI support, and use only the disk/network services to turn a box into a network appliance.
* Install Windows and Linux on the same box. Boot into Linux; then mount and browse Windows partitions. Make a casual remark that Windows cannot browse Linux partitions in the same way.
* When the Linux box boots up, and is busy going through the initscripts, starting all the services, explain that if one service fails to start for some reason the boot process will continue and the machine should still be mostly usable. Ask if anyone experienced a situation where a Windows driver kept croaking during the boot process, and what happened alter.
I recall an incident about three years ago when UMAX shipped a buggy driver for their scanners. The driver was faulting on machines with USB ports, and CPU speeds over 400 Mhz (something about some timing loop), forcing a complete crash during the Windows boot cycle, with the subsequent reboot falling back into safe mode.
The Linux equivalent for this would be something like SANE, which runs completely in user mode, and therefore cannot crash the entire OS.
* Use samba to browse the local windows network neighborhood.
* If you have a fat pipe, forward X11 over ssh, and run remote X applications on the local terminal.
* Install a base distribution package right out of the box. I'll use Red Hat 7.2 as an example. Apply all the errata to bring the box up to date, except for the kernel, without rebooting. Even install a new version of glibc (the equivalent of msvcxxrt.dll) without rebooting the box. Install a new kernel on the remote machine, make sure that LILO or GRUB is all set up, then remotely reboot the box into the new kernel.
An excellent book (Score:4, Interesting)
It helped me over the hump when I became serious about learning Linux, and I use it as a resource still today. Even if you don't use it as a guide for your class, I'd highly recommend that you mention it to your students.
--SC
What you teach depends on what they need, doh! (Score:2, Interesting)
So the next thing is the outcome you want. Why are they being taught? Whose idea was it? Is it just for information, or are they supposed to be able to DO something with this new knowledge they are supposed to be acquiring? Is it just a general awareness class or what? If you don't know that, you haven't a chance in hell of getting it right.
Once that's known you can figure out what you want to introduce them to. There are some materials you might care to use free for download from http://www.linuxtraining.co.uk if that helps you with some training notes.
As someone who makes part of his living from Unix and Linux training (the former for 25 years, the latter for 5 years) I'll happily share my experiences of introducing Microsofties to things like the command line and the intricacies of Linux.
They will be impressed by networked X - I save that for the last couple of hours, since people typically remember most about the last thing they saw and you want to leave a good impression.
The filesystem won't be hard for them, neither will NFS. They will keep asking about domain authentication, but I'd steer clear of NIS
The most important thing I can say is that they will HATE HATE HATE anything command-line oriented. The fastest way to lose them is to start harping on about it. The really bright ones will pick that up for themselves later, but for the introduction, use something like SWAT for Samba admin - webmin will do that and most other things too. I can't emphasise that enough, it's based on real-life experience.
The rest of the class plan you will have to pick when you know what you are trying to get them to do when they leave.
Finally, don't try to teach too much. Two days is VERY limited, the best you are likely to do is get them interested and reduce the fear level. To get people through even basic stuff like LPI 101 and 102 is around ten days of classroom and exercise sessions. In two days they can only get a taster. If you haven't taught in this kind of situation before, you will be astonished how little can be covered in two days from a standing start
Best of luck!
Mike
Re:A few thoughts. (Score:2, Interesting)
Another thing: Some facts you can tell them over and over again like "do not use telnet, it's fucking unsafe, use ssh", but if you do not demonstrate it or let them explore it, they won't understand the importance. So proof your statement using tcpdump (they will love it!).
Keep them interested. (Score:2, Interesting)
- very
certain data from an often used program on your server to, say, a log file or even another program. Try to make it look as easy as possible, emphasise that it can be done with any program, any file. Stuff like that cannot be done with any microsoft OS unless the programs are written or re-written specifically for the purpose.On top of that, when you have them doing something on their own, be doing something on your own computer (X running, blah blah blah) that would amaze a windows user. Use enlightenment with a really good theme while doing something that has to do with class or even just burn time. On the off chance they see what you're doing, they might start looking at Linux as being more and more attractive;)
Of course, this might not work, the students having less care for anything else other than Microsoft, their souls having been sold to them and all :-P
ESR's Drag.NET (Score:2, Interesting)
ESR did this piece about setting his wife (a windows-junkie-lawyer) up under Linux/KDE
bemis
-The fellow who thinks he knows it all is especially annoying to those of us who do. - Harold Coffin
cat is not useless (Score:2, Interesting)
Yes, cat causes a bit of overhead. However (and I have a PII/266), it serves one excellent purpose -- if you habitually use cat, you don't have to worry about the syntax of the next command in the pipeline. Maybe it accepts a file, maybe it doesn't, maybe it's some wrapper script that doesn't accept a file...for one liners, using cat is a *good* habit to be in. You don't have to constantly check man pages, documentation, or "try it and see if it works".
I think most of the "useless use of" complaints in UNIX that USENET people like to mention to show off their UNIX leetness are just stupid. Skimming down this page [helsinki.fi], I see:
Useless Use of kill -9: Okay, you should always use TERM first. However, spending more of your valuable time trying three or four other signals before kill -9 is just stupid, however (unless it's netscape, which oddly enough can sometimes be axed with QUIT).
Useless use of echo may be more legitimate *but* you may be planning to do something more extensive:
command -options `echo $variable|seds/foo/bar/`, for example. You can't do that with just
command -options $variable
The useless use of ls * really is useless, IMHO, because it frequently has unwanted side effects...you'd need ls -d * to get equivalent behavior to ls.
They get cranky about using grep foo |wc -l instead of grep -c foo. Who *cares*? Frequently grep is not the last element in the pipeline. If you're in the habit of using wc -l, you don't have to worry about the preceding item, even if you decide to insert a new item into the pipeline before grep and wc.
The complaint about using grep + awk is just stupid. grep is significantly faster than awk, anyway.
Re:the best combo IMHO (Score:3, Interesting)
* In XP, tab completion is on by default.
* There's also a built-in utility called findstr, which offers many options that find does not.
My experienses with windows nerds (Score:3, Interesting)
The first time I used Redhat 7.2. It turned out to be a mistake. The next time I used mandrake 8.2 and that worked well.
The graphics seems to impress more than the cli.(Unfortunately) Things that you as a unix person are impressed by dont work well for windows people. This was a real problem for me as I use the cli for most of my work. You have to learn to use the kde tools like konqueror and kwrite.
In 2 days you wont be able to do much more that show them the power of Linux. You need at least a week.
Here are some of my tips based on the experiences that I have had.
Make them install mandrake with a full graphics install with dual boot.
Show the wizards and control center
Show them X -query and rdesktop.
Windows people seem to prefer kde to gnome but dont forget to show them choice. Install both so you can show them evolution.
Also the web admins really impress them. (Swat, webmin and cups)
Mandrake has a beta of Staroffice (silverclub members only). Get it. (email me if you want it)
Dont even bother showing vi. Somehow it doesnt work for windows people.Use kwrite instead.
Make sure you install all the games. During my course the games really got them going.For some strange reason "frozen bubble" was a big hit.
Teaching the students the cli with commands like grep, cut etc. didnt impress much until they wrote their first script. I had them write a simple menu to start different commands. Then they understood the power of unix.
Get them to run ssh to each other. For windows admins this is very impressive. Installing kiofish in kde is also impressive.
If you want my course material, I'll be happy to send it to you. Its in swedish and not that good but you could send it through babelfish and get som ideas. Its for the cli so it wont be useful unless you can increase the course to at least 5 days.
These are some of my experiences. Hope they help you.
Regards kenneth karlsson
No need to reboot (Score:2, Interesting)
Where to find help -Confessions of a Win 2000 user (Score:3, Interesting)
I have been teaching myself how to use Linux over the last week.
I have been running Ipcop as a firewall for a few months and getting into the shell and poking around finally got the better of me and I decided to give Linux a good go.
My goals were :
SO far I am doing well. I had some Red Hat 7.1 CDs and have that running. Gnome and Enlightenment work for me, although I am mainly using enlightenment as it is a pretty crappy machine. I got Samba to work so I have a share set up in my Windows workgroup. I have Apache running. I have VNC Server and SSH running so I can do it all from my Windows Laptop using PuTTy and VNC (the only spare monitor I had was really crappy).
The only thing I have left to do is configure PHP and a database and I am happy.
But I do have a point....
The most important thing I have learned. Is Google Groups search is your best friend. There are so many little quirks and pitfalls for someone setting this sort of stuff up by themselves for the first time. No tutorial can cover them all. Teaching people how to find answers is the best lesson of all. Especially when it is 1am and they have just managed to completely stop something from running (Samba, X etc), it is important to know how to get an answer when you have no one holding your hand.
End of the story....I am loving it! If most of my computer use didn't involve SQL Server I could see myself switching.
Re:DOs and DON'Ts in my experience. (Score:2, Interesting)
Even think about compiling anything.
Hello? These people are studying to be MCSD? They are developers! This is what I would concentrate on. Show them the power of Unix development tools! They will be utterly amazed at how much flexibility the Unix development tools give them if they are used to using Visual Studio.
My suggestion:
Basic Commands and their syntax
File permissions
Text editor(probably emacs, vim scares a good many newbies, even though it is superior.
And for god sakes, show them the difference between compiling code in windows vs unix and how much more control they have over the process. Show them how writing code yourself actually is a good idea! I cannot stress enough that this is the type of stuff an MCSD should be getting queued in to. It is likely to be what would really interest them about unix.
best project (Score:3, Interesting)
But what really fused my interest and admiration for linux was configuring a dedicated router on outdated hardware. There are quite some "linux router on a disk" projects out there, look for Coyote, FreeSCO or FLI4L (which is maintained by bunch of german guys).
Get your people to setup a working design for a linux router. The beauty of the project is that they can just make a boot disk, reboot the box they are working on and test it for real. The simplicity of the projects has quite some advantages - it takes out the "cluttering" some distros have (as in having
These systems are probably all you need to teach the basics of piping and redirection, the
Excuse me for praising FLI4L here, other router distros are probably just as good, but FLI4L has the flexibility to astonish even people like me.