First of all, what is it? Well, let me preface this by saying that I am starting a new job soon, and part of it will be Linux administration, as well as java server on Linux administration.
Linux is a different world than Windows. Here is a plan of attack toward learning these skills that I have chosen for myself. First, I learned vi…because you need an editor. Second, I am reviewing the Linux utilities, because you need to have sharp command line-skills. Third, I am learning Bash, because your startup scripts, if not using the ones there already, are going to be written in Bash.
Right now I am reading a very interesting book, it’s called “Java Application Development on Linux”. Starts out discussing Linux command-line in a thoughtful way, and then goes on to give a tutorial on Vi. I would give it max stars of recommendation, so far.
Here is a great example that the book discusses:
find . -name jake -exec ls -l ‘{}’ \;
As the book mentions, find is one of the most confusing and important commands in Linux. If I don’t include “-name” it will search and say couldn’t find the file, even though it lists the file as one of the ones it searched (as well as displaying every other file name it searched). Another point is that ls -l apparently can’t accept an input piped to it, so the “-exec” command is used, in this example, to execute shell code right there on the command-line.
The important thing is that you need to know this. The fact that my explanation is woefully insufficient underlies the need to have a good book like this one, or google it. But without this book, would I have realized how tricky all of this can be? Probably not.
Here is an excellent article on the Linux command-line:
http://www.redhat.com/magazine/004feb05/features/bash/
http://www.redhat.com/magazine/005mar05/features/perl/
Ultimately, the way to learn linux is to browse around right there from your command-line. My books didn’t cover the .bashrc, so I had to ‘man bash’ to find those things out (or google, yes). But you have to be there at the console and ‘ls’ing a lot to get a feel for what is at where.
For me, I have to close off distractions by having another PC, my slackware and not Ubuntu one, with just a console in front of it. No startx, no distractions to skills learning. Maybe it could be said that real learning begins when you can teach yourself, improve without needing the crutches of google, a book, etc, just figuring it out, reading the documentation and trying things.
Quick, off the top of your head. Which directory is the Linux source code in?