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.

155 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 ethereal · · Score: 2

      Powerful, true, but on the other hand most of the power comes from regexp syntax that might be a little off-putting to someone who's never seen that before.

      --

      Your right to not believe: Americans United for Separation of Church and

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

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

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

    4. Re:the best combo IMHO by nakaduct · · Score: 2

      cat | grep is known as useless use of cat

      For programs that include filenames in their output (such as wc and err... grep), cat * | ... prevents that when you don't want it.

      There are sometimes switches to do the same thing, but they aren't portable across different programs or flavors of OS.

      cheers,
      mike

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

    6. Re:the best combo IMHO by nzhavok · · Score: 2

      Don't forget sed and awk!!! the cat, grep, sed, awk combo can do anything! Well quite a lot anyway.

      --

      He who defends everything, defends nothing. -- Fredrick The Great
    7. Re:the best combo IMHO by JamesOfTheDesert · · Score: 2
      While BATCH file scripting in Win2k/XP is pretty powerful, it's very ugly. Bash/csh scripting is much easier and has a few other features that you can't do with BATCH.

      Why not just use the windows scripting host, and write the scripts in VBScript, or jscript? It's part of Win2K. Not sure about XP.

      --

      Java is the blue pill
      Choose the red pill
    8. 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.

    9. Re:the best combo IMHO by sydb · · Score: 2

      Hmmm, regexp is documented well in the sed docs. Why don't you just create a bookmark to the appropriate page. I'm not going to find it for you because you need to learn not to be such a lazy ass.

      Which brings me to the point: I find sed to be just about the most powerful Unix tool in the box. Any intro to unix should showcase sed and how easy a life it makes for administrators and shell script afficianados.

      Of course it's most powerful combined with the other text manipulation tools. In fact this is the key to the power of Unix for developers and administrators - text and text manipulation, and the mature tools available for this.

      Of course, Unix has other benefits like stability, flexibility and a structured file system.

      --
      Yours Sincerely, Michael.
    10. Re:the best combo IMHO by sydb · · Score: 2

      Yes but remember, you never need cat.

      instead of cat file | sed -e's/genius/moron'

      do

      sed -e's/moron/genius/' file

      and save yourself a fork.

      --
      Yours Sincerely, Michael.
    11. 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!

    12. Re:the best combo IMHO by sydb · · Score: 2

      Of course, I'm a moron and forgot to format my post as 'code'...

      sed -e's/moron/genius/' < file

      --
      Yours Sincerely, Michael.
    13. Re:the best combo IMHO by RelliK · · Score: 2
      4) piping and redirection works more or less exactly like in UNIX with the same syntax even

      How do I redirect stderr? What about stdout+stderr? Is there an equivalent for tee?
      Yes, some tings are there but most are not. You may be able to get them somewhere, but that's just the thing -- you need to hunt around for them; you need to know they exist in the first place. In Unix you get all of that installed by default.

      --
      ___
      If you think big enough, you'll never have to do it.
    14. Re:the best combo IMHO by bonzoesc · · Score: 2
      It was in 98, too - that's how a lot of the *.vbs viruses got spread, because WSH looks at the .vbs file being executed and says, "OH GOLLY! WHAT HAVE WE HERE? IT LOOKS LIKE SOME FUN MALICIOUS CODE. LET'S RUN THIS NOW. GET CRACKING. I AM A BANANA!"

      The power of a method of execution is directly proportional to the possibility for disaster. Nobody writes MP3 viruses, because it goes through an extremely limited interpreter. However, x86 machine code is nice and powerful, so you can write some seriously fun viruses for that.

    15. Re:the best combo IMHO by nyet · · Score: 2

      "a few other features"?

      Oh, irrelevant ones, like function calls, variable substitution, for loops, while loops, /bin/test (or [) , /bin/basename, /bin/find, /bin/eval,
      backquotes (or $()), grouping, globbing, job control. The list goes on and on. cmd.exe is a toy, almost no better than command.com

    16. Re:the best combo IMHO by maraist · · Score: 2

      Other useful commands:

      cmd <$(program execution) <$(prog2)

      # output of multiple executions instead of a single pipe (usually cmd-dependent)

      cat file | cmd /dev/fd/0 # for when it simple MUST have a command-line argument file-name

      cmd "adf${FOO}asdf\"dfdf\"sdfs"\ sdfs\ \,

      cmd <<EOS
      here is my long text
      bla bla bla
      EOS

      # quoting in general is MUCH better in *sh than what I've seen available on windows (not 100% sure about cmd.exe; please correct me if I'm wrong about it not have a fully encodble string command line)
      # side note, bash sucks compared to perl's string processor (e.g. qq(...) )

      cmd1 ; ( cmd2 && cmd3 & ) || cmd4

      # serialized, parallelized, and conditionally based command execution (not to mention sub-shelled)

      nohup cmd

      # disconnect from shell and log output (in case modem hangs up, or in more modern situations, the general terminal disconnects)

      screen

      # while not strickly the shell, the pseudo-terminal technology easily allows detachable / reattachable terminals

      All the test commands (not quite sure how well cmd's scripting works)

      alias ls
      funcion ls() { ... }
      ls
      \ls
      which ls
      # multi-teered command-interpretations

      ulimit
      # control resource consumption (granted this isn't a shell thing, but it's nice to do from the shell)

      times
      # see my resource utilization (see ulimit for caveat)

      jobs
      # and other such wonder background management tools (see above caveat)

      #There's ANSI color capabilities

      cmd $((math-expression))

      cmd ${PATH#/home}

      #Variable substitution / manipulation ${var[sym]param}

      Don't know if cmd.exe has file-descriptor modifications like [n]>&- (close descriptor n)

      Then, there's my favorite.. emacs or vi-based low-bandwidth, high-productivity editor commands. A command is considered to be like a mini-program, so the editor treats the unlimited line-size as such.

      -Michael

      --
      -Michael
    17. Re:the best combo IMHO by maraist · · Score: 2

      I usually start people off with pico. It's less stressful (especially when you're dealing with non CIS types)

      I have yet to be on a UNIX machine that didn't have pico, and unless you do serious editing, you don't need all the power of vi/emacs.

      -Michael

      --
      -Michael
    18. Re:the best combo IMHO by os2fan · · Score: 2

      Windows NT has tab completion: to be sure - it's lamer than the thing in 4NT or 4DOS, and is off by default. You can set it to anything you like, eg "x", as long as you hunt down the appropiate registry key. Win9x does not have tab completion.

      Window "type" does not compare in the wildest dreams to "cat". It has no "list", "tee" or "y". To get these, you need to get external utilities. You can type more than one file at once, so you can't assemble files with a single type.

      "find" is lame. You can't find text in a file, only a pipe. So you can't scavange a tree looking for a string.

      God help us if piping and redirection works like UNIX. Oh yes, they do work. And then it closes the window. What a clever little thing. So anyway, to get any sort of piping like sort outfile more often works, and then closes the files.

      And then there's edlin. The sole scriptable text editor, an ugly sister of command.com.

      And don't get me started on running scripts with parameters. Something like perl script.pl parameters runs, and closes the windows.

      The pipes and redirection work better under the DOS emulation, but then in this environment, you get no file completion or command history, and the thing generally feels that it's just about to wobble out because it's hammering too many resources just processing keys.

      --
      OS/2 - because choice is a terrible thing to waste.
    19. Re:the best combo IMHO by Pathwalker · · Score: 2

      You said:
      Yes but remember, you never need cat.

      I reply:
      s/never/sometimes/

      Ever start out a script with cat $* | next_stage in order to concatenate and process a large number of files in one pass?

      Ever just need to concatenate a bunch of log files from different sources together before processing?

      Plus, don't forget the old trick of using cut and head/tail to hack apart a file, and using cat and paste to build something new from the bits.

      Don't knock concatenation - it has it's uses...

    20. Re:the best combo IMHO by nzhavok · · Score: 2

      Well this is not strictly true, suppose you've just changed the name of a function (to pick something I did today) and you want to make sure you changed all the files that referenced it.

      cat *php | grep old_function_name

      also I like to use cat because I can be (more) sure that no side-effects will occur and clobber the file in some way (yes I know that this won't happen with most functions, but: once bitten, twice shy).

      --

      He who defends everything, defends nothing. -- Fredrick The Great
    21. Re:the best combo IMHO by jedidiah · · Score: 2

      Once they have been forcibly subjected to vi, they will no longer fear death (or even Unix).

      --
      A Pirate and a Puritan look the same on a balance sheet.
    22. Re:the best combo IMHO by scrytch · · Score: 2

      find, findstr, tab complete in cmd... bah.

      just use bash

      Funny thing is, it supports more windows features than cmd.exe does. Like file forks. and /dev/clipboard

      --
      I've finally had it: until slashdot gets article moderation, I am not coming back.
    23. Re:the best combo IMHO by nzhavok · · Score: 2

      Yes, you're right of course!
      But like I said earlier I'm just (stupidly) paranoid of side effects.
      Using grep instead of cat to do this is more helpful though since you can find out what files the old function is in, and it's easy to recurse down the entire directory structure. So in other words the more I think about it the more right you are. Damn ;)

      --

      He who defends everything, defends nothing. -- Fredrick The Great
  2. Dont get carried away by LadyLucky · · Score: 2, Troll
    show that there are free alternatives that works as well as SQL server.

    Ive used all three databases you mention. Without a doubt, SQL Server is by far the "best" database. I think you do have to temper what you say, because if you run around making statements like that, then it puts doubt on the other things you say.

    I dont mean to cast dispersions on MySQL or PostreSQL, they are very good databases, but not in the same league as SQLServer, IMHO.

    --
    dominionrd.blogspot.com - Restaurants on
    1. Re:Dont get carried away by slamb · · Score: 2, Offtopic
      I dont mean to cast dispersions on MySQL or PostreSQL, they are very good databases, but not in the same league as SQLServer, IMHO.

      I'm also interested in hearing why you think Microsoft SQL Server is better than PostgreSQL. I've used PostgreSQL and Oracle and feel that PostgreSQL is as good or better in many situations. I'd be surprised if MS SQL Server had any real advantages over Oracle (except price, and it can't compete with PostgreSQL there).

      Oracle's two big advantages, as I see them, are:

      • Large database features. There are a million features that contribute to this. Manufactured views, clustering, different tablespaces, quotas, replication, etc.
      • Extra software. Stuff like Oracle Forms & Reports is really great for rapid development. I haven't seen anything cross-database or PostgreSQL-specific that can match that at all.

      On the other hand, PostgreSQL has:

      • Ease of administration. Oracle administration seems really, really complicated, even when you don't use any of those extra features. [*] PostgreSQL is very simple to set up correctly and keep running correctly. In my experience, keeping a database healthy is little more than doing a vacuum analyze in a cron job or something.
      • Lower cost. You can get the database free, with volunteer support from the mailing lists. If you want paid support, you can buy it as the RedHat Database, still with a much lower cost than Oracle.
      • Open source. I don't think I need to say here why this is good.

      Now, MySQL...I don't understand why you'd use it when PostgreSQL is available. I certainly won't take quite as seriously anyone who advocates using it. It's not even a relational database, by definition. See Codd's Rule #10, for example. (I don't think any database supports all of these rules perfectly, but MySQL in particular is quite sad.)

      [*] - I don't actually administer an Oracle database. I just use one and try to have some understanding of how its administration is done.

    2. Re:Dont get carried away by the+eric+conspiracy · · Score: 2

      I think that the place PostgreSQL clearly falls down is when you get into larger scale applications. Where is the large scale support, third party tools, etc?

    3. Re:Dont get carried away by Dwonis · · Score: 2

      MySQL isn't for real database applications, it's for 90% of the weblog-style applications that don't need a true ACID database.

    4. Re:Dont get carried away by LadyLucky · · Score: 2
      OK, firstly, the disclaimer. I dont know everything there is to know about all of these databasen, and have spent far more time on SQLServer than anything else.

      SQLServer has somethings that are just wonderful, for me as a developer. Enterprise manager is quite simply, fantastic. The comparison to Oracle's equivalent is rather... amusing. I havent used postgreSQL's configuration tools much. I also like to be able to run my queries, and it gives me a nice big table that shows where it is spending its time, were there any row scans, and please, sir, can you suggest any indices I'm missing? We will be doing an installation of our product soon that will be really seriously stressing the software, 100s of (web)requests per second. This is java talking to SQLServer. We can cluster the SQLServers if need be.

      MySQL is an interesting one. It really is designed for a different purpose, to be a fast, file based database. It really can't cope with the mission critical type installations, but is excellent in its domain.

      I dont have performance benchmarks, but for me, SQLServer has an overwhelming number of tools and works, very very well. In my experience, that there can be an entire job title called "Oracle DBA", speaks volumes about how easy it is to administer.

      Im just the poor monkey, i dont make the decisions about whether servers should be "open" or not, all that I really care about is if the driver always works, the DB always goes fast, and there are some nice and easy tools for me to use.

      --
      dominionrd.blogspot.com - Restaurants on
    5. Re:Dont get carried away by spongman · · Score: 2
      There's a bunch of stuff I can think of off the top of my head:
      • installation
      • excellent tools:
        • enterprise manager
        • isqlw
        • query tuning wizard
        • DTS
        • ado/oledb
      • stored procedure language doesn't suck ass:
        • returning rowsets
        • far superior optimizer
        • automatically pre-compiled stored procs
        • cached ad-hocs
        • prepared statements
        • functions
        • indexed views
        • optimized remote queries
        • partitioned views
        • functions
      • no vacuum
      • decent replication
      oh, did I mention, the optimizer rocks. one nice feature that psql has over mysql is nested queries. The difference between mysql and psql is that mysql will completely rewrite your query choosing the best joins based on dynamically updated stats.

      PostgreSQL is definitely lightyears ahead of MySQL (except maybe in really simple joins) but it's nowhere near as mature as commercial offerings from MS, Oracle or IBM. It has some pretty cool feature that the others don't have, but it's missing the big stuff.

    6. Re:Dont get carried away by spongman · · Score: 2
      The difference between mysql and psql is that mysql will completely...
      whoops, I meant "The difference between MS SQL and psql is that MS SQL will completely..."
    7. Re:Dont get carried away by johnnyb · · Score: 2

      I also like to be able to run my queries, and it gives me a nice big table that shows where it is spending its time, were there any row scans, and please, sir, can you suggest any indices I'm missing?

      ***

      I believe PostgreSQL has this.

      One of the big problems with MS SQL Server is that there aren't any production-quality JDBC drivers for it, period. Microsoft only has a beta-quality one that kills over ever once in a while. So, if you are running any sort of server-side Java apps, MS SQL Server just isn't a choice.

    8. Re:Dont get carried away by LadyLucky · · Score: 2
      we use one from inetsoftware.de, which we have found to be pretty solid. Certainly more solid than the mySQL driver (sorry,havent done enough with the postgres one to know)

      You are right that the MS one isnt really up to it yet though.

      --
      dominionrd.blogspot.com - Restaurants on
    9. Re:Dont get carried away by LadyLucky · · Score: 2
      and MS SQL Server strikes me as an Oracle wannabe.

      More or less, i think so too :-). But oracle is pretty much top of the pops, so that probably isnt a bad thing.

      --
      dominionrd.blogspot.com - Restaurants on
  3. 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 tjcoyle · · Score: 2, Insightful

      I would agree with the above 100%, and would also suggest you highlight the Windows Registry vs. Unix-style configuration through the liberal use of configuration files. As a VB developer (I know, haha) who develops and delivers a heck of a lot of applications, the WORST part of Windows is by far the interdependency of DLL's and OCX's and the obfuscation and/or complexity of their configuration. Make sure you clearly illustrate the open nature of Unix's insides, and drive home the fact that low-level configuration results in maximum control, and therefore, maximum ability to identify and correct problems when they do occur. Any VB developer knows the horrors of the old 'DLL Hell', and will FULLY appreciate this.

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

    4. Re:Software Installation by Chops · · Score: 2

      Likewise, make sure you teach them how to use the package management system properly. Make sure they know that downloading and compiling stuff is usually wrong; most Windows people I know will attempt to do this, because it best fits the pattern they know for installing "freeware" (Winamp, etc.), when they should have just typed "apt-get install xmms" or "urpmi xmms".

    5. Re:Software Installation by Khalid · · Score: 2

      Yes this is one of the main reason why Linux is still not ready for the desktop ! there is just a gazillion way to do things and often badly, or at least in a confusing manner. The "official party line" in the Linux community is "diversity is good" and no one dare to really challenge that ! but what a passionate geek, willing to spend hundreds configuring his desktop calls "diversity" is just "confusion" for a newbie, who just want to install and go !

      Mant geeks vehemently protest when a Desktop like KDE try to do things just the way Windows does them, there is a reason to that ! it's just because this is what people are used too ! there is reason why Ctrl-V and Ctrl-X are used for copy and cut in Windows, it's just because this is the way Wordstar does this ! so it was the de facto standard ! and whether we like or not, Windows is now the de facto standard.

      What Linux on the Desktop needs is simplification and coherence and not yet other fuctionnalities.

    6. Re:Software Installation by MarkusQ · · Score: 2

      there is reason why Ctrl-V and Ctrl-X are used for copy and cut in Windows, it's just because this is the way Wordstar does this !

      Wordstar used Ctrl-KC for copy and (because it used a concept called "persistant blocks") didn't have a cut-to-clipboard--the closest thing it had was either move (Ctrl-KV) or delete-block (Ctrl-KY).

      -- MarkusQ

  4. 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.
    1. Re:gone fishin by _randy_64 · · Score: 2, Insightful

      Better yet, teach them "man -k". "man" is nice, but not if you don't know the names of the commands.

      Prepare a cheat sheet of commands for them, showing the Windows and the Linux version (e.g. cp and copy, rm and del, etc.).

      Check out a very intro book ("Linux for Dummies"?) just to see some of the topics it might cover.

      "Think Unix" is a great book for teaching the how and _why_ of the command line.

      Try to come up with some things that they might want to do under Windows that would be hard to do but easy to do under Linux. Use that example to show commands and pipes. For example - "tell me how many machines accessed this webpage last month". Maybe that's easy to do under Windows, I don't know. But show how you'd do it under Linux, with a pipeline of cat, cut, sort, uniq, and wc. That might be a complex example (for a simple question!) but it shows the power of the command line.

      Most of all, make it fun. Show them what's cool. Show them that they can do the same things under Linux that they can do under Windows. Like playing MP3s, videos, reading Office documents, running Word (with Wine), and even playing Solitaire and Minesweeper!

      randy

      --
      I mod down all the "free iPod"-sig losers.
    2. Re:gone fishin by Dwonis · · Score: 2
      See, we have crappy software in linux land too.. Just like that mis-behaved windows apps that de-stablize the system we have those same idiots writing software for linux (and making distros..)

      This is the best form of Linux advocacy. People will see us, and see that we know Linux has tons of problems, and we still prefer it.

      Pretending that Linux is perfect just makes people think we're ignorant.

  5. 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.
  6. SOAP & Tomcat... by (H)elix1 · · Score: 2

    Set up tomcat /w SOAP, and show a simple VB app or ASP page interacting with a "hello world" SOAP call. Real world, simple setup, shows the potential to mix environments...

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

  8. 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 --
  9. show how to start an app from another X-server by kilaasi · · Score: 2, Insightful

    One of the first things I found cool on UNIX was being able to start Netscape on one machine and have the screen displayed on another. And explain that this IS NOT Netop, PCAnywhere or VNC or another 3rd-party tool, but a natural part of X. X was DESIGNED to do this whereas Widows (Windows) needs a thirdparty-tool to do a much a technically less advanced screencapture.

  10. Xplatform by clifyt · · Score: 2

    I'd simply show them the Unix stuff that is cross platform. Start off with things such as Apache or even PHP.

    More than likely, if they are going for their MCSE cert, they will be running Wind'rs no matter what you tell them, but showing them these cross platform apps might be the seed to slowly merge them to other platforms. For instance, I run both Apache and PHP on most of my servers...I run them on Wind'rs, MacOS X, Unix. They are VERY stable across platforms. I still run IIS5.0 on one machine, but thats because I have clients that NEED ASP. I use to develop against ASP, but now use PHP on everything because I never know what platform I'm going to be running on.

    After that -- because everyone needs to know how to set up a web server -- grab the Posix Tools from Cygwin (??? I think thats where I get them...I just google everytime) and install them on Windows. You get all the nice commands that ya do on unix, but on Windows. Its VERY nice because Windows doesn't come with a very good Kill command (there is one on the Resource Disc...but I prefer these ones better)...sometimes you REALLY need a service to quit and their is no other way.

    Start showing folks these xplatform tools and show them how they only need to memorize one set of instructions instead of a dozen that do the same things across a dozen platforms (the CLI stuff on Windows isn't the same even across their different platforms...they change the names of apps too readily). How do you get to a Command Line on Windows? Is is CMD? Is it Dosprmpt? Depends on the version. Things like this.

    I install the cross platform tools so people can be familiar with the Unix stuff...hell I've got my boys so brainwashed that when I ask them to hit one of my unix boxes, they now tell me its 'just like windows'. Once you can safely work around a machine without having to stumble, you then feel a little braver and may actually explore a bit. Maybe then they figure out why a Unix box is so much nicer and more stable than the same PC...

    clif
    sonikmatter.com

    1. Re:Xplatform by man_ls · · Score: 2

      I find myself typing cmd.exe on my Windows 98 boxes at school and my mom's computer when I am trying to do stuff.

      She has a tendancy to get utterly confused at the reason I seem to do everything with the keyboard...she said she's almost never seen me use a mouse. Quick use of Winkey shortcuts, TAB combos, and the command line almost totally make it unnecessary.

  11. 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 graf0z · · Score: 2, Interesting
      I have to give 2d apache/linux crash-courses regularly to admins, which are mostly MS-only with none up to medium network knowledge (yes, they are admins in their companies ...). Most of the suggestions of mr sam work, espacillay the ssh stuff, but they have to do it on their own! If they manage to do all these nice gimmicks, you got them! So: show them what you want to show and then let them do the same (but free choice of details like pathnames and such). So let admins...

      • install a linux distri on their own (i use RH)

      • edit "index.html", start preinstalled apache and ask their neighbor how do you like my new homepage?(this is the second point after installing, just to impress)

      • set up useraccouts, start sshd and then change places for going on administrating their boxes remotely

      You get the idea ... there should be similar tasks for coders. But a warning: they will get it slowly. The command line (you will do all the importing things only in bash, don't you?) is absolutely new to them, so you will have to explain over and over again (ext2, absolute/relative path (although it is the same in win)). emacs/vi it definitely necessary, but it's a showstopper.

      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!).

    2. Re:A few thoughts. by Darth_Burrito · · Score: 2

      While I think the post you replied to had pretty stupid biased suggestions, I just have to say a few things...

      But I can do the same thing with Windows telnet

      Aahhhhhh!!! Passwords in plaintext. Telnet is the devil. SSH is encrypted. These are not equivalent services.

      For server only installations, we just don't hook a monitor up.

      Running a GUI takes memory and system resources, monitor attached or not. Also, if you don't have a monitor attached, people are a lot less likely to walk up and start fiddling with your server.

      You really should conserve some network bandwidth and just go sit down at the machine though.

      In an internal network with 100+ MBit network this is not an issue. Guaranteed, your employer would rather have you utilizing instant connections to whatever machines you needed than have you waste five minutes walking over to the server farm, spending another five minutes locating the correct terminal for the machine, and then another 5 minutes walking back to your desk.

    3. Re:A few thoughts. by mrsam · · Score: 2
      * But MSDN showed us a VB IE startup fix that does the same thing [microsoft.com].

      Do you really expect Joe Sixpack to write a VB script to do that, when it only takes two mouse clicks in Mozilla?


      * But I can do the same thing with Windows telnet, or better, Windows terminal services since I can actually see what I am doing.

      How much does the Windows Terminal Server cost, and are there any CAL fees?


      * But I can get that many themes for XP, and plus I actually know how to change the backgrounds and icons in Windows myself. YOu haven't shown me how to do that yet with Linux. This frickin' sucks.

      Programs -> Settings -> Desktop -> Background. That's it. It's not rocket science.


      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.


      * Uh, yeah, we use the Services admin panel and Add/Remove programs for that.

      How many times do you have to reboot? What happens if the install get screwed up, and you're left with a corrupted registry?


      * But if I only want Windows on my system, why do I care? If I could access the Linux partitions it would be like having FAT32 partitions on an NT machine... pretty pointless.

      True - NT doesn't really support things like soft and hard links...


      * Yeah, when services go down in Windows, it still starts up fine and you just look in the system log. If a driver goes down, I just restart in safe mode, removed the device, and everything is fine. No big deal. Who needs a scanner on a server anyway? It looks like if I do this Linux thing I have to go through all these damned scripts to figure out what went wrong... and where's the safe mode?

      It's there. It's called "Run level 1", but you rarely have a need to use it, since as I said a broken daemon is not going to take down the rest of the system.


      * Yeah... uh, we do that. Where's the network neighborhood icon?

      It's right there, on the screen. Looks like I forget to mention Nautilus, in my original comment.


      * We do that with Windows terminal services like we said.

      And how much does Windows Terminal Services cost?


      You really should conserve some network bandwidth and just go sit down at the machine though.

      It's going to be a long walk. Remember, that server's on the other side of the world?


      * If we want to install a new version of msvcxxrt.dll without restarting the box, I just close all the apps that are using it and then copy the new DLL into place.

      Sounds clumsy and awkwards. There's no need to do that in Linux.


      It's not that difficult. It breaks a bunch of stuff though, but I bet this glibc messes things up too.

      Nope. I upgraded glibc on my firewall box about three weeks ago. I still haven't rebooted the box:

      [root@brimstone httpd]# w
      4:32pm up 42 days, 2:19, 1 user, load average: 0.00, 0.00, 0.00
      USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
      What are you doing monkeying with the kernel?

      glibc isn't the kernel.


      That doesn't need updating, it's the frickin' kernel. If it's broken, we get a reinstall going while we go to lunch. Huh... fat pipes are cool.

      I tend to upgrade my Red Hat servers twice a year. Insert a kickstart floppy, reboot each server, have a cup of coffee while the server upgrades itself, back in production 35 minutes later...


    4. Re:A few thoughts. by wadetemp · · Score: 2

      I'm not an MSC anything... those were just the rantings of someone who works with a few. :)

    5. Re:A few thoughts. by wass · · Score: 2
      emacs/vi it definitely necessary, but it's a showstopper.

      Simple solution - do what I did for my father. Install nano (an open-source pico clone). It's relatively easy to use (very similar to the 'edit' program that came with the later DOS's).

      This way the users learn how the system functions with respect to the scripts, and after they're hooked, get them on vi/emacs. If they're not hooked, then there's no reason to learn vi/emacs anyway.

      --

      make world, not war

    6. Re:A few thoughts. by BreakWindows · · Score: 2

      Just responding to the possible queries of the students, in case anyone ever encountered one of these answers:

      * But I can do the same thing with Windows telnet, or better, Windows terminal services since I can actually see what I am doing. And I know DOS; BAT files are cool.

      And he can smack them for using telnet to send the Administrator's password unencrypted across the world. Terminal services is cool from across the room, but ever try getting in at a colo or from home over DSL or...eek...dialup?

      * But I can get that many themes for XP, and plus I actually know how to change the backgrounds and icons in Windows myself. YOu haven't shown me how to do that yet with Linux. This frickin' sucks.

      I don't think anyone would say that, since I'm sure he would show the nice simple right-click way to change them, just like in Windows. And I'd have to say, there are more themes and more customizable themes for gnome/kde than for XP, and at no cost. Plus, there is a gnome and a kde and a blackbox, etc..

      (snip a few things I pretty much agree with, since I don't see them as being strong points for Linux on the server)

      It looks like if I do this Linux thing I have to go through all these damned scripts to figure out what went wrong... and where's the safe mode? If I screw up the scripts, it looks like my machine is hosed.

      2 things:

      1)/var/log/messages - why would they confuse a script with an error log?
      2)His point was, it couldn't happen. Windows gets hosed until you get into safe mode and remove drivers, if you know what is going on. You can't have something in user space take down the OS in Linux.

      * Yeah... uh, we do that. Where's the network neighborhood icon?

      ha, nice. but his point (unless he's a fool) wasn't superiority, but integration. You don't have to eliminate Windows, they can play nice together. He should have included "and go to the Windows box and browse files on the Linux machine, too".

      What are you doing monkeying with the kernel? That doesn't need updating, it's the frickin' kernel. If it's broken, we get a reinstall going while we go to lunch.

      (agreed on the part of copying DLL's, partially).

      That's a myth he should dispell. Just because something is running, doesn't mean it isn't in need of an update. Security problems? Improved performance? No OS is or remains perfect for years without an update.
      And why is he touching the kernel? I update libraries and software all the time without recompiling or restarting. Linux surely has its flaws, but this is one that just isn't true. I hear the "you have to recompile everything!" line from everyone, and I haven't touched source code in a while (last time was by choice).

      On a side-note, don't push superiority to them too much. Try to get them to install it on their own machine, or at home, and wait for them to get addicted. Once you use something UNIX-ish for a while, Windows starts to get annoying. It's personal preference though...some people like one bloated app that will do everything for them, and some people like lots of smaller apps combined and tailored to be exactly what you want them to be. I've found people will justify shitty software and turn the other way when something is just dumb, if this is the OS they use, regardless of what kernel it runs on.

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

    8. Re:A few thoughts. by Jaeger · · Score: 2
      On my notebook if I boot Linux without my network cable plugged in, it hangs forever during the boot.
      I betcha that's because some of your daemons (sendmail is notorious for doing that) are trying to get an ip for your hostname, and are failing because they can't contact the nameserver. (This is a bug, not a feature, but it seems fairly common.) Add a line to /etc/hosts with your ip and hostname and you should be set.
    9. Re:A few thoughts. by bogado · · Score: 2

      you seem to be describing a console crash, when X crash and lock up your console you maybe out of luck. But if you have another computer at hand and a sshd runing in the locked computer you should be able to restore or in the worst condition restart your machine cleanly (sometimes X messes with your grafic card badly).

      --
      []'s Victor Bogado da Silva Lins

      ^[:wq

    10. Re:A few thoughts. by raresilk · · Score: 2
      I don't have mod points right now, so I reply to say I think your lesson plan is the best. Rather than trying to turn students from MS mentality to Unix mentality in two days (impossible), it goes directly to the fears and prejudices that naturally will be first in the minds of MS-trained admin-wannabes:

      (1) interoperability with Windows ("what use could a Unix box serve in a MS-based environment?")
      (2) desktop ease of use ("how could a generic user possibly be trained to operate a Unix box?")
      (3) ease of installation and troubleshooting ("wow, it never occurred to me that 'reboot after every configuration change' is not a universal truth of computing")

      Once you have cleared away these prejudices, and introduced them to a tiny bit of the potential and flexibility in *nix, you can count on the intelligent and curious ones in the bunch to explore the finer points on their own. (Don't forget to provide a handout of Linux and BSD download and info sites at the end of day two.) Showing them grep, man pages, emacs commands, config files like others have suggested is likely to be useless - you are talking about MSCE certification students, not experienced sysadmins who will understand why they might want these tools.

      --
      No, no, no. This is not a sig.
    11. 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.

  12. make sure to stress ideology by matusa · · Score: 2, Informative
    You can do it through anecdotes, or just regular asides, but I believe it is invaluable to divulge them a set of ubiquitous linux/unix principles.

    • I don't mean to list many, because I guess they're obvious, but some important ones are
    • **The functionally in unix is partially hidden functionality.. this means that a lot of times a program can do lots of things you want it to, but it simply isn't apparent like it is in windows. In windows a lot of the workings most people want are very accessible on the surface (though note that if you want it to do something uncustomary... then you're in a pit!), though in unix you usually have to dig some. This is a bad example, but yesterday I was writing some SNMP code using the excellent net-snmp (ucd-snmp) packages, and needed it done now, so to learn some variable structures exactly I used headers and gdb to dump some exact var info.. that's a linux way.

      many windows people when approached with linux view features they don't see as features that don't exist.
    • files. It's all files. devices, filesystems, directories (nothing unusual there), named pipes, etc. Maybe show off some fun stuff (like you can use mount [device] to mount a CD image file and use it is if you'd mounted a CD. showing off this type of stuff would make this concept stick I feel (and reiterate =))
    • Flexibility. different UIs are a nice way to show this easily
    • Make sure to nail some FUD too.
  13. After The Basics... by Etriaph · · Score: 2
    After you teach them the basics (navigating the filesystem, creating/editing/moving files) you should teach them the thing that takes most newbies a month to figure out (I mean really figure out) on their own. Compiling software. Now, this is not a small topic, it's a big one. If they wanted to install kdelibs from source, they would need qt, libxlst, libxml2, but they wouldn't know it.

    The best thing you can do for a newbie is teach them how to find what they need to find to install or compile all the software they want. Start off with something simple like an Apache/PHP w/MySQL setup.

    Give them the three tarballs (and they should know how to open them after the basics) and tell them to try to compile the three pieces of software together. With some tutoring they'll end up having something, more or less, working (hopefully) by reading README files and the INSTALL files after you've told them they use the configure script to start the ball rolling.

    If they run into a rut, then you help them. Once they do get everything compiled together, get them on the path of figuring out how to install MySQL into /opt/mysql and apache in /services/www. This will have them reconfiguring and learning how all the flags work.

    Finally, get them to install something that will rock their brains a bit. Once they realize that they're having a hard time, tell them where they can go to get libs, dependancies, etc. (freshmeat, rpmfind, etc.). Navigating the box is one thing, but knowing how to install software makes all the online docs suddenly make sense. Anyone have any comments about this approach?

    --
    "It's here, but no one wants it." - The Sugar Speaker
  14. 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
    1. Re:An excellent book by aussersterne · · Score: 2

      Another interesting book: Sam's Teach Yourself Unix in 10 Minutes. It's a very short, reference-oriented book that's physically little and easy to carry, and it's a lovely introduction to the shell, redirection and I/O paths, permissions, navigating the file system and the network, etc. -- a kind of "Unix Users' 101" if you will.

      I have no financial interest in promoting the book since I didn't write it, but I was an editor for the book and found it to be lean and concise and still recommend it to this day.

      --
      STOP . AMERICA . NOW
    2. Re:An excellent book by steveha · · Score: 2

      I have the Sams Teach Yourself Linux in 10 Minutes book. I figure either book would work. My comments will of course cover the Linux book, not the UNIX one, since the Linux one is what I have. But probably the two books are similar.

      This book is structured exactly the way I would have done it. Chapter 1 (7 pages) covers how to login, and logout again. Chapter 2 then immediately covers how to get help (man, info, HOWTO files, web pages, etc.) A motivated smart person could bootstrap himself into *NIX with just these two chapters!

      Chapter 3: how to use X windows (e.g., how X takes advantage of the three expected mouse buttons). Chapter 4: the file system, file permissions, etc.

      Later chapters cover shells, regular expressions, pipelines, etc. It even covers simple shell scripts, and a little bit of system admin stuff.

      The final chapter is how to pick a distro!

      Highly recommended.

      steveha

      --
      lf(1): it's like ls(1) but sorts filenames by extension, tersely
  15. 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.

  16. 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
  17. Some thoughts by robinjo · · Score: 2

    These people may only know about Windows and Microsoft solutions. If so, you'd better give real world examples of what is done with Unix now.

    Unix is used because it scales well and is rock solid. With Linux you also get the price advantage, though that isn't so important in big projects. Quality and stability are and you should be able to show that Unix is high quality.

    For a MS-only person it's important to be able to use Unix only in some places. Samba is a great example. Same goes with Apache. They might also like the possibility of producing cross platform solutions. Kylix/Delphi is a great example here.

    Don't get into any religious fights. Just tell/show places where Unix is a great solution but do it without bashing Microsoft.

  18. Some Suggestions by cybermage · · Score: 2

    Speaking as someone who routinely uses, and actively advocates the use of, both Windows and Linux together, I have several suggestions:

    First, don't make excuses for Linux's weaknesses. You may have students who criticize, quite rightly, the current Linux desktop. Rather than defend it, accept the criticism and move on. You don't want your students to make their conclusions about Linux based on how it looks on the surface.

    Second, as you're planning with database services, show them the benefits of Samba and Apache. If any of your students are responsible for admining servers they should be able to relate to these services as well. One point of caution though: They'll be used to using GUI's to administer services and may be turned off by the idea of editing text configurations. I have explained, with great success, that good text configs don't obfuscate your options. Sometimes the most powerful options are buried in GUI's. In a text file, the option you want is just '/option' away.

    Lastly, and most importantly, your students will need to know where to get help in the future. Some like to read books, so introduce them to O'Rielly's animal farm (as I like to call it). There's also web and IRC locations support options. Remember that the Linux community has won awards for support, so you want to play that up. Linux support is one of those free things where you actually get more than you paid for. Be sure, however, to advise on where to ask what level of question. Newbie questions often get ridiculed on IRC, for example.

    Good luck with your class. I would suggest that once you've put together your materials, you may want to submit a follow-up story. Perhaps you'll plant the seed for a class LUG's can offer all over.

  19. inodes, symlinks, shell, documentation by schoett · · Score: 2, Informative
    Teach them about the difference between directory entries and inodes (hard links, files disappearing only after close) and show them how this allows one to replace files in use without reboot.

    Second, teach them about symbolic links and how this makes it possible to separate logical from physical file locations.

    Third, show them how to do tasks with shell pipelines (don't forget to explain that file globbing is done by the shell rather that by each command).

    Finally, show them that there is complete documentation for everything.

  20. hmm by Iamthefallen · · Score: 2

    Being an MCSD student, I think you need to focus on what can be done with Linux systems and services, not how to do it. To me personally something isn't interesting to learn unless I have a use for it. While ls, grep and cat sure are useful, they don't tell me anything of what I can do with them or why I'd even want to learn a bunch of new commands on a new OS just to run some obscure a-patchy-webserver. Show them how MySQL works, show them how Apache with PHP works. Show them what they can do with a Linux box and when they might find it useful to install one instead of an expensive windows server.

    So show not just how to grep, cat and ls, but give them enough info about what they can do with a Linux box so they might feel tempted to try it on their own. Go through the common services they might come across and what they can do and briefly explain the normal Linux commands as you use them.

    --
    Wax-Museum Fire Results In Hundreds Of New Danny DeVito Statues
  21. I've done this by Beowulf_Boy · · Score: 2

    I've turned a Pro-microsoft Unix Basher around to the point at which they came to me and asked me to setup a *nix lab for them.
    It was my Partner at my volunteer job thingy at school. I am the co-director of the CNE High school Tech Dept. There is me, and my partner, Rob. Rob lies, rob lies alot. At the beginning of the year, he had me convinced he has his A+, his MCSE, and an Associates Degree in Comp Sci, aswell as 2k$ in Microsoft stocks. Since then, I have found none of this to be true, yet he does know a damn lot about adminning NT and somewhat of 98. I take more care of the teachers computers, the lab computers, and stuff like that. I make sure defrag is ran in all the labs and on all the teachers computers monthly, etc, etc. I also upgrade, fix, and repair. I can strip a computer to the mobo and have it back together in 2 minutes, Rob can re-install NT from corrupted back-up tapes.
    Anywho, I setup a linux lab (redhat 7.1 with XFS and icewm for those who want to know) as an internet surfing lab at the middleschool. So far since November all I've had happen is one X server crap itself, and I just re-ghosted it.
    Rob manages the 98 lab (I keep it running, it just installs software and such.) Imagine 5 groups of 30 highschoolers a day in there. It is not fun. Stuff gets deleted, uninstalled, one machine had 10 copies of AIM installed, etc.
    Then there is the 486 Lab, which is primarily for typing and some internet research. After seeing the sucess of my Linux lab (some students are supposedly confused by it, but I don't see how, Netscape is pre-started and that is all there is), he finally came to me and said, "I want to put linux in the 486 lab". know that any current distro would be slower than my overweight grandma, and that no older ones would easily allow a journaled FS to be setup, we are now planning on installing QNX R4, but its similar enough to be counted, eh?

    1. Re:I've done this by Beowulf_Boy · · Score: 2

      It all gets better next year.
      We will have having Win2k and Terminal servers on everything. But when I asked what keeps them from press alt+f12 or whatever to get back into windows and screwing with stuff, he just stared at me and said not to tell anyone!

  22. bring them distros by jd142 · · Score: 2

    Yes, you'll be out a few bucks for the cd's, but why not bring in a copy of red hat, mandrake, debian, whatever you want. Maybe two different distros to show the variety. Whatever distro you are comfortable with. Bring enough for everyone, that way everyone can walk out with the ability to do whatever you showed them.

    Let them know about the local lug if there is one.

  23. Make 'em "Think Unix" by Big+Sean+O · · Score: 2

    Jon Lasser has an excellent book which assumes you're a computer user, but new to Unix. He starts out with "Unix Documentation" or "how to understand poorly written man pages" as I like to call it. Then he talks about "Files and Processes", "Redirection and Pipes", and "Networking". Later he gets into vi, regex, and shell programming. Finally he talks about the X Window System.

    It's a good book. I learned Unix from reading it. The book would be a good starting point to creating an interesting class.

    --
    My father is a blogger.
    1. 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?

  24. Great book - Linux for Windows Administrators by Brento · · Score: 2

    Check out Linux for Windows NT/2000 Administrators by Mark Minasi with Dan York and Craig Hunt. It's from Sybex. Can't recommend it enough, got me started - explains everything from a Windows point of view, and doesn't bore you with things you already know from Windows experience.

    --
    What's your damage, Heather?
  25. You're getting off topic! by ddstreet · · Score: 2
    ...show that there are free alternatives...

    WHOA! Hold on there.

    What is the course you are teaching? An intro course on *NIX? Ok, great - but why are you now trying to throw in Free Software? That is not what the course is about!

    Forget trying to convert any of these M$ students. That is definately not what they are there for. What you should be doing is teaching them the basics of *NIX. Don't try to mix in political rhetoric. Whether or not MySQL/PostGreSQL can beat SQL Server is completely irrelevant to the course.

    Stick to teaching *NIX intro stuff, don't get into Proprietary vs. Free. In 2 days you will not convert any MSCD students. Really.

  26. Ok, but show them something useful by KidSock · · Score: 2

    After you show them where the man pages are and how to use the tab key be sure to show them something useful or they're just going to ask "why do I want to do this?". For example, run through a simple shell script. Like this one that allows you to quickly update your web page:

    #!/bin/sh

    rm -f ${1}.html && \
    wget http://www.myisp.com/~me/${1}.html && \
    vi ${1}.html && \
    exec ftp www.myisp.com

    Think of examples that do things Windows just doesn't let you do like running X applications remotely. Here's a must read regarding that topic:

    Remote X Apps mini-HOWTO

    The Xnest script from the above would be good.

  27. Side by Side by ArcadeNut · · Score: 2

    Have two computers to demonstrate on. One is a Windows box and one is a Linux box.

    Show them how to do something in Windows, which they should be familiar with, then show them the Linux way of doing things. This will help them remember it better and become more comfortable with Linux.

    For example, something as simple as changing Screen Resolutions. It's a basic thing and it shows how the two are different.

    --
    Visit the Arcade Restoration Workshop @ http://www.arcaderestoration.com
  28. 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.

  29. Cygwin -- an introduction to cross-platform tools by Spoing · · Score: 2
    Since they are going to be using thier MS certifications in an MS environment, it might be good to introduce some Unix-style tools available for Windows like those in Cygwin.

    The only downside to this is that those unfamiliar with modern Unix-like systems might see Cygwin as all that Unix is. I've had some Cygwin users insist to me that Linux really should have a GUI, for example.

    --
    A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
  30. Also: by MAXOMENOS · · Score: 2

    I love yack0's suggestion. I would add this: if these people are MS junkies, you might have to teach them very basic UNIX skills: ls, rm, cd, more, less, pico, etc. Believe me when I tell you that you'll have at least one student who doesn't have even this level of skill.

    Since this is a crash course, you can probably get away with giving them a short cheat sheet and recommending that they get their hands on a copy of Linux in a Nutshell. But don't forget to incorporate at least something about UNIX basics into the course.

  31. What you teach depends on what they need, doh! by mikeb · · Score: 2, Interesting

    I'm sure that many of the posters here suggesting teach-this or teach-that mean well, but most seem to me to be missing the point. You don't start teaching a class or course without an objective, unless you are naive or dumb. The first two things you have to know with any class are a) what do they know when they come in and b) what should they know when they leave. Ok, for this group we have a fair idea of what they know coming in (but all the same, it helps to know if they are CS grads, MIT professors or high school dropouts :) ).

    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

  32. Start with Rute by digitect · · Score: 2

    Definitely start with:
    Rute User's Tutorial and Exposition

    Best learning (and reference) resource I've ever seen for Linux.

    --
    There is no need to use a SlashDot sig for SEO...
  33. What are they supposed to be learning? by Otter · · Score: 2
    These are aspiring .NET developers, right? You don't mention the rationale to be teaching them about Unix but presumably it's to teach them about the platform.

    Most of the suggestions people are making (show them how you can change or theme window managers, install a distro, perform maintenance over ssh, ridicule them) seem to be aimed at MCSEs or admins, not at developers. I still haven't quite figured out whet .NET and its free implementations are or do, so I can't make very useful suggestions (someone come up with better ideas) but I'd imagine teaching them about things like paths, libraries, gcc, scripting languages and available toolkits would be helpful. I don't know how usable Mono and the Qt or Gtk bindings are but you may want to look into them and show them if there's anything yet to show.

    Or Glade, Qt Designer, KDevelop...

  34. Show them GPL software under windows by dasunt · · Score: 2

    I use Apache, XnView, Gvim, PHP, the Gimp, mySQL, and many other applications under windows. Show them that GPL does not have to be an all or nothing step, you can mix and match win32 and GPL, and have a system that you are mostly familiar with, and high-performing apps, for less then the cost of a pure Microsoft solution.

    Then, show them the ease of linux remote administration, the windows compatability, and how linux is usually faster/more reliable on slower hardware. Show them the stability of linux vs windows.

    I'm my experience, the disadvantage you have is warez. There are plenty of 'free', easy to use software for windows if you know where to look. Bring up BSA horror stories, and talk about the GPL.

    Just my $.02

  35. Re:Don't try too much. Actually, don't try anythin by gregfortune · · Score: 2

    They are going to do VB with SQL Server or local Jet databases, and there's nothing in the *nix world that can compete with that combo in time-to-first-pay-cheque. That's a combination of a lot of different factors (including market size) that do not exist in the *nix world.

    Dunno about that... Python, Qt 3.0, and MySQL have a pretty good shot and overthrowing the RAD power of VB. Qt 3 now supports data aware widgets which allow you to tie a DB in a similar way that VB allows. And Python just kicks VB's butt as a language. Qt Designer has some pretty cool stuff like signal/slots, superior layout control, etc that give the form builder in VB a run for its money...

  36. Sun Microsystems solution to the problem by bbh · · Score: 2

    I think Sun Microsystems had a pretty good idea in writing a Sun Blueprint that basically takes a look at how to do a task under Windows NT and then shows the corresponding task under Solaris. It is published by Sun and is called "Solaris Guide for Windows NT Administrators". You can find further information on it at the Sun Blueprints Publications website:

    http://www.sun.com/solutions/blueprints/pubs.html

    bbh

  37. Teach them how to find out more... by sterno · · Score: 2

    Given that you are only going to have two days for this crash course, the amount you'll be able to accomplish is probably minimal. I taught a Linux class a little over a year ago that was a week long so I had the benefit of a bit more time. But I do have a couple suggestions.

    The biggest one is, teach them how to find out more. These are people who may be used to getting their tech support from paid vendors, and when working with Linux you can get frequently superior support from on-line resources. Teach them how to effectively use google and google groups to get "tech support". One of the most valuable tricks I learned early on with linux was simply looking for an error message in quotes. 90% of the time, somebody already asked the same question and somebody else has already answered it.

    Another thing I would suggest is get them familiar with the basics of getting around on the command prompt. Give them a reference sheet with the most useful commands and the most useful switches for those commands. Then if you don't have time to cover them in detail, at least a cursory explanation and that reference sheet should give them the foundation they need.

    Next, I would show them how easy it is to download and compile tools. Find some small piece of software that you use routinely, and then show them how to build it. Knowing that most packages can be constructed using the standard ./configure, make, make install, can take that edge of fear off that might be associated with having to compile their own tools. Just be sure you know it works on the machines you have to work with.

    Overall thought I think the focus, given your short time, should be making them feel comfortable with working on Linux. If you get them comfortable, then they can figure it out from there :).

    --
    This sig has been temporarily disconnected or is no longer in service
  38. 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.

  39. Re:They'll Ask by big.ears · · Score: 2

    You can give them the best answer: Many linux people use the windows key every day--unlike Windows where its just a useless advertising key for most. Once you map the windows key onto meta, it becomes an important key, akin to Macs open-apple command key. I use it in emacs, for moving between desktops, for moving windows between desktops, for maximizing and minimizing, etc. It is especially useful if you have a laptop, because you can eliminate most of your mousing by having multiple desktops and using meta-key combinations to move around from application to application!

  40. Re:Don't forget VI by hattig · · Score: 2, Insightful
    I will have to disagree. These people need something like Notepad, not VI.

    Emacs would be better because at least you can type stuff straight in after running it, and it has some menus, and saving files is simple ctrl key stuff. In vi, doing 'i' to start editing, and then wondering why the cursor doesn't wrap around at the end of lines, and then "esc", ":" "w" to save the file is just too much for these people. Vi isn't normal! vilearn is a good tutorial program, but these people are not here to learn Vi. Mention Vi as an editor available on every Unix system, mention that it is complicated, but they can use gvim as an OLE editor within Visual Studio...

    Pico is suitable - it is easy to use and has a help system. In a GUI environment, just use gedit or kate or whatnot.

    Overall I agree with the people that advocate showing what you can do with a Unix system, not how to do it. Show the development tools available, show the services available, etc. Show differences between Windows and Unix equivalents. Don't be evangelical about Unix, be realistic. Explain that the systems are different, and both have advantages and disadvantages...

  41. I wouldn't bother. Seriously. Here's why. by Bowie+J.+Poag · · Score: 2, Insightful



    In my opinion, the idea of getting Microsoft junkies to sit down and understand Unix is beyond your typical Microsoft junkie's ability. I'm not trying to sound condescending in that, either. I just think that theres a point where someone gets so entrenched in one way of doing, and one way of thinking, that they lose the ability to "switch gears" and pick up something fundementally different. I'll give you two examples:

    There was a guy I worked with named Brad. Brad was an ardent Windows guy. He knew nothing about any other OS'es other than Win32, other than their names. In his mind, Win32 was the pinnacle of operating systems because it simplified complex tasks down to a predictable series of point-and-click operations, and like most Win32 gurus, he had absolutely no idea how anything worked under the hood. He had no idea what a kernel was. Infact, anything below the driver level was completely black box to him. In summary, Brad, even though he knows his stuff, is completely oblivious to the merits and drawbacks of his own platform, because to pursue Win32 know-how as a career path assumes that you enjoy remaining ignorant about certain aspects of the machines youre running. It resembles something more of a religious belief than it does a philosophical belief.

    Unix, in its form and in its structure, is the polar opposite of Win32 in regard to how you approach it. You're not only encouraged to grab a shovel and dig deep into the platform, you're required to do so if you expect to gain mastery over it. That being said, Win32 users are unaware of this process. They think in surface-layer terms, whereas Unix people know their systems from the ground up.

    What makes matters worse, is Linux, and the idea that the whole damn platform can be looked at, dissected and understood down to the source. While this is an advantage to a Unix guy (since we are used to doing such things) , it presents an insurmountable task to a Win32 user, who's concept of computing often does not extend below the GUI.

    Here's another anecdote that illustrates the point i'm trying to make: Where I worked, a bunch of Win32 users were given the task of conducting performance evaluation and testing of RAID arrays under AIX. I appeared to be the only guy in there who had anything more than a extremely cursory knowledge of Unix. After a day or two, I began to wonder why all of the AIX hosts were being rebooted so often. I had a look at all the machines and their uptimes, and discovered that these boxes were being rebooted about once a day. I asked why. They looked like deer caught in the headlights....It turns out that whenever they were trying to remedy a config-related issue, their first instinct was to reboot the damn machine to fix it. To explain the concept of "uptime" would have been futile. To explain the notion that "rebooting is not how you fix a problem in Unix.".

    In short, they just plain don't get it, and its doubtful they ever will.

    Cheers,

    --
    Bowie J. Poag

    1. Re:I wouldn't bother. Seriously. Here's why. by SwedishChef · · Score: 2

      I agree completely. It's a fundamentally different way of looking at operating systems and changing someone who is as entrenched as an MSCE would be in W32 is damned difficult.

      On the other hand, moving a *nix guru over to W32 isn't difficult at all... they already know the details of how things should work, so it's just a matter of learning which buttons to push and which concepts have been redefined ("domains" to name just one).

      --
      No one ever had to evacuate a city because the solar panels broke!
    2. Re:I wouldn't bother. Seriously. Here's why. by Bowie+J.+Poag · · Score: 2

      The premise is false. Anyone can learn new skills, especailly in the computer realm.

      Sure. Anyone can learn new skills. But they'll never be as skilled or as technically proficient as someone who has dedicated the majority of their focus to the same pursuit. This is particularly true in Unix. Personally, i've been doing Unix for about a decade. Ten years straight. By your logic, anyone who takes an Intro to Unix course at a community college has an equivalent pool of knowledge. If anything is patently false, its your assertion that dedicated pursuits of knowledge are pointless. Instead of true professionals, you'll have a group of people who have an equally poor knowledge of everything.

      I write kernel level code for Windows from time to time. I customize and develop drivers as needed. I muck about with all the same things that even the most ardent Unix guru deals with.

      Then you realize that you are in an incredibly small minority of Win32 "professionals". Surely you aren't claiming that having a deep knowledge of Unix is equivalent to a deep knowledge of Win32..(!)


      Here we go again with the "Unix people are better because they can handle source".
      That wasn't what I was saying at all. I was merely pointing out that the availability of source adds an extra layer of complexity that Win32 are completely sheilded from. What is a requirement for our discipline is an exotic, far-flung side issue for your discipline.

      Somehow you seem to think that if we don't all choose to be BOFH we are useless, an unneeded appendage. Quite the contrary. The world needs both Win32 and Unix. I just prefer that the two not mix..I'd no sooner put a Win32 user behind the wheel of a supercomputer than I would put rollerskates on a horse.

      Cheers, and speaking of rollerskates......

      --
      Bowie J. Poag

  42. Keep them interested. by iq+in+binary · · Score: 2, Interesting
    One of the things that gets me interested in things and makes me want to learn more about it is when I see something really useful or cool or whatnot done with what I want to learn about. Take electronics for example, my electronics teacher got me interested on the first day by pulling out a mic/transmitter array that could be used for very devious purposes (say, room tapping). This caught my attention quick (I'm 16, what d'ya expect). A good way for you to teach them, especially in crash course format, would be to get them to want to be able to do something "up there", like piping
    • 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

    --
    Of all the Universal Constants, here's one I know: Nice guys finish last ;)
  43. 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.

  44. Xargs, find, grep by mark_space2001 · · Score: 2, Informative
    There are many other good ideas here. I'd like to add my 2 cp for xargs, find, and grep.

    These shell commands are good by themselves but great when used together.

    find /etc | xargs grep "eth0"
    will find every config file under /etc (and all subdirs under /etc) that file that references the string "eth0". This can be a life saver when you found a reference to some constant or variable but you have NO idea where it is set. The command combo I gave above is probably the only reason I managed to get my firewall configured, the first time it did it.

    Do this from a GUI with three or four shell windows open, so you can grep in one window and keep a file or two open (runing vi, or whatever) in the others. Then do the same thing with NO GUI (yes, Linux runs great like this, esp. on old crapy machines, e.g. my firewall again). Show them how to use ALT-Fn to get multiple screens with out the GUI.

    Show them also

    find .
    to look in the current directory, and
    find <b>dir</b> -type f
    will locate only regular files (ignoring links), which is nice for reducing spam.

    Also show them

    xargs -i command {} more args ...
    for when xargs can't append the commands, or needs to run them singlly.

    Also, point out http://www.tldp.org/. The Linux Documentation Project isn't the be-all or end-all, but some of their how-to's are invaluable if you have nowhere else to turn.

    Good luck!

  45. ESR's Drag.NET by bemis · · Score: 2, Interesting

    check this out.

    ESR did this piece about setting his wife (a windows-junkie-lawyer) up under Linux/KDE ... it's amusing, not entirely serious, but might prove helpful.

    bemis

    -The fellow who thinks he knows it all is especially annoying to those of us who do. - Harold Coffin

  46. cat is not useless by 0x0d0a · · Score: 2, Interesting

    I don't understand why people *care* unless they're writing something that's absolutely performance-critical (and then I suspect it'd be in perl, not in shell).

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

    1. Re:cat is not useless by maraist · · Score: 2

      The complaint about using grep + awk is just stupid. grep is significantly faster than awk, anyway.

      Couldn't find where you were referencing this (guess it was in your link). In any case, I don't see where grep is shown to be "faster" than awk. I'm sure you know their respective purposes, but awk and grep use the same type of searching algorithm (DFA), so the only slowdown in awk is because it does more with each line (e.g. run the provided script). sed on the other hand (like perl) uses NFA (so as to do search/replace on the input stream), which is fundamentally slower.

      Just felt like throwing that tidbit in.

      -Michael

      --
      -Michael
    2. Re:cat is not useless by jedidiah · · Score: 2

      Some people prefer their filters to flow in one direction and one direction only, namely from left to right. Many find this style of scripting to be more readable and maintainable.

      --
      A Pirate and a Puritan look the same on a balance sheet.
  47. Learn about them first... by mike_the_kid · · Score: 2

    If you go in with a bunch of preconcieved notions about what these people know and don't know about Unix, you won't reach them. The certification they are going for looks like its for developers. There are certifications for Office, and there are probably idiots in there. The people going for this certification are programmers / developers / engineers, and you should treat them with professional respect. That means not going in like a Linux Hare Krishna looking for conversions. See if they have used Unix / Linux before. See what they know how to do, etc. Show them how to use Emacs or maybe vi. Your job is to teach them as much as you can in two days about a system with a steep learning curve.

    Every comment here says that you should be pushing linux, how simple it is, etc. The beauty of CLI, the elegance of | . If you want to go that route just write on the board "I am LETE I OWNZ YOU". But I think you should give these people credit. They are learning VB or C#, and most people might think that makes you a loser, but give them credit for trying and withhold your judgement.

    --
    Troll Like a Champion Today
  48. Comment removed by account_deleted · · Score: 5, Insightful

    Comment removed based on user account deletion

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

  50. More Ideas tailored for Micro-weenies.. by AntiChristX · · Score: 2, Insightful

    1. Start/stop kernel module services. Show how you can change the network setup by editing /etc/sysconfig (or wherever), stop it, and restart it, all in a few moments.

    2. Push remote access, like ssh, which gives a user full control of the box from remote, something that is difficult to do in NT w/o consuming many resources (TB2,etc)

    3. SAMBA. Install Samba from the cd and show how they can manage and use their (precious) Network Neighborhood stuff, connect to remote computers, etc.

    4. Routing. Show how any linux box can setup firewalls and complex routing with a few commands.

    5. Security. Run nmap against your now-configured linux box and compare it to, say, a windows 98 box. Show that linux can be locked down for the miscellaneous user.

    6. Support. /., freshmeat.net, linux.com, sourceforge. Show that there is active community involvement in all aspects of development, and that when problems arise, they are not occluded, but rather discussed and FIXED.

    Maybe not everything can be covered in two days, but hopefully this helps. I was once a M$ kinda idjit, but the above points, as well as many other good suggestions already discussed in this thread, helped me to kick the GUI.

    Not your typical post from,

    --
    AntiChristX
    Daring to remain below 5 karma indefinitely
  51. the tab button? by JDizzy · · Score: 2

    Obviously the magic tab button does something, oh gosh.. but what? Such a calaiber, to teach Microsoft junkies the way of the TAB key... oh mysterious TAB key... what do you do? And why bother, since giving a crash cource on Unix to Microsoft junkies they would likely not be using a shell where the all might tab key does anything other than tab. Uh.. am I missing something, or is this yet another BASH hooked persons who really don't know unix... considering your more likely going to teach a newbie a more standard shell like the korn shell of the simple sh shell. So they can actualyl do some work on real unix. Never teach a newbi on bash, it a bad idea... cuz they flounder on real unix where they have real shells, or rather they have old shells. Word to the wise. ;)

    --
    It isn't a lie if you belive it.
    1. Re:the tab button? by spongman · · Score: 2

      yeah the TAB key expansion in bash isn't such a wow since CMD.EXE can do exactly the same thing. try typing 'help cmd' in a command prompt sometime...

  52. Wait just a goddarned cotton-pickin' minute here by dzym · · Score: 2

    You're teaching a part of a MCSD course and you're teaching them ... *nix?!

  53. Tripping over your cape by Graymalkin · · Score: 2

    Stop oohing and ahhing over fucking bash. If you want to teach people the Unix program meme teach them how to fucking think with pipes in mind. Most people when looking for a file would just type find filename or locate filename and then search through the (oftentimes) enormous list of files that comes up. To experienced Unix users this is retarded, they'd pipe find into grep and look for a specific pattern to find a file somewhere. Teaching this method of thinking to non-Unix users is essencial to having them get anything meaningful done.

    The "wonders", as zealots put it, of Linux are just a very large collection of small tweaks and hacks that combine the features of dozens to programs to do something useful. The syntactic stuff like the actual commands for listing the contents of a directory are something you can shove onto a reference guide and only need a quick glancing over. Teaching people to REALLY use the tools they've got available is the important part. The file system hierarchy is pretty simple and just given an overview reference for it ought to be enough for people in a MSCD course. Focus on how to configure, start, stop, and importantly RESTART daemons. The damnest thing when running Linux is to not have someone simply poit out that restarting a daemon will make it reload the configuration file. Novice users don't know this and end up doing shutdown -r (or for the more technically adept init 0) instead of just restarting the daemon process itself.

    The little tricks experienced users take for granted are the reasons people come to them with a million and one questions on how to do stuff. If novices knew to ps aux | grep process rather than running top and trying to decipher what all the hoobajoob means (and figuring out its backwards fucking commands) they'd be in a much better situation. As it stands too many people introducing Linux to novices go into how great and powerful ls is like it is going to solve world hunger or something. Brush over the simple commands and hunker down over combining those simple commands to do really spectacular things. Impressing people doesn't mean shit, don't try wowing people with virtual desktops or consoles. No one gives a fuck about "true" multitasking or telneting into some server somewhere. Show people how to get stuff done rather than harping on how great your OS is.

    --
    I'm a loner Dottie, a Rebel.
  54. First thing to teach by Bagsy · · Score: 2, Insightful

    The first thing I got taught is "UNIX is hell to visit, but heaven to live in". That phrase is very true I think. At first UNIX might seem strange and odd in several ways, but when you get the hang of it you appreciate it's design and fundamental thoughts.

  55. Re:Don't forget VI by xtremex · · Score: 2

    In the past year, I've installed HP/UX, SOlaris and AIX. The vi is different ont he commercial platforms than it is on Linux. When I switch from a Linux ssh connection to an AIX session, I forget that backspace doesnt work on AIX (unless I set up the env). It annoys me. I wil forget that x and d deletes, after using vim for so long

    --
    If you're not a Liberal in your 20's, then you have no heart.If you're still a Liberal in your 30's you have no brain.
  56. 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!

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

  58. Microsoft "Junkie" by Tadrith · · Score: 2, Insightful

    Well, first off, I myself work in the exact same environment as the people you are trying to teach. I've been working in with a VB+MSSQL combination for about two years now.

    Unless you can show them a good graphical replacement for Windows as the UI, I would focus on using the alternatives on the back-end only. Despite the reputation VB has around here, it does have it's proper place. Many people who work with VB (like myself), aren't necessarily "Microsoft Junkies", as you say, but ordinary programmers who need to make a living, and don't particularly care what they're working with, so long as they're programming. In this case, it comes down to what the customers want. Until Linux is on the desktop, the customers will keep demanding Windows, so it wouldn't do much good to try to convince these programmers to use Linux for the interface.

    Focusing on the back-end, I would show them how they can connect their VB applications to the database, and focus on that connection. Once the connection is made, they know what to do with it. If you can show them how easy it is to use, they can bring this knowledge back to their bosses. This will impress their bosses, because they can essentially give their customers what they want at a lower price, due to MSSQL being out of the picture.

    But guaranteed, if they take ideas of using Linux for an interface instead of Windows back to their bosses, it'll get tossed out the window. Believe me, I know - I've tried it before. At least doing this, you can win one battle at a time - first the database backend, and then the front-end at a later date. :)

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

    1. Re:MCSD not MCSE by partingshot · · Score: 2

      • 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

      Cool. I actually found someone that read more than just the headline.
      The only MCSDs that I know are top notch programmers that primarily work in C++ under windows & unix. I don't know about the cats that will be in his class, but if they are anything like the guys I know and he teaches it like he plans (ala linux for dummies), he will get roasted.
      --
      Anonymous posts are filtered.
    2. Re:MCSD not MCSE by iabervon · · Score: 2

      What I'd demonstrate is a program with a bug in how it calls a library function. You run the program and it segfaults. You run the program under ddd or gdb or something of that sort, and get the backtrace. You look at the source for your program where it calls the library function, and it's not obvious what's wrong. Then (and here's the neat part), you go down the backtrace to where the segfault is, and you're looking at the library source. There, by looking at the values of local variables, it's obvious what's wrong with your program (you're calling the library with the wrong thing or something).

      One of the coolest things about Linux is that you have all of the source to everything available, and you can have your libraries with debugging symbols, and you can look at exactly what it's doing. This can be incredibly helpful when the documentation is somehow vague or when you're misreading it (and don't know what part you're misreading). I certainly miss that when developing in Java with Sun's library.

  60. No need to reboot by craybob · · Score: 2, Interesting

    I've been working with our new systems guy and he only knows Windows administration. His biggest hangup is that he tries to reboot my server 4-5 times a day when he changes anything. I try explaining that before he got here it had an uptime of over 2 years and he can't comprehend it.

  61. Software Installation, done properly. by Nailer · · Score: 2

    Show them how to do it properly - using their package manager. Not only will this allow the software to be installed, uninstalled queried by other apps, and otherwise interacted with in a standard fashion. You'll also be able to easily repeat installs between systems, allow users to easily recompile from source (RPM, the standard packaging system on Linux, is based around source packages which can be easily recompiled with whatever extra configure flags you want). When someone else inherits a machine you administer, you won't give them a headache as your installs have been largely self documenting.

    Here's a sample .SPEC file which should be useable with just about any standard tarball / GNU autoconf app:

    Summary: An addictive and frantically paced puzzle game with cute 3D graphics
    Name: crack-attack
    Version: 1.1.7
    Release: 1mm
    Source0: http://aluminumangel.org/cgi-bin/download_counter. cgi?attack_linux+attack/%{n
    ame}-%{version}.tar.g z
    License: GPL
    Group: Amusements/Games
    BuildRoot: %{_builddir}/%{name}-%{version}
    BuildRequires: glut-devel
    Requires: glut
    %description
    Crack-attack is addictive and frantically paced puzzle game with cute 3D graphics, pla
    yable either against the computer in single player or across a network multiplayer, w
    here one players success clearing blocks dumps large immuntable tiles upon the others
    block pit. Muahahahaha!
    %prep
    %setup -q

    %build
    %configure
    make

    %install
    %makeinstall

    %post -p /sbin/ldconfig

    %postun -p /sbin/ldconfig

    %clean
    rm -rf %{buildroot}

    %files
    %defattr(-,root,root)
    /usr
    %doc AUTHORS COPYING INSTALL NEWS README

    %changelog
    * Thu Apr 11 2002 Mike MacCana 1mm
    - Created packages

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

  63. Import their Outlook contents by sofar · · Score: 2


    OH PLEASE PLEASE PLEASE tell me how to do this d00d!!! I've been wasting *weeks* to get all my e-mail (550Megs) back into the original unix mailbox format (or *anything*) that comes close, and up to now only libPST (*very* Alpha!) is getting close to this functionality.

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

  65. Re: by man_ls · · Score: 2

    Exactly.

  66. Re:DOs and DON'Ts in my experience. by daveman_1 · · Score: 2, Interesting

    Don't

    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. ;o)

    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.

    --
    Russian Russian Russian RussianDollSig DollSig DollSig DollSig
  67. Re:Don't forget VI by DarkProphet · · Score: 2

    Good luck finding a "notepad" lookalike that's available on any Unix system. I think you are thinking too Linux centric when you're suggesting emacs or pico. While these tools are probably closer to what they are used to, they are just not going to be available on a standard install of say Solaris, AIX or another commercial Unix. Even on a lot of Linux systems they will not be available. OTOH It's a pretty safe bet that vi *will* be available. Anyway, I thought the purpose was to teach them things they don't know yet (like vi) as opposed to things they already do know (like notepad).

    Kedit. Gedit. Kwrite. They're all close enough to Notepad for me.

    --
    What could possibly hurt the security of the American people more than giving our own government the ability to hide its
  68. Crash Course by Dr.+Kinbote · · Score: 2, Funny

    I think the term "crash course" should be
    restricted to MS OS classes.

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

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

  71. Comment removed by account_deleted · · Score: 2

    Comment removed based on user account deletion

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

    Comment removed based on user account deletion

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

  74. Re:DOs and DON'Ts in my experience. by sheldon · · Score: 2

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

    In other words, show them how it will take them 5 times longer to build an app.

    "Show them how writing code yourself actually is a good idea!"

    Only if you are a consultant because it drags the project out 5 times longer. :)

  75. You must teach the roots of Unix by garfycx · · Score: 2, Insightful
    Hi!

    If you just focus on standards and deamons you only show them several single aspects of a unix system without showing them the unix system itself. When they are on the way to an MSCD they already have a vision of an OS and how it should work. you can't fight against that with some standards here and some deamons there. They must learn why unix samples all functionality in a virtual tree and why it bases on tools. This helps them to understand why Samba is not just a clone of a Windows Strategy and why the Filesystem Hierarchy is not just complex but functional etc.

    Don't forget the glue, and that is the unix philosophy. It gives the audience the information they need to stay away from prejudices and to find correct answers and assumptions on their own thinking.

  76. VB+Acess vs VB+PostreSQL/MySQL by Bodrius · · Score: 2

    Depending on your target class (there are many kinds of MCSD/E students), teaching them that their VB solutions are not completely tied to the Microsoft products is probably the best idea.

    Someone mentioned that mySQL is not a replacement for SQL Server, which is true. But SQL Server is overkill for a lot of projects, and because of the expense they might end up using (argh!) Access. Any of those two open-source products are Access (argh!) killers.

    A lot of Microsoft junkies make VB projects tied to Access/Excel (argh!) for a living, particulary those interested in the VB road of the certification. Although sometimes convenient for a number of reasons (data is already there, users use Excel, etc), it is often a very impractical solution.

    Once more, which product to show off depends on the target. Some DB junkies would have problems with mySQL's missing subselects, young foreign key implementation, etc. but like PostreSQL a lot. Others would like mySQL for the same reason some open-source hackers do and wonder what all that relational integrity stuff is about.

    Another thing: use a nice Windows-like GUI (KDE/Gnome) to show them around the system. Don't even mention WindowManagers or things like that until the end. Let them explore the new tools on a familiar GUI they already know how to handle. Heck, use one of those Windows themes to see who's the first to notice it's Unix, if you can get away with it.

    Show them some nifty tricks on the command-line, but not too many. Piping, redirection, grep, tail, man (don't forget man! they'll be typing /? forever!), are all good, but if you get serious many of them will get lost and be wondering why would they want to do "that command-line thing" in the first place.

    Show them the kind of things they can do on the shell without having to consult man. Then do them through ssh somewhere else in the world, preferably in a box with another Unix (Solaris, SunOS,etc). Then show them a bash script doing something they would only expect an "EXE" to do as an example that people do really complicated things with it.

    Then, tell them they can get these tools for Windows. Most of them will not try Linux just because it looked nifty when you showed it to them, but if the useful tools available for their platform make them take open-source seriously, that might do the trick.

    --
    Freedom is the freedom to say 2+2=4, everything else follows...
  77. Stay focussed. by Paul+Komarek · · Score: 2

    You want these people to take something home with them. Two days is very little time. Stay focussed and don't go for breadth. It's fine to do a whizzy tour of lots of stuff for the sake of impressing them and whetting their appetite, but keep the rest simple and focussed.

    I've screwed up many one-on-one linux|computers|math|whatever teaching sessions by trying to cover too much stuff to quickly. I'm always forgetting to make it clear to the other person *exactly* what my objective is at all times. As a result, they aren't sure what to "take home" with them, and they end up taking almost nothing home besides the fact that I know what I'm doing and they don't.

    So stay focussed. Make the curriculum simple. Whizzy tours are good, but don't expect them to take home more than "gee-whiz" from them. Make it clear at all times what your objective is.

    Of course, these rules have very little to do with teaching use of unix systems. But it's while teaching these things that I most often forget these rules.

    -Paul Komarek

  78. Probably useless by Alex+Belits · · Score: 2

    The course on Unix that will fit into that time, taught to people that just received a dose of Microsoft propaganda will be like teaching geography to someone who believes that maps are meant to be drawn with America in the middle. Those people were learning Windows for decades. They believe that "double-click launches things" is the law of nature. They think of Windows ways of doing everything as "intuitive" because this is what was burned into their brains over the years of using it.

    The course that they have just received only reinforced that, plus given then a lot of "knowledge" about how to reproduce someone's performance of trivial tasks -- in Windows, using Microsoft tools, speaking Microsoft terminology, and with Microsoft step-by-step explanations. If it prepared them to anything, it's certainly not thinking about anything outside Microsoft world, or independent thinking of any kind, anywhere.

    Whatever you can tell them will only enable them to say "yeah, I know Unix" -- and then cause a spectacular mess when actually trying to use it. I believe that the only way to make those people less dangerous for Unix users is by humiliating them thoroughly and mercilessly, so every time they will see or hear anything about Unix (or anything advanced at all) they would get the painful feeling of their intellectual inferiority, and will shut up, so others can complete their work without them interfering or trying to convert yet another thing to Windows.

    --
    Contrary to the popular belief, there indeed is no God.
  79. Actually .. by cje · · Score: 2

    Historically speaking, the difference between "bin" and "sbin" has had nothing to do with the intended users of the software (superuser versus "mortal.") The "s" stands for "static", and has always typically been the home for statically linked binaries that are available for cases where the C runtime library is (for whatever reason) unavailable (maybe the filesystem it resides on is unmounted, maybe some idiot admin deleted it, etc.) Now, it just so happens that most of these programs are really only useful to root, but it was never the original intention of UNIX vendors to store "root-only" programs in "sbin".

    (This is not to say that it's a bad idea or that things haven't been migrating that way in recent years and in recent distributions.)

    --
    We're going down, in a spiral to the ground
  80. 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
  81. No offence but... by Otis_INF · · Score: 2

    When people have to possibility to use Visual Studio.NET or Visual Studio 6, why would they be impressed by a stack of commandline tools, emacs and CVS?

    What these people NEED to learn is HOW to connect to other machines from their windows boxes, like connect to an Oracle installation or a postgresql installation on Linux/sun/other unix. But frankly, most of them will simply look for an ODBC driver, if it's not there, they will leave it or look for Host Integration Server to do the job.

    --
    Never underestimate the relief of true separation of Religion and State.
  82. MS Developers don't want to use commandlines by Otis_INF · · Score: 2

    (NOTE: The uni I graduated was a 100% unix shop, I developed on Unix for years, now I'm a 100% windows/.net developer, I know both sides)

    A general rule: MS-targeting developers are used to have powerful tools that do stuff with a click of a button. Don't bore them with commandline tools. Sure, on windows commandline tools are also used, but since a lot of tools have powerful gui's, they're not that necessary, especially not when you're a developer and living in visual studio all day.

    It's of no use to teach these developers what AWK is or bash-scripting. What they need to know is how to connect from a windows box to a linux box to do stuff they otherwise would have programmed into SQLserver f.e. _THAT_'s knowledge they will not learn otherwise plus it's knowledge that comes in handy.

    Teaching windows developers how great linux is from the point of view of a linux user, is useless, since windows developers know what they have, know what their system can do and will compare their system with what you'll teach them. And no offence, but nothing compares to visual studio at the moment.

    Again: the problem with windows developers is that sometimes they lack knowledge about how to use a database or service (call it daemon, whatever you want) located on a different platform in a way that is efficient. However, this knowledge has to be taught with a windowsdeveloper's POV in mind, since THEY are going to use that knowledge. So commandline tools how to query a MySQL database is not useful. How to set up a VB program to connect to a MySQL database IS useful, plus show how to program transactions using innoDB, if that's possible (but I doubt the latter, since afaik MySQL doesn't have a DTC driver)

    --
    Never underestimate the relief of true separation of Religion and State.
  83. Emphasize Linux mindshare by Jeppe+Salvesen · · Score: 2

    One thing you should mention that is not technical (and this is probably something you want to put into the introduction), is the fact that Linux/Unix is used in most colleges. College graduates like Linux. This is in fact one of the ways we are moving towards world domination - we are making that would-be college graduates are introduced to Linux at a rather early stage.

    You should also emphasize the vast number of libraries with already implemented algorithms, ready for them to use. CPAN is a good example. Also, a bit of freshmeat is quite impressive and motivating.

    Once you have them motivated and convinced that Linux is the way of the future, you can start being more technical - showing how the CLI can be effective, how apt-get is the automatic, up-to-date, nighly version of windows update, how tunneling X through ssh enables them to run apps remotely.

    These developers are future .NET people. Maybe show them some SOAP stuff on Linux? Show them some databases? Admit flaws, emphasize strengths.

    Oh - and show them the way of groups.google.com!

    But - again, never let them forget that the Linux mindshare is ever expanding, and that IBM is investing heavily into Linux.

    Finally, maybe show them a java app the runs on both Windows and Linux, thus proving that they can work together?

    --

    Stop the brainwash

  84. Re:Cygwin -- an introduction to cross-platform too by spongman · · Score: 2

    Good call. I use Cygwin extensively on my windows machines. I used to use 4/NT as a command line replacement, now I'm moving more towards bash. The cygwin distribution is remarkably rich one of my favorites right now is sshd.

  85. Re:Don't forget VI by spongman · · Score: 2

    "gvim -y" works ok.

  86. Re:su and multiple logins by spongman · · Score: 2

    runas.exe is their friend.

  87. Fun by hey! · · Score: 2

    Teach them it is fun to have access to the innards of software, to be able to install, test, modify, deploy and share without any @#$*&! license headaches.

    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  88. xemacs by alispguru · · Score: 2

    ... or maybe a pure Java-based IDE. This would at least look similar to the IDEs they're used to.

    --

    To a Lisp hacker, XML is S-expressions in drag.
  89. manpages by scrytch · · Score: 2

    Teach them man(1) (including what that funny parens thing means, I guess). Don't berate them to do it, don't imply that they're easy to read, but they are in a pretty consistent style that they'll get used to. Also, teach them on FreeBSD or some linux distro that actually has manpages. Just tried looking up some docs for xargs, and that god damned "read the info documentation for the REAL docs" came up yet again.

    --
    I've finally had it: until slashdot gets article moderation, I am not coming back.
  90. Re:the best combo IMHO - NOT! by juliao · · Score: 2

    Doesn't seem very effective to me...

    1) Install a distro (preferably one that will have the easiest time with the hardware)

    They'll say: Windows is easier

    2) Configure a windowing environment (prefereably one that looks the most like Windows)

    They'll say: Windows is prettier, and you don't need to configure it by hand

    3) Show them an Office suite (preferably one that's comperable to MS-Office)

    They'll say: Office does it better

    4) Fire up some awesome games (preferably XPilot ;-) or LBreakout)

    They'll say: These games are lame, even solitaire beats that

    5) Start up a variety of browsers (preferable w/ Quicktime, Flash, RealPlayer, XMMS)

    They'll say: why so many? isn't there one that works all around? anyway, IE is better

    6) Configure and use an e-mail client, Jabber/Yahoo/AIM client (Gaim's good)

    They'll say: The GUI isn't consistent with the browser... This Linux software thing isn't integrated at all...

    7) Spend some time on XMMS with various skinns -- and point to http://www.jazzradio.net/ and say, "This is coming from Germany"

    They'll say: Windows does it better, I think

    8) Show them Palm Pilot support (Jpilot's the best)

    They'll say: The windows app for the pilot is better, and comes bundled with the original CD

    9) Show them Quanta's HTML, PHP, SQL, Java and C/C++ syntax coloring

    They'll say: yeah, cool. so what?

    10) Show them a GUI file manager (e.g. Konqueror, et al)

    They'll say: Windows explorer is more intuitive

    So... It's really not a good way to go about it...

    Show them scripting, show them administrative task automation, show them remote consoles and X, out of the box, no additional software, show them the C API, clean, documented, show them the daemons. If they dig it, good. If they don't understand... well, they won't understand.

  91. $ uptime --- Your Most Powerful Sales Tool by BigBlockMopar · · Score: 2

    Show them scripting, show them administrative task automation, show them remote consoles and X, out of the box, no additional software, show them the C API, clean, documented, show them the daemons. If they dig it, good.

    KDE kicks butt, but Microsoft still has the best desktop overall. Unfortunately.

    You have to look at this from their perspective. They've been suckered in by the party line enough to go for a .NET certification. They know Windows desktops and filesystems, the myriad software available, the little glitches that plague in Windows and the pitfalls to avoid.

    They believe that Windows can do everything that Linux/UNIX can. And for the most part, they're right. Sorry, but Windows even does some of it better - GUI, installation.

    Before you show them any of the Linux/UNIX tools and freak them out because kmail doesn't have a convenient pop-up autocomplete address bar, or Mozilla doesn't render Yahoo quite right at 1024x768, or that there's no concept of default file extensions ("what do you mean I have to choose a player for an fscking .wav file?"), show them the one thing they're gonna be most interested in, if they're serious about using the .NET training they're taking.

    $ uptime

    3:31pm up 101 days, 9:03, 5 users, load average: 1.37, 1.11, 1.04

    Uptime is so much more than a number. It's a sales tool. And we're trying to sell the world on alternatives to Windows.

    Remember, to a Windows user, long uptime is...

    • ...freedom from blue screens.
    • ...freedom from freezing.
    • ...freedom from the system getting gradually and inexplicably slower even though Task Manager says nothing is wrong, until finally you hit the scram switch in frustration.
    • ...freedom from having to reboot the computer every week when a new IIS patch has to be installed, and the ability to update Apache, bind, etc. by simply installing it and restarting that daemon.
    • ...freedom from having to listen to users whine that the mail server is down for the three minutes it takes for the thing to come back up.
    • ...elusive.

    It's worth pointing out to these people that all the longest-running servers on Netcraft's web server survey are *not* running Windows. Not one of them. Microsoft fans will argue that IIS wasn't out when some of the machines in Netcraft's top uptime list were last rebooted. Not true: IIS came out with NT 4.0 if not before, and that was 1996, far more than ~1250 days of uptime the longest-running Netcraft record-holders have been up.

    Even so, thinking back on it, reminding these people that Windows 2000 was still on the horizon and pets.com was still attracting investors when these machines were last rebooted, ought to be a selling feature.

    My server is a selling feature, too. www.glowingplate.com is currently running on a Pentium 90. It's been up and running for 101 days, generates a lot of pages dynamically for about 5,000 Google visitors a day, usually keeps a CPU load of 1-3, and was last down because of a power failure.

    Not a world record uptime or performance load. Hell, it's still even running the distro's stock kernel. But I've never seen anything like it with IIS.

    --
    Fire and Meat. Yummy.
  92. Re:They'll Ask by RandomPeon · · Score: 2

    The windows key is great in Linux!!

    It's mapped to "hyper" in most distros. Go into gnomeconfig and you can make it do whatever you want without fear of colliding with other shortcuts.

    On my box, Windows-x opens and xterm, windows-s executes "xmms -p playlist", windows-d minimizes all windows, and so on....