views:

121

answers:

4

Can anyone suggest some good materials for learning more about the Linux filesystem and command line? I have found myself frequently confused as to what programs go where on the Linux filesystem. I would like to learn how the various directories (var, etc, usr ...) are used and how to use the commandline more effectively.

I come from the Windows development world (.NET developer) so I am very familiar with Windows system administration. However, when doing more and more work with PHP I found myself lost in the internals of Linux (specifically Ubuntu). For example I was having problems installing PEAR properly on my Ubuntu system and not understanding why it was installed where it was.

All of my interactions with Linux machines is done via SSH so I would like to focus on the command line and the filesystem. Thanks for any suggestions.

+1  A: 

Unix in a Nutshell - Amazon

http://www.google.com/search?sourceid=chrome&ie=UTF-8&q=unix+tutorials

Holograham
Unix in a Nuthsell is great but it's really a reference, not a tutorial, so I'm afraid it may not be the best choice for a beginner.
Bastien Léonard
I was wondering if the Nutshell books might be the way to go. Is there one on Linux or would I be better off using the one on Unix for using the Shell?
webworm
+1  A: 

In terms of learning some of the basic commands, you may find this post on superuser helpful. As for the directory structure, you may find this Wikipedia entry on the Filesystem Hierarchy Standard useful.

Michael Aaron Safyan
Thank you! Excellent links.
webworm
+2  A: 

Though as with any operating system, you don't really learn to get truly comfortable with it unless you actually start using it on a daily basis. You can learn the basics from books and online tutorials, but if you want it to feel "natural" you'll have to jump right in and start actually using it regulary.

A nice way to "wet your feet", if you don't want to convert from windows, is by installing Cygwin (www.cygwin.com) on your windows machine and start to use it regulary (some discipline is required here, and it's not the best way to learn - but it's useful now and then). This also has the added benefit of automatically getting all nice *NIX utilities that can be a lifesaver when you're a programmer (awk, sed, bash, grep, tail, emacs, the list goes on...).

wasatz
A: 

/!\ Ubuntu rant /!\

I've seen a lot of programmers using Ubuntu when they needed a Linux distro, and nearly all of them used it the "Windows way" instead of the Unix way. They used the GUI as much as possible, didn't read the docs, didn't care about how things work.

If you feel motivated and have the time, I suggest that you use a more basic distribution. Personnally I use Arch Linux and I love it, although its packages aren't exactly stable. Another good choix would be Debian or Slackware.

It's not that difficult. A few years ago, I didn't even exactly know what Linux was, but after some time I've been able to use it on a daily basis without any problem. You just start with a basic command-line system, learn how to install and configure programs, and then install a graphic environment, a browser, an editor, ... Since you installed and configured everything yourself, you usually understand what errors mean, while Ubuntu users generally have no idea how what might have broken.

Bastien Léonard
I mentioned Ubuntu because that is the distrobution that I end up working with most of the time (someone elses server). Since I have found some variations in directory structure and program placement between Linux distrobutions I felt I better stick with the one I end up using the most. Also, I am doing all my work via the shell end not via the GUI.
webworm