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?
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.
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. (Typeman <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 useps
andtop
to manage running processes, like Windows' Task Manager. (Kill processes withkill
.)df
helps determine what's mounted, anddu
can be used to determine sizes of directories.iostat
andsysstat
can help diagnose IO issues.free
can help you determine memory usage. (Note that Linux handles memory differently)Program updates are done via
up2date
oryum
on RHEL, oraptitude
/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 usevi
to edit text files. Ignore anyone who mentionsemacs
. ;-)Perhaps the Ubuntu Server Guide is something in the direction of what you are looking for?
https://help.ubuntu.com/9.10/serverguide/C/
"Linux in a Nutshell" published on O'Reilly is a good start as is the Linux Documentation Project.
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.
[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?
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:
If you're purely more interested in web-based material: