Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

What process/reference/book/faq/tutorial/quickstart/primer/etc would you recommend to a lifelong Windows guy who wants to become a Linux superuser?

EDIT

Perhaps I should provide a little bit of background. I've been primarily a CP/M / DOS / Windows guy for over two decades. I've gotten as far as installing various Linux distros, and navigate my way around the filesystem, install stuff via apt-get, schedule cron jobs, etc. However I've never found myself as comfortable in an *nix environment as I do in Windows. I guess what I'm probably looking for is the definitive Linux primer so I can get familiarized with the basic architecture, how the kernel works, etc. - i.e., become a Linux superuser.

share|improve this question

closed as not constructive by 8088, Randolph West, Joe Taylor, Journeyman Geek, Nifle Jul 31 '12 at 10:01

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

2  
ASAP huh? gl =) –  Joakim Elofsson Jul 30 '09 at 17:06
2  
Do you want to know how to use applications or to administer a workstation/server or something else? –  mas Jul 30 '09 at 17:08
31  
Totally wanted to answer this one with sudo su. Tada! Now you're a linux superuser! –  jweede Jul 30 '09 at 17:29
1  
By the way, you're doing the right professional move. The Linux servers market share is growing constantly, and the superusers growth rate it notably slower. –  Adam Matan Jul 30 '09 at 20:19
1  
@user18151 "Total Linux server in the quarter rose 6.1 percent compared to last year, which means that Linux servers now account for 14.7 percent of all server revenue, up 1.4 points from the fourth quarter of 2009, IDC said.", quoting your own source. –  Adam Matan Mar 8 '10 at 10:19

14 Answers 14

up vote 17 down vote accepted

Play with it.

Try doing something interesting, find the tool that does it well, and solve it.

Programmer? Write Python code that utilizes the OS nicely, write a small server that responses to requests.

Site manager? Install Apache, and build your own webserver.

General superuser? Build a home server for file storage, media playing and backup.

When you decide about a project, you'll find plenty of resources for support by Googling or questioning forums.

share|improve this answer
2  
+1 for the Programming aspect. If you're a programmer, I've found it definitely is the best way to familiarize yourself well with Linux. Start or work on a project solely on Linux for some time, and you will be forced to become acquainted with its many tools and learn shortcuts or tricks. Any project in general though will definitely help, but I believe a programming project will give you the best experience. And it doesn't /have/ to be Python, but Python is nice and easy to learn/use. –  Jorge Israel Peña Jul 30 '09 at 19:13
    
On top of this I would definitely recommend installing and using something like Gentoo or Arch Linux on a regular basis, it's a very refreshing and atoning experience, and will teach them /loads/ about how Linux works in the innards. Reading something like The Debian System Administrator's Handbook would help add to the knowledge banks. –  Finn O'leary 4 hours ago

If by superuser you mean administer your system, or be proficient on the command line, these are good starters:

share|improve this answer

Make your own install, Linux From Scratch following this guide you will build a Linux install manually (without the easy help of a distribution/installer). You might not end up with the best/easiest to use install and it will take some time, but if interested and motivated you might have some fun (if enough geeky) and learn a lot of how all parts work together.

share|improve this answer
    
LFS is the pretty darn low-level. It's a good exercise, and I suspect the OP might be up for it, but others might find it too much. In which case more basic Linux distributions might be a compromise solution, such as Slackware and Gentoo Linux. slackware.com and gentoo.org –  mctylr Mar 7 '10 at 18:57

I've read a few Linux books, and most of them are so horrendously boring that they're only useful as a reference. Extremely good references, but references all the same.

The way to learn is to do. Install a Linux system, and fix EVERYTHING in a terminal, as opposed to in the GUI. Build some programs, install some drivers, figure out what grep, AWK, sed, and find do, learn why doing updates when you don't have the time to fix them is a bad idea, etc., etc., etc.

The point of all this is to break the system by poking around, and then fix it. That's the only way I know to learn how to use an operating system effectively.

share|improve this answer
    
I disagree with fixing everything using only the commandline. What you get then is people who think they know everything about linux but don't know how to do things using the GUI, or sometimes even break things in the GUI with their ad-hoc fixes on the commandline. –  JanC Aug 25 '10 at 3:57

Yep, also man helps a lot if you know what you want.

When my girlfriend started using Linux some years ago, she would launch a terminal, type one or two letters and hit the tab to get the completion list.

After picking a command that looked nice, she just read the man page to see what it did.

And I thought I was curious :)

share|improve this answer
    
Yes, I also like to read manpages, you can learn a lot from them. –  JanC Aug 25 '10 at 3:59

The only way you can become a Linux superuser is to spend lots and lots of time using Linux. There's probably a few books out there that would give you good coverage, but just reading through them in as little time as possible isn't going to make you retain much. Unless you are some kind of autistic savaunt, becoming a super user of Linux will take years of using it.

