So, you want to learn Linux... (which, btw, some people call "GNU/Linux"—Linux is the guts, but GNU provides indispensable utilities.)

First of all: while Linux has made vast strides in the desktop usability area, it's still sometimes a fucking pain in the ass to work with. Sometimes, magically, everything will work fine. Other times, the default install will have your mouse wheel be broken, or your printers unrecognized. There are fixes for this; Google is your friend.

Secondly: Red Hat is not Linux. Suse is not Linux. Debian is not Linux. They are Linux distributions. That is, they take the OS (i.e., Linux), and add a whole metric fuckton of third-party programs (many from GNU, hence "GNU/Linux"), and bundle them all together. And then, uh, distribute them, with their own customizations. Sometimes with technical support, sometimes just because they think it's cool.

Thirdly: Linux veterans are insanely helpful towards newbies. It is often joked that the fastest way to get help about Linux is to say "Linux is gay. In Windows, I can do , but Linux can't do that." Within minutes, you'll have tens of Linux users enumerating to you the many ways you could accomplish that. Please use this knowledge only for good and never for evil.

Fourth—err... N-ly: you must understand that Linux is by programmers, for programmers. The documentation will often be cryptic, serving only as a reminder for those who know how things work but forgot the exact syntax. Wizards (automated set-up tools, a la Windows) will be few and far between; when they exist, they often won't work.

Having given you this random, aimless advice, I'll close with some concrete suggestions. These suggestions, by the way, take as a premise that you want to learn Linux, not just use it. That is, you wish to gain a deeper understanding of it, rather than just using Mozilla or BitchX (not that there's anything wrong with that):

  • Learn how to use the shell—and generally, this means bash. Become Bourne Again. Use tab completion. If nothing else, understand bash's for loop syntax—it's awesome.
  • Learn a text editor. I recommend nano or pico for beginners. Following that, I'd say emacs—though, if you're feeling adventurous, vim is an option, too. (Don't stop after the first step—emacs/vim are insanely powerful, compared to nano/pico.
  • Don't log in as root; don't do anything in root if you're not sure that it's a good idea. Use sudo. Just remember the proverb: to err is human; to really fuck up, it takes root privs. There's practically nothing you can do that will fuck up your system if you're running as a normal user—you can break your account, yes, but your system will remain rock solid.
  • Use Mandrake. Personal experience suggests that this is the most painless install. (This is as of 2 years ago, when I was a n00b. Please /msg me with any other suggestions, and I'll note them below.)
  • If you're feeling really adventurous, use Debian or Gentoo. There's a lot less hand-holding. If you're feeling suicidally adventurous, use Linux From Scratch.
  • Still in the "adventurous" category, learn a scripting language. I'd recommend Perl or Python.
  • Once you get comfortable with your default desktop environment (KDE or Gnome), switch to just a window manager. I'm a big fan of FVWM's simplicity, but this is obviously a matter of personal preference.
  • Last (and most important): have a mentor. Have someone to whom you can ask random questions and get a quick answer. Obviously, this is an ideal; in a pinch, the Internet can substitute for such a person... just as long as your computer still functions well enough to use it.

In closing, I feel like a lot has changed since tftv256's writeup above. Yes, don't use a WinModem, and yes, some hardware won't work (but not much). But I agree with hir on one point: never give up. It may be a lot of trouble, but being able to customize your computer as much as you want is a great reward. Good luck!

If anyone has any Linux questions that can fit in a /msg, by all means ask me. Corrections/comments to this writeup welcome.