Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Possible Duplicate:
Learning the basics of Linux/Unix

This may sound a very stupid question but the point is I have been using linux for over an year and still at the end of the year I am using it just like windows. I have got absolutely no idea on how to learn more about it like bash and knowing the internals of it. Can anyone helpme with it... Guide me with how to proceed while learning linux and experiencing its full strength as they call it.

share|improve this question

migrated from stackoverflow.com Feb 2 '10 at 8:59

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

marked as duplicate by Gnoupi, Diago Feb 4 '10 at 22:14

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

1  
add comment

11 Answers

From my experience: I tried it several times with Suse or Redhat, but with very low result. A coworker suggested Gentoo linux and I finally learned it. It's hard, but it works. In the meantime I am using Arch all the time.

share|improve this answer
add comment

The resources at The Linux Documentation Project should help you get a very good understanding of GNU/Linux.

share|improve this answer
add comment

Try some high-quality screen casts. I can recommend PeepCode. They'll cost you few bucks but they worth watching. They bring 2 hours of excellently composed video about one of the most powerful aspects of *nix systems, theirs command line.

share|improve this answer
add comment

One way to get familiar with the command line is to run a personal website on your own server. Set up apache, set up ssh. Set up a firewall from the command line. Learn to read the error logs and access logs using the command line. Learn to make backups using rsync. Web + server admin gives you a lot of practical problems that can be effectively solved with the command line, and will give you a lot of real world experience.

I say that because I believe that the best way to learn a technology, is by needing it. Rather than just reading documentation, set yourself a problem to solve, then search for documentation about that problem and learn that way. Just reading documentation without a real need for it works too, but is less interesting and you will learn less from it. Running a website will give you a lot of practical problems to solve.

Try to set problems for yourself. Try to automate things you do often. And come back here and ask more specific questions. I don't say that to dismiss your current question. I really think that is the best way to learn.

share|improve this answer
add comment

It might help to clarify your objective a bit further:

  • Why do you want to learn Linux?
  • What do you want to use Linux for?

For example, do you want to be:

  • a Linux power user?
  • a Linux systems administrator?
  • a Linux developer?

From there you can pick a small project to work on e.g.:

  • write a shell script.
  • configure a service (e.g. Apache).
  • fix a bug.

and find resources that are more targeted towards your particular interest.

share|improve this answer
add comment

Try to use it extensively:

  1. Use a Linux machine as internet router (wired or Wifi - you can actually make a WiFi access point of a simple Linux machine with a WiFi card)
  2. Make a personal website on a Linux machine (apache, mysql, python, sqlite)
  3. ...or use Linux to develop a website and syncronize it with a webserver (sshfs, git, ssh keys, etc)
  4. Use Linux machine for long calculations (for example, render a lot of big pictures in Terragen or similar), for observations (grab weather stations' data)

In general, find a thing to do in Linux.

share|improve this answer
add comment

Open a terminal. Type ls /bin. For every item in the list type man x, read the results (press q to get out of the man browser... which you can find out with man less and man man). Then ls /etc and do the same (they won't all exist), and then do it for /usr/bin. By that point you should know your way around.

share|improve this answer
1  
This is tedious and an exercise in absorbing information without a need. Some of us might be able to inhale information like this, but we can't assume OP's ability to do that. –  Broam Feb 2 '10 at 14:52
    
That's how I did it... well, actually, the paper set of SunOS 4.1 manuals, but it amounts to the same thing. –  Andrew McGregor Feb 21 '10 at 12:42
add comment

Pretty much what richj said, but to add some other pointers that have helped me

  1. Try a lookup a local linux user group, and attend a few meetings. That will help you get involved. They will most likely put on some tutorials at their meets, possibly have kit meets a few times a year, and you'll be able to ask questions face to face, and get ideas on what to try
  2. Go out and buy a linux magazine, here in the UK I would recommend Linux Format, good articles aimed at all skill ranges, and a cover CD with a few LiveCDs on each month
  3. Join some linux mailing lists, your local LUG should have one, that way you can see what people are getting up to with their linux systems, to give you ideas (you may even be able to help them with issues)
  4. Setup your own blog, write up everything you do with your Linux system, you'll learn a lot just by writing it up ;)
  5. Forums, forums forums! Join the forum for your distro, join http://www.linuxquestions.org/questions/index.php, maybe a forum for your area. Once again it immerses you in what others are trying to do
  6. IRC, join the IRC channel for your distro

There are loads of things you can do to get more involved, its all about immersing yourself in it!

Other than that, try some of these

  1. Setup your own media server in linux, maybe MythTV
  2. Try and run some windows games in Wine
  3. Connect your iPod / media player and organise your music
  4. setup your own local blog on your server
  5. setup mysql/apache/php and try and play with some websites, use linux tools such as vi for editing files, use command line access to mysql instead of some gui
  6. setup some shell scripts to backup your media to another directory, that will teach you some scripting
share|improve this answer
add comment

I've always found that I learn best when I have a task to accomplish. When I built my first linux server, I decided to run a small web server so I could post family photos (before Flickr). Maybe you need a DLNA server to push video to your TV. Or a file share to backup other PCs to.

So, find a project, then go look at possible solutions.

\Greg

share|improve this answer
add comment

If you are looking to get to know Linux inside and out from the very lowest level, Linux From Scratch will absolutely force you to do that. I would however not suggest it if you do not want to spend some serious time on it, or if you are looking for a more casual user's understanding.
http://www.linuxfromscratch.org/

share|improve this answer
add comment

It doesn't appear here or in the linked related question:

LinuxCommand.org is a great beginner's resource - it takes you through the basics all the way to scripting.

Other than that all I can suggest is to jump right in, pick a distribution with a reputation for ease of use and search that distro's forums/ask the IRC channel when things go wrong.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.