Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm a sysadmin with a decade of Windows experience (Server, Exchange, SQL, etc. on networks large and small), and I'm looking to build up my Linux sysadmin skillset.

It seems like most of the tutorials are either for computing neophytes or seasoned Linux sysadmins. I don't need anyone to explain the OSI model, or what a file system does. I don't need instructions burning the installation media to a CD so I can boot with it.

I've got Ubuntu running on Virtualbox, and I'm looking for a tutorial that will walk me through the CLI. I want to know about how services are controlled, how apps get installed/configured, etc. I want to know what's required to get the LAMP stack up and running, securely, on a lean box without a GUI.

Any ideas?

share|improve this question

migrated from Mar 5 '10 at 21:42

This question came from our site for professional and enthusiast programmers.

also, i'd note there's a MAJOR change between how services are handled between the last version, and the upcoming one- lucid uses upstart, and the older ones, init – Journeyman Geek Mar 7 '10 at 5:20

I think *nix is very much about fundamentals and less task oriented. Some of those might carry over, but for example permissions are quite different, and a lot of things you might take for granted.

I wouldn't worry about how to install LAMP, or to do specific things until you learn the fundamentals, this is a mindset change from many Windows Admins I have meant (not all of course). The introduction in Advanced Programming in the Unix Environment is good (even though the rest of the book is more than you want). I also recommend Classic Shell Scripting, as the shell is key in *nix, and scripting teaches you the shell. Essential System Administration, although it might have some of the redundancy you want to avoid, has a *nix slant that will make it helpful. Lastly, Eric Raymond's The Art of Unix Programming might really help you get unix, although it won't instruct you how to do things in particular (I would at least read this chapter).

Unix fundamentals really are extremely important, and in the end it will save you time not to skip over them. You are also going to need to become comfortable with either emacs or vi, because *nix is all about text files. Once you have learned the ideas and basics of *nix, tutorials will have a lot more meaning and value.

share|improve this answer
I think you kinda missed part of his point - he already knows how to burn a CD, etc. (He probably won't know how to do that from the commandline on linux, but that's irrelevant.) An overview of the basics/fundamentals/differences from windows are exactly what he's looking for, without wading through an explanation that a server allows multiple people to use it at the same time. (I'm still looking, btw.) A basic example would be "services" - when are they inited, what .conf files define them, how they differ from windows, what GUI's are default/commonly available in the popular distros, etc. – Scandalon Mar 5 '10 at 22:32
I misread the section about the cd, but not the rest. Tutorials are how to do particular tasks, for instance, install lamp. By fundamentals I mean filesystem layout, system calls, permissions, common utilities like sed, etc... I also mentioned several books that teach those things. – Kyle Brandt Mar 5 '10 at 22:48

Not to second guess your calls, but Ubunto is primarily aimed at the desktop market. Servers are usually either a RHEL derivitive, or SUSE. I'd personally recommend getting yourself an CentOS5 disk, and use that. The basic Linux things are obviously fundamental, but you might as well learn the tools that you'll find in most corporations.

Rather than give tutorials on specific things, I'll just list off some areas you should research. If you don't know man already, make a note of it. It's far more useful than Window's help files, and is every Linux SysAdmin's best friend. (Type man <command> with everything I mention here) Google can also help a ton. I realize this isn't the tutorials you asked for, but I think it can help lay the Windows->Linux foundation that will make any LAMP tutorial much easier to use.

Services are controlled via scripts in /etc/init.d/. In RHEL, chkconfig adds a management layer on top of that. Otherwise you need to use /etc/init.d/<scriptname> start|stop|restart|status. You'll want to use ps and top to manage running processes, like Windows' Task Manager. (Kill processes with kill.)

df helps determine what's mounted, and du can be used to determine sizes of directories. iostat and sysstat can help diagnose IO issues. free can help you determine memory usage. (Note that Linux handles memory differently)

Program updates are done via up2date or yum on RHEL, or aptitude/apt-get on Ubunto.

Important configuration files live in the /etc/ directory. These control service configuration like Windows' registry keys/GUIs do. Most services have a similarly named .conf file or directory there. (I usually do a ls -ld /etc/*service* to find it) /etc/fstab defines what gets mounted at boot. You'll want to use vi to edit text files. Ignore anyone who mentions emacs. ;-)

share|improve this answer
You might want to familiarize yourself with Ubuntu better before dismissing it as a server distribution. update-rc.d serves a similar purpose to chkconfig. Ubuntu comes with variations for server use, like minimal install (without GUI) and JeOS (for virtual servers). – ptman Mar 6 '10 at 17:31
Odd that Debian didn't get a mention, given its popularity for server use. Better get that tunnel vision corrected. – John Gardeniers Mar 7 '10 at 9:02
I'd definitely mention debian when it comes to servers. Its rock stable and you'll have loads of choices when it comes to software. – artifex Mar 7 '10 at 11:22

Perhaps the Ubuntu Server Guide is something in the direction of what you are looking for?

share|improve this answer

"Linux in a Nutshell" published on O'Reilly is a good start as is the Linux Documentation Project.

share|improve this answer

I second 'Linux in a Nutshell'... it's more of a reference manual than tutorial. I would also recommend 'Unix Power Tools', also published by O'Riely.

The other thing that I would try is installing Slackware... use Ubuntu if you like, but learn Slackware. Slackware doesn't hide anything from the user... it's all exposed levers and pulleys. This makes learning the fundamentals much easier.

share|improve this answer

[not sure how to comment on my original post] Thanks for the advice--I think we're on the right track so far. I'm a fan of fundamentals, and I agree that tutorials aren't necessarily the best place to start. I've picked up a copy of Linux in a Nutshell, and I think that's where I'm going to be spending most of my time.

(But even this book has lines like "Networks connect computers so that different systems can share information." Hang on--let me highlight that one so I don't forget it.)

This book seems like it would be perfect, but it hasn't been updated since 2002.

I'm going to take a look at slackware, too. Someone told me a good way to get started would be to install Linux (he was talking about Gentoo, I think) manually, without an installer. Would this be useful? Where even to begin, then?

share|improve this answer

Disclaimer: sorry for breaking all the links, this site won't let me post more than 1 without having made 10 posts.

As for books:

I would recommend getting material focused on RHCE certification. Books related to it usually take you from the ground^up and don't automatically assume that you're a n00b with computers.

h ttp://

This is an excellent book...all the concepts work with Fedora, CentOS & RHEL. It helped refresh me in many details that were missed in self-teaching myself over the years, as well as provide me with an awesome easy-to-use reference to others with Windows knowledge interested in starting fresh with Linux.

This one is also quite excellent for stepping you through the CLI step-by-step in the same set of distributions: h ttp://

I personally would recommend RedHat's study material for RHEL because it more CLI oriented than most Ubuntu-related documents that I've seen. (not to say there isn't any, just my experience).

Ubuntu is nice, here's the equivalent for certification studying:

h ttp://

If you're purely more interested in web-based material:

I've found h ttp:// to be very helpful. I wouldn't use it as gospel, but a great boost when 'how to do something' isn't obvious.

Also I would recommend the RedHat online documentation which gives you most of the basics: h ttp://

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.