Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Introduction to Linux - A Hands on Guide
This guide was created as an overview of the Linux Operating System, geared toward new users as an exploration tour and getting started guide, with exercises at the end of each chapter.
For more advanced trainees it can be a desktop reference, and a collection of the base knowledge needed to proceed with system and network administration. This book contains many real life examples derived from the author's experience as a Linux system and network administrator, trainer and consultant. They hope these examples will help you to get a better understanding of the Linux system and that you feel encouraged to try out things on your own.
Click Here to receive this Complete Guide absolutely free.
OK I have been blundering my way thru Linux for a few months. I love it, but I feel stupid a lot.
Can anyone recommend a path, a book, a course, a "best way" to become proficient....I know that actually using the system, making mistakes etc, is great learning, but I would like to know how gurus become gurus. (I am too old to go back to 4 year school). I mean, I need the crash course.
Slackware is a pure linux distro which will give you a good understanding of how the nuts and bolts work in linux. It takes a little while to get used to it, but once you do the linux knowledge you gain can be applied to just about any other distro.
If you are anything like me, reading how to do something just doesn't sink in well at all. I have tried Linux a number of times since 1997, and always went back to Windows because I just could learn it. This time, I have been at it for over a year consistently, and while I am still learning, this is what has finally worked for me:
1. Learn where things are in Linux. For example, if your mouse scroll wheel is not working, find the file which holds it configuration (xorg.conf). If you want to know if a library is installed, learn where they are stored. Learn where to find things, and what to do with them seems to come more rapidly.
2. Try a project like compliling a new kernel on a machine that is not critical to you. If you screw up and it won't boot, you keep trying until it does. Beat the frustration and temptation to just throw in the towel.
3. Get an easy to read reference book (Linux for Dummies is a good one). While learning might not come easy from a book (for me, at least), having it available as a reference has helped me.
4. Use Linux exclusively for everything. One of the reasons I never stuck with Linux is because I would "play" with Linux, but do all of my serious work in Windows. Now, evern though I still have XP on my machine, I very rarely boot into it, and even then it is just to print out an old file or something. ALL of my serious work is done in Linux.
5. Add another Linux distro to your machine. I have two distros, and four versions of Fedora on my machine, as well as windows. This allows me to "experiment" how different distros handle the same project.
I know I won't go back to Windows now and I am enjoying learning more and more about Linux. And, as I am sure you are experiencing as well, this forum makes all the difference. I, for one, am glad we have this resource.
Excellent advice Mr. Nutfield. Learning the core Linux concepts and then putting them to practical use is truly the best way to learn Linux. I would like to add on to your idea and list a few more things that helped me be more comfortable with Linux.
The biggest thing I can think of off the top of my head, is learning how to read and interpret error messages. When something goes wrong, chances are it will tell you why. Use Shift+PgUp to scroll up in the terminal and read everything the messages says. If you see a “file not found” or “XXX not defined” then chances are you are missing a required library dependency. Just look it up online to find out what needs to be installed to fix it. If you can’t figure it out, you can always ask on LQ.
But us bob said early, it’s all about location, location, location. Sometimes you are sure you installed a dependency but it still gives you the error. Check to see where you installed it and where the program causing the error is trying to look for it. Find out the difference between /usr and /usr/local, figure out what’s in /usr/lib or /usr/share. Figure out where all of your configuration and startup files are and what they do.
The key with Linux is to not learn everything about it, but learn how to find the information you need to solve the problem.
Here are some things I wish someone would have told me.
basic nuts and bolts linux commands
stuff to boot like the kernel, initrd (ram drive), grub (boot loader)
Special files called "character devices" and "block devices" These are all the hardware devices. You use mknod to make devices. Linux usually makes the devices you will need, plus a lot more.
text based configuration files. All the services are in /etc/init.d You usually want to start, stop, or restart a service. If you have to restart the ntpd service:
cd /etc/init.d sh ntpd restart
In linux you can put multiple commands on one line.
This is where all people's junk goes. Everything personally to do with any user goes in here.
A lot of important libraries are here, and there is the /lib/modules subdirectory symlink to /usr/src/linux that is helpful in building initrd images.
these are regular old directories, but they are mount points for media devices like CD/DVD players and floppy. When you put in a floppy it isn't mounted. You launch a shell and type:
then you can go to /media/floppy and all the files on the floppy will be there. All your mount points are in a file called /etc/fstab. Look in that file.
mount points of remote drives, usb drives, network drives
different distros put different things here. KDE and Gnome are sometimes in /opt.
This directory is filled with process information. You can look at a file in this directory with:
dd if=/proc/file | hexdump -C | less
This is the root user's home
Administrative programs usually not available from a user prompt - must be root. Switch to root with:
Don't worry about that directory.
Very basic level hardware files
All the good stuff. /usr/bin = user programs /usr/src = kernel stuff /usr/lib = many libraries /usr/share = documents and stuff. I'll give you a tip: If you ever try to install a program that needs a library (a .so file), and you have a later version of the library on your machine, which you can tell by looking in /usr/lib, make a symlink to the newer library with the numbers you need. But, there are many symlinks in /usr/lib, so use:
ls -la | less
to view the contents of that directory. Less is my favorite editor, except that it doesn't do any editing. That tells you which files are symlinks by the arrow next to some on the filenames. Make sure you make your link to a real file and not a symlink, like this:
ln -s library.500.so.6 library.5.so.6
Some programs are really picky about which libraries they will use. If the numbers are close, just make the link to a name the install will like.
Logs are in /var/log
Do this from a root shell:
Now you have an index of all filenames on all your drives.
with this you can find every file with some letters in the name:
everything with those letters anywhere in the whole path will come up on the screen. This is incredibly useful for finding files.
use this to find out about a command:
this will give you the manual page for all the commands, one at a time. Like:
I got an Oreilly cookbook on linux admin, and one on security, whilst not a comprehensive insight, they give good tips, and some commands, you can then explore these commands, combine them etc. and go from there. Google was also a great help, so is having a running system to test things on. To be honest i learn most things from trwaling these forums, it's quite interesting to see what others are trying to achieve, and the fixes. Also amazing how many people want to achieve the exact thing you do.
I run Arch now which leads to a fair amount of reading and helps alot