share|improve this answer

Linux is something you just have to get a feel for. If you want to be a true Linux superuser, you'll need to get comfortable with the command line and its basic commands. Just try doing different tasks, both simple and complex, using google and various forums to accomplish these tasks. Also, learn how to use ssh, because it's pretty much the coolest application ever.

share|improve this answer

I would honestly tell you the exact thing my unix mentor told to me. Read the Man Pages.

They contain all of the requisite detail to wrap your head around.

to get familiar with how to use the man pages you simple type the following...

man man

This reference will always be with every unix system. If you are already familiar with the command line in windows, then you will have a much easier time of this. The man pages will also provide a decent level of detail concerning how each command is implemented in the unix environment. Each man page is not exhaustive in detail, but if you read every page that is out there, I guarantee you will know all you need to about how unix works.

Happy Hunting!

share|improve this answer
    
But "MAN MAN" won't work. Commands and stuff are case-sensitive! Try "man man". –  Jonik Jul 30 '09 at 17:13
    
oh! Good catch! thank you! –  Axxmasterr Jul 30 '09 at 17:17
2  
"man" is good when you need details about a command you know, about parameters, etc. But I don't think you can learn from the beginning with only this. It's good to call on the way, though. –  Gnoupi Jul 30 '09 at 17:19

Install Gentoo. It is a step up from LFS however you still learn a boat load of stuff. I installed Red Hat 7 and was happy going about my business, but I wanted to learn more.

My boss at the time pointed me to Gentoo, it's a source distribution which means no .debs or .rpm to kid-glove you through installs. The Gentoo project has a wonderful guide that one can follow step by step.

As said before in this thread, install Linux on any computer and get your hands dirty by 'playing' around install packages, manually configure X, learn the /etc/fstab mess up a few times and don't worry about it.

share|improve this answer

Try first to find a way to do the things that you done at Windows/DOS.

Once that you get how do list files, create and erase, open and close, simple editing, you should try to build some application using Python or, if you are a super hero, using shell script.

For example: try to create a .bat program in DOS that reads some parameter in command line and shows it back to you, and try to do is using shell script at Linux.

It is the beginning.

After this, you should learn how the processes are managed. And after this, try to install applications that you already used at Windows, like a web server, and manage it.

share|improve this answer

It's not Linux-specific, but the best tome on Unix usage I've ever come across is O'Reilly's Unix Power Tools. Not sure if it's still available, I think there are newer editions (mine is from 1993). If you can get your hands on this, it's a fantastic reference, and just browsing to a random page is a neat way to discover, "Wow! You can do that?!"

share|improve this answer

Download and install Ubuntu, start tweaking and then ask on Super User or Server Fault when you get stuck...

Getting stuck happens almost instantly, I can assure you...

share|improve this answer
    
as well as the local LUG - i once got an answer after trying here and serverfault, as well as irc, and failing ;p –  Journeyman Geek Mar 7 '10 at 0:05

For understand Linux requires understanding its Unix heritage (1974). A multi-user time sharing OS developed as an experiment as much as anything, including in 1980 when DARPA chose Berkeley Unix as a platform for TCP/IP development (src) and its name was a snub to Multics (1965), at the time when competing Operating Systems included VMS (1975).

So I would recommend Unix System Administration Handbook, (3rd edition 2000), or Unix and Linux System Administration Handbook (4th edition, June 2010, estimate) by Evi Nemeth et all. Another popular text is Essential System Administration, 3rd ed. by Æleen Frisch, and Practical Unix & Internet Security. Browse the UGU - Unix Guru Universe, including their section for beginners. Older issues of ;login:, the magazine published by Usenix are available online, and make for educational reading.

I'd suggest converting one of your primary systems that you use daily to Linux, and retaining Windows running in a VM, whether via VirtualBox, VMware, or whatever. This will force you to prefer the Linux environment for daily activities while retaining access to Windows-only applications. The only thing this approach doesn't work well for is 3D graphics or games, often acceptable in a work environment.

I'd suggest a more plain GNU/Linux distribution, such as Debian or Slackware. They both have been around for a long time, and both have established user community for support via forums or mailing lists. If there is an active Linux User Group in your area, join. One goal should be to re-compile the Linux kernel at least once, even if it is just as a learning exercise. (Older kernel series such as 2.2 and 2.4 are smaller if compiling the 2.6 series is taking too long, you can run / install them in a virtual machine)

It might be educational to read some of the key FSF / GNU philosophy essays such as What is Free Software?, Why Software Should Not Have Owners, The Right to Read, and know about the various FSF campaigns. These with some of Eric S. Raymond's essays, including The Cathedral and the Bazaar give you insight to understanding the Free Software / Open Source movement, which is critical to understanding its success, and how the community of developers and users thinks and tries to act.

I hope that gives you a path to approach learning and embracing Linux / Unix more in your computing life.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.