Slashdot Mirror


Teaching Linux/Unix Basics to Microsoft Junkies?

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.

35 of 474 comments (clear)

  1. the best combo IMHO by Gavitron_zero · · Score: 5, Insightful

    is teaching cat | grep . I don't think I use any command combo more than this other than ls -al. Piping and redirection is really important stuff for Microphiles to learn right away. It's a great way to show off the power of a CLI.

    1. Re:the best combo IMHO by WWWWolf · · Score: 4, Funny

      Here in technical circles, cat | grep is known as useless use of cat =)

    2. Re:the best combo IMHO by macpeep · · Score: 5, Informative

      I'm not saying that the Win NT / 2K / XP command line is as powerful as a UNIX one, of course, but:

      1) Windows has tab completion. It's just not turned on by default. (Do help cmd from the shell in Win 2K (at least) to get a description of it. You can also configure the completion char to something other than tab..)

      2) cat exists, it's called type

      3) grep exists, it's called find. If find isn't sufficiently powerful for you, you can always get grep for Windows.

      4) piping and redirection works more or less exactly like in UNIX with the same syntax even

      Of course all of this stuff isn't as commonly used on Windows as it is in UNIX, but it doesn't mean that it's not there.

    3. Re:the best combo IMHO by weave · · Score: 3, Informative
      This is all true but a lot of useful information isn't available easily from the CLI without hunting down additional tools from resource kits or learning some scripting languages and all the COM interfaces or whatever it is called.

      For example, I had a devil of a time figuring out how to do something simple like "quota username" to see how much quota someone is using without right-clicking the drive, picking quota tab, waiting to resolve 15,000 SIDs so I could find the username I was looking for. There is a perl script in the resource kit, but it runs forever (I stopped it in frustration after 15 minutes) since I assume it's trying to resolve SID to usernames and our NT domain controller has 15,000 accounts... (the server in question was a w2k member server, of a NT 4 domain).

      But to get back to topic, I don't understand why. It's not easy moving from unix sys admin to windows or visa-versa. That's mainly why each camp hates the other platform. I'm more comfortable with UNIX admin, and I'm sure if I had the time to invest in learning Windows admin, I could easily throw the needed scripts together to get what I need out of the box.

      Two days isn't going to cut it. Just go over basics in philosophy and try to avoid platform wars..

    4. Re:the best combo IMHO by quintessent · · Score: 3, Interesting

      BTW:

      * 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.

    5. Re:the best combo IMHO by soloport · · Score: 5, Informative

      Start with the familiar:
      1) Install a distro (preferably one that will have the easiest time with the hardware)
      2) Configure a windowing environment (prefereably one that looks the most like Windows)
      3) Show them an Office suite (preferably one that's comperable to MS-Office)
      4) Fire up some awesome games (preferably XPilot ;-) or LBreakout)
      5) Start up a variety of browsers (preferable w/ Quicktime, Flash, RealPlayer, XMMS)
      6) Configure and use an e-mail client, Jabber/Yahoo/AIM client (Gaim's good)
      7) Spend some time on XMMS with various skinns -- and point to http://www.jazzradio.net/ and say, "This is coming from Germany"
      8) Show them Palm Pilot support (Jpilot's the best)
      9) Show them Quanta's HTML, PHP, SQL, Java and C/C++ syntax coloring
      10) Show them a GUI file manager (e.g. Konqueror, et al)

      Last, but not least, show them SWAT, Webmin and other easy-to-use administrative tools. You want to leave them with the sense that the Linux environment will be friendly, not ominous.

      Let them at least start with some motivation to want to learn more!

  2. Software Installation by Apreche · · Score: 5, Insightful

    Make sure you teach them how to compile and install software. When I first learned *nix I learned how to navigate the file system, run things, edit files, move things around, etc. But it took me like a week to figure out how to install and set up new software. I remember having the hardest time with it because every single piece of software was different. There was no standard setup.exe or *.rpm all the time. I had to make, make install. And that didn't always work either. That, imho is one of the major differences and difficulties there is in moving from windows to *nix. In windows once you've installed one piece of software you've installed them all.

    --
    The GeekNights podcast is going strong. Listen!
    1. Re:Software Installation by bilbobuggins · · Score: 3, Insightful

      yes, this and configuring software before and after you install it. i remember one of my hardest hurdles to get over was that windows had gotten me used to the installer always asking me questions.
      'would you like XYZ support?'
      'would you like the ABC option?'
      where as installing under *nix is a self motivated process, i.e. if you want it, type it into the conf file yourself or pass it in as a param when you make.
      the windows culture is one where you wait for the program to point and prod you, whereas under *nix you have to know what you can do before hand and then choose accordingly.

    2. Re:Software Installation by mickwd · · Score: 5, Insightful

      Sorry, but I can't agree about compiling stuff for a basic *introductory* course.

      Firstly, it'll scare them, and secondly, all that most people will remember is that they HAD to compile stuff to get the operating system to work. Management in their place will get to hear about it, and this impression about Linux will stick.

      For a basic course, yes, you could show them how simple it is to install, say, RPM packages (or deb equivalents, I guess) - and how to remove them (often a messy experience on windows). Show them that the compilation is often already done for them. You could even show them "rpm -ql" and "rpm -q --scripts" to show them that they can find out *exactly* what will happen when they install and remove stuff (and without reboots, too).

      Show them KDE (maybe even KDE3.0). You might not agree with me that it's currently the best Linux GUI environment, but it is the most like Windows. Want to show them 'man' pages ? Show them man:/command_name in konqueror. Show them the big things that are good about KDE, and also the little things that are good about KDE (e.g. middle-button clicks on scrollbar regions to move the scrollbar there in one operation).

      Show them how to cut-and-paste using the mouse. It's different to how it's done in windows, it works between KDE and Gnome apps, and it will stop them thinking they can't cut and paste in Linux. Show them there are other editors than 'vi' and 'emacs' - editors beginners can use easily.

      Show them the command line, that's very important, but don't go overboard - don't reinforce their views that the command line is too difficult. Show them some simple, powerful stuff. Stuff like 'grep', 'ls', piping commands together... Think of examples that are simple on Linux/Unix, but very difficult to do on Windows.

      Don't give them too much unnecessary info about how daemons work, where config files live, etc, etc. This is an *introductory* course. Just let them be assured that it all works. Get them enthusiastic. If they are, they'll get hold of copies for themselves, and start finding out more for themselves - but you have to build that enthusiasm, put their fears to rest, and show them things they can do more easily (or better) in Linux than in Windows.

  3. gone fishin by yack0 · · Score: 5, Insightful

    instead of doing like MCSE and giving them fish, teach them how to fish.

    "This is /etc - it's where most of the config files are.
    This is /usr/bin - it's where most user programs live
    This is /usr/sbin - it's where most superuser programs live

    If you're interested in using a command and don't know how, use 'man command' and get them familiar with how to use commands. "

    You've got two days - so some basic 'how to get info' and then examples of getting that info, would be good.

    Possibly a run down of 'in Microsoft, you have IIS, in Unix there's apache, ftp, etc'. 'In MSFT, you have ipconfig /all - in unix we have ifconfig' some basic translations of basic stuff.

    How about running through the 'Administrative tools/Common' menu in 2000 and showing them where all those toys live in *nix - or where they might be able to find them.

    But make sure you teach them how to fish for themselves - I suppose MSFT has the help pages, but man pages are our best equivalent. Or homepages for the package in question where applicable.

    Good luck!

    --
    -- There is no sig line, only Zuul.
  4. There is no hope! by lizrd · · Score: 3, Funny
    where to find ... the tab-button, etc.

    If they can't manage that on their own, there's no hope at all.

    In a more serious note, I'd try to focus on the similaraties between cmd.exe syntax and bash/sh syntax and possibly get a bit into basic shell programming.

    --
    I don't want free as in beer. I just want free beer.
  5. Keep it simple (and don't oversell mysql) by mgkimsal2 · · Score: 5, Insightful

    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.

    I would qualify that - you'll probably have at least one person in the group who's up on MySQL and/or PostgreSQL deficiencies (yes, they have them). Don't try to convince them that MySQL can be a drop-in replacement for SQL Server 2000. Both MySQL and PostgreSQL *can* be used in many situations, and should be considered along with other options re: price/performance, but don't go overboard and talk down to MS people saying MySQL is as good as (or better) than SQL Server. It does a disservice to everyone involved.

    Covering RPMs and/or apt-get technology might be useful at the end of 2 day overview.

    What would help more than anything else is showing people where/how to get help - online resources (RPMfind, for example) and whatnot. There's only so much you can cram in to two days - don't overdo it. Cover the basics in detail, and give resources to visit afterwards for people who want to learn more and/or experiment.

  6. SSH/X-forwarding by OblongPlatypus · · Score: 3, Interesting

    Just show them the beauty of ssh and X-forwarding. It never fails to impress my Win/Mac-using friends when I run the latest version of our Java project application directly from the unix server at school.

    --
    -- If no truths are spoken then no lies can hide --
  7. A few thoughts. by mrsam · · Score: 5, Interesting

    Here are a few random suggestions, in no particular order.

    * 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.

    1. Re:A few thoughts. by Sycraft-fu · · Score: 3, Insightful

      "Aahhhhhh!!! Passwords in plaintext."

      No, not with the Windows telnet server it isn't. By default it's set to use only NTLM authentication, which is encrypted. You can set it to accept plaintext as well but that's not the default.

    2. Re:A few thoughts. by Sycraft-fu · · Score: 3, Informative

      That I don't know. I'm assuming it's just the L/P. I think that is done out-of-band via NTLM and then the rest is plaintext. Probably it's a better idea to jsut downlaod an SSH server for Windows. There are free ones available.

  8. An excellent book by SpookComix · · Score: 4, Interesting
    I was born and raised in Microsoft land (MCSE since 1999), and although I've been playing with Linux for several years out of curiosity, I didn't get serious about it until a year ago. I've seen hundreds of books on Linux, and own several myself, but the one I recommend hands down over all the rest, especially in your case, is "Linux Administration: A Beginner's Guide" by Steve Shah. It's written specifically with your kind of users in mind. From the blurb:

    Steve Shah writes to the millions of people who are familiar with Windows (and perhaps NT and/or 2000) but not with *nix. (He's even provided a 16-page blueprint section comparing how to perform common tasks in Linux and Windows 2000.)

    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

    --
    You read fiction? I write it! Lemme know what you th
  9. Re:GUI vs CLI by 3seas · · Score: 3

    There is the third UI that is hardly standard and user frendly or accessible. The side door port to controlling an application external from it's UI.

    With the three you can begin to create automations regardless of what level of computer use you are at.

    It's like having the three primary color of the rainbow and with them being allowed to create any color of the rainbow, but take away one and you are greatly constrained.

    User Interfaces are like that, we generally only have two available, if even that, on the windows box but even Linux has a hard time providing a standard 3rd UI to applications, devices and libraries.

    Watch out, wait to long and MS will figure this out and get the jump on it. That would be a shame.

    Want to convert MS user to Linux? Then give them highly productive tools they cannot find on their windows boxes. And that would include general automation tools friendly enough for anyone to use.

  10. Re:Show them the possibilities by carm$y$ · · Score: 4, Informative

    Show them the ease of modprobe, the powerfulness of iptables,[...] mounting of ISO-images(!). [...]Inprint in their heads that the machine does not need to be rebooted after updates and installations, ip-adress-changes and change of configuration.

    They are developers, for crying out loud. They'll start running after 5 minutes of iptables; why not show them gcc?

    Show them the [...] the geniality of config-files, and NO REGISTRY.

    Look, config files in /etc, /etc/sysconfig, /etc/$SOFTWARE_NAME, /opt / SOFTWARE_NAME, /usr/etc, /usr/local/etc, ~/.$SOFTWARE_NAME, /usr/share/$SOFTWARE_NAME ... but no registry. Woot!

    Don't get me wrong, I'm a 100% unix guy; but it seems to me that exactly this kind of arguments makes people stay away from linux. You don't have to crush Windows, you have to give them reasons to make them beleive in linux, and to want to hop in the wagon.

    --
    -- No sig today
  11. Do they know DOS? by dsoltesz · · Score: 3, Insightful
    If these Windows users also know DOS (I don't know if that's a fair presumption) one approach is the Unix Guide for DOS Users approach -- give them a list of the basic commands and their Unix counterparts. That combined with man/info can certainly give them a jump start. (Unfortunately, the book I'm thinking of appears to be out of print.) As for the basics, Windows users will appreciate knowing how to (ab)use ln.

    I'm also assuming they don't need to know how to set up and install a system, just be a user. They should know how to configure their own environments, set environment variables, etc. System stuff should be limited to the software they might be using and managing -- where are the logs and conf files, how to install, and so forth.

    Free alternatives to costly software is a great idea. What about a brief discussion of Apache, JavaServer/JSP, Xerces, Xalan, etc? No need to get into the nitty gritty, but let them know there are free, multiplatorm alternatives to everything. My alternative to Visual Studio is Visual SlickEdit.

  12. Start by making a unix/dos command page. by t0qer · · Score: 3, Insightful

    One of the things that helped me out was a page I found that showed me the unix equivalent of dos commands. It looked sorta like this.

    DOS Unix
    cd cd
    md mkdir
    rd rmdir or rm- f -f
    type cat
    more more
    attrib chmod
    edit vi, pico, emacs

    Do this for the filesystem too. initab and rc.d are like autoexec.bat and config.sys. It will be tons easier for them to learn if they already have a foundation to build on.

  13. The Unix Philosophy by rubinson · · Score: 3, Informative

    You've only got two days and from what it sounds like, students are being forced to attend so they're not going to want to be there. They're not going to learn much unless you peak their interest.

    I'd suggest teaching them the basics of the Unix philosophy - small is beautiful, make each program do one thing well, avoid captive user interfaces, etc. If you don't already have a copy, pick up Gancarz's The Unix Philosophy which describes the various tenets clearly and concisely. (Hell, if you're allowed to or have a budget, make the text a required purchase. It's cheap.)

    Something like this would be far more useful than 'ls|grep' or "/etc is where system-wide configuration files are stored" because it would provide them with a new way of approaching computers.

    p.s. For extra points, contrast the Unix philosophy which assumes that you know what you're doing with the DOS/Windows philosophy which assumes that you don't know what you're doing. You might even want to begin your class by reading/assigning Scoville's Unix as Literature which nicely depicts how different Unix is from other operating systems.

  14. Comment removed by account_deleted · · Score: 5, Insightful

    Comment removed based on user account deletion

  15. Show them the dev environment by crudeboy · · Score: 3, Insightful
    Since they are studying to be developers, show them unix from a developers point of view. Show things like version control (with cvs), how to compile code (gcc etc.). Make a point that all you need to develop applications is there right out of the box free of charge. Tell them about relevant things in unix systems (sockets, pipes, daemons).

    Forget about MySQL. It's a nice DB but can't really compare to Oracle or SQL Server.

    My final tip: Don't try to convert them or bash MS solutions, that would only alienate them. Just show how to get the work done in unix, and maybe they'll realize it's easier and develop further interest.

  16. Windows compatabilty tools by buchanmilne · · Score: 3, Informative

    If you are going to do nothing else, show them how to integrate a linux box into their windows network. At the end of this, you want them to be confident enough to install linux dual-boot at the place of work.

    So you are going to need to show them that it is possible to mix'n'match windows and linux.

    1)Winbind
    (Mandrake 8.2 comes with winbind mostly setup - see http://mandrakeuser.org/connect/csamba5.html) or at least samba and joining a samba box to a windows domain. Something like LinNeighborhood for accessing shares.

    2)Rdesktop or vnc or X on cygwin
    The chances are they are going to have windows servers around, so make sure they know they can get into them from linux. From the other side, make sure they know they can get into their linux boxes from windows and run graphical apps, either with vnc or by running X on cygwin. (Need I mention rdesktop and vnc are standard on Mandrake ...)

    Show them why unix is better in some regards:

    3)Please choose a decent distro. Please don't show them how to resolve dependencies on packages with rpm, but show them the right tool for installing software (apt or urpmi).

    4)Show them how to effortlessly setup a firewall. Mail server, web server, proxy server.

    Give them something they can apply on windows:
    5)Show them that they can run PHP on IIS, and apache on windows (for better security). Show them cygwin.

    6)Give them something to tie it all together. Maybe write a small php webpage that can send email to a windows domain account, or something that queries a db (or both).

    7)Remind them that they should not be running X on their servers (aka you have a choice not to run a GUI).

    8)Remind them not to hit CTRL-ALT-DEL when they want to log in locally ;-)

    9)Show them the really good gui tools around, things like Kdevelop, OpenOffice, Evo, Konqueror,Gimp etc

    10)Show them your favourite command-line features. Bash-completion, vi (they don't need to use it, but show them that a console editor can do syntax-highlighting), mc, lynx, ssh (with password-less key-based logins), X ssh-tunnelled.

    11)Show them how easy it is to change hardware (like an ethernet card change with kudzu or similar) with a single reboot and virtually no downtime.

    12)Give them CDs for the distro you used, and another CD with similar stuff for windows (cygwin, apache, mysql, mysqlfront etc).

    I think your problem is going to be fitting it all into 2 days!

  17. My experienses with windows nerds by bytewize · · Score: 3, Interesting

    I've been giving linux courses to windows nerds.

    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

  18. MCSD not MCSE by Dr.+Evil · · Score: 5, Informative

    Most of the comments I've been reading have been going off about administration and configuration. These are people going for a developer certification. That means they probably already know a lot about programming, and they probably already know a fair bit about programming under Windows.

    Going in there and giving them a Linux sales-pitch would be a waste of their time.

    Database connectivity sounds like a cool thing to demonstrate, you might want to demonstrate the basic development tools and documentation available at their disposal. Show them an easy editor to use.. something consistent with the editors used in the Windows world, show them gcc and some neat stuff like xxgdb. The ones who are clueful enough to care will pick it up when they leave.

    IMHO the most important thing to explain to them is software licensing. It is quick, but when they realize that if they like to develop software, they'll clue in that developing their apps for Linux is easier.

    A few tiny things like that would probably take up all the time you have. Cygwin might help them know how to develop apps from Windows to target Linux boxes.

    My experience with MCSDs and other Windows developers is that they don't really care about the OS, they just care about writing apps and using OSes to make money by solving problems.

  19. The point is to teach by Sycraft-fu · · Score: 3, Insightful

    Not to try and make it a Linux tradeshow. If I go to a Linux class and all they do is try to show off the nifty things Linux does without teaching me anything I want to know, I'm going to wlka out and get a refund. The point of teaching a class is just that, to teach. It's not for advocacy or verbal masturbation. What's more you are likely to alienate the very people you hope to educate. When you act like a condecending jerk and crow on about how superior your OS is, it just makes people shut down. More, if you get someone who's knowledgable about both systems, they are going to call you to carpet on the fact that Windows can and does do most of what you are selling as Linux only features like SSH for remote administraton. For example: not only can you install an SSH server in Windows if you like but Windows XP comes with a built in remote administration feature.

    IF you are ever in a situation where you are teaching a class on Linux don't be cocky, condescending or anything like that and don't try to turn it into some kind of wizbang tradeshow. Teach people the basic things they need to know, how to navigate the CLI, how to work RPMs, how to manage users, how to look at what's running and so on. Give them real knowledge they can use. IF you do that, you make Linux less sacry and forieng and maybe they start to use it. IF you act as you've suggested all you are going to do is reenforce the stereo type of *nix people as stuck up assholes that hate Windows for no good reason.

    Teach, don't preach. It's a class, not a chruch.

  20. Where to find help -Confessions of a Win 2000 user by Merkins · · 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 :

    1. Get it installed and running
    2. Get X working.
    3. Figure out the difference between a desktop and a window manager ;)
    4. Get Samba running
    5. Get apache running
    6. Get PHP and Postgress SQL running to learn them and get a simple web app together (I am a SQL Server / ASP developer by day ....yeah ok ok, shut up... not all of us a morons, just most unfortunately)

    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.

  21. philosophy by martinflack · · Score: 5, Insightful

    You need to back up and do something more fundamental before you start showing them filesystems and daemons. You need to compare the two competing philosophies that drive Windows and Unix cultures.

    Windows is a goal-orientated, large application model that strives to make normal tasks very easy. Broadly speaking, Windows admins generally respect order, simplicity, and navigability. Everything gives feedback, to a fault. Everything is an object you can click on. Data is encapsulated and handled by expert applications. Application designers make lots of decisions. All problems are handled by rebooting or reinstallnig.

    Unix is a tool-oriented, small programs working together model that strives to make all tasks doable. Broadly speaking, Unix admins generally respect extensibility, configurability, and stability. No news is good news, to a fault. Everything is a file. Data is transparent. End-users and admins make lots of decisions. All problems are handled by reading logs, diagnosing, and making small changes.

    After this balancing act, then you can begin to lead them down your path of showing them practical items. At each point you can refer back to these fundamentals. For example, when it /etc, you can explain why Unix admins think text file configuration is inherently more stable and powerful than registry keys, because without such an explanation the Windows admins will typically see it as quaint and backward. Again, when you get to /dev, you can show the inherent debugging power of being able to do things like "tail /dev/midi00" to debug a connector on the computer, even if that data is not useful immediately. You can show how grep, awk, and perl can be chained together to do advanced data processing (on text) that would not be possible on Windows without a specific feature to make it happen. The key is to refer back to a specific philosophy for each exercise, so they can see the big picture.

    None of them will watch a hands-on lecture and run out screaming "I've got to convert to this immediately! He broke out this thing called grep and it was.... it was.... AMAZING!" :-) Rather, you want to give them a clear understading of our culture, and just like how a high school senior goes to a college campus and says, "Yeah, I can see myself here" you might kindle an interest in some of them to find out more about how we *nix people think.... and that would be the first step to bringing them over.

  22. Checkmark compatibility by driehuis · · Score: 4, Insightful

    Use the right tool for the right platform.

    Sure, DOS has had scripting and pipes from day one (well, unless you tried MSDOS 1.0). Were they as useful as their Linux counterparts? No freakin' way.

    Why does TYPE not take stdin? Why is "copy con" equivalent to "copy con:"? (And, why is "copy con.txt" ambiguous?)

    How can a batch file determine if a directory exists? Hint:
    if exists c:\foo\con
    yields different results in different DOS versions

    DOS for the longest time failed the basic tests. And for the longest time, I was working with the MKS toolkit, replacing the ones that didn't quite do what I wanted them to do with copies ported from comp.sources. But it never became UNIX.

    NT is still rife with inconsistencies in the CMD shell, and I don't know (nor care to know) if or when they get partially fixed.

    The point is: if you want to use Windows, use Windows tools. Learn how to use VB Script to its effect. Learn MSVC if you must. Prentending that it's another UNIX if you squint right will hurt you. Windows is not designed to be UNIX.

    Every time I use Windows on the premise that an OS is an OS and a command shell is a command shell I get hurt. I should have learned that lesson from VMS years before.

    Does anyone knows if the Posix subsystem still exists in Windows XP? That was the worst checkmark compatibility I ever saw. You could run Posix code on NT, to allow NT to be purchased by the federal government. And unless you wanted to do actual work with it, the compatibility was fine.

    It is completely beyond me why people are porting Apache to Windows. NT comes with a perfectly functional web server, why bother replacing it? Don't get me wrong, I hate IIS with a vengeance, but the loopholes in the underlying operating system (like the $::DATA bug) will have to be special cased in Apache too. And the $DEITY like privilege issues that plague the IIS indexing server will plague Apache just as well.

    Possibly even worse, because code ported from UNIX will have to be modified to suit NT's security model, a redesign from scratch really is the only appropriate way to deal with such huge gaps in design philosophy.

    --

    Bert Driehuis -- All I asked was a friggin' rotatin' chair. Throw me a bone here, people.

  23. Comment removed by account_deleted · · Score: 3, Insightful

    Comment removed based on user account deletion

  24. A few years ago I would have said by ahde · · Score: 3, Funny

    teach them aliases, because it helps get rid of the fear of memorizing odd or complex commands. But since computer users don't even know simple commands like "dir" anymore, that's probably moot.

  25. Re:Make 'em "Think Unix" by J.+J.+Ramsey · · Score: 3, Funny

    "Jon Lasser has an excellent book which assumes you're a computer user, but new to Unix."

    Great. What's the *name* of the book?

  26. best project by psych031337 · · Score: 3, Interesting

    OK... I am a guy that has seen DOS, 4DOS, numerous Redmond products. I currently am stuck to W2K and I probably will be for quite some time as it is damn reliable. Linux was never a issue to me, mainly because I have to eat (and therefore earn bucks admin'ing Win OSes).

    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 /bin, /sbin, /usr/bin, /usr/local/bin, ...) . The systems generated by (say) FLI4L are full linux systems, but without most of the fuss.

    These systems are probably all you need to teach the basics of piping and redirection, the /var and /proc concept, shell scripting and automating/streamlining processes, blah blah. To me the FLI4L is the essence of linux - a small thing to get the job done, with no waste of resources. On the other hand, there is basically nothing you CANNOT do with FLI4L - install a SMB server and print servies, control LEDs hanging off the serial port, httpd, ftpd, telnetd, mount NTFS, you name it.

    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.

    --
    +++ath0