Linux - GeneralThis Linux forum is for general Linux questions and discussion.
If it is Linux Related and doesn't seem to fit in any other forum then 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.
Linux is so vast and interrelated that a lack of understanding in one area really affects my ability to work in another. I was just wondering if there are top-down as well as bottom-up paths of learning that can be recommended.
I'm currently learning C, so I'm thinking maybe I should start familiarizing myself with the structure of the kernel. But what are some other foundational components I should be aware of?
That really depends what you mean by "to learn linux". If you are referring to linux as in the kernel, then learning C is a very good start, after which I would recommend the kernel janitor project. If you just mean how to use linux, you can find any overview of the file system hierarchy and of file permissions, then start up Gnome or KDE and use it just like you did windows. If you mean you want to sysadmin, frankly I wouldn't even know where to begin - just figure things out as they arise.
What exactly is your end goal here? Linux development?
If you are just trying to get a good handle on Linux to be a better user then you certainly don't need to know how to program in C/C++, let alone kernel structure.
Not that I would persuade anyone from going out and learning more, but you could spend your time on some more relevant information; like how to configure and compile the kernel, rather than studying how it is designed.
To clarify I'm not completely new to Linux(although I'm not even sure if I could call my self a solid intermediate). I've been playing with Linux on and off since I was 12. My problem is I feel like my knowledge and experience are a mile wide and an inch deep. I think it's about time I truly took a dive in.
I'm going more towards the side of administration and development(not neccasarily kernel development).
Well in that case, the C is a good step. A general knowledge of the various Linux libraries is also important, as is a good handle on writing portable code.
For administration, you want to read up on the various daemon configurations. Sendmail, Samba, etc. Going a little farther, a good knowledge of the runlevels and boot processes of the various distributions (at least the ones you are planning on using) is very helpful.
Well, then try to learn LFS (yay my favorite quote)...
You might wanne get some C/C++ for development under linux...
Oracle is also a good (proprietary) software for database and MySQL/PostgreSQL/Firebird is a good choice for open source database...
Hope this helps