3

Well... I know that's the question arising all over the Internet, but I couldn't find an answer to suit me after googling for quite some time.

I'd like to get a Linux distribution, and start learning using the CLI. I'm looking for a distribution already having GNOME installed, as I'll be using Linux-Command.org as my learning resource, and I'm not very familiar with CLI-based web browsers. I'd mainly like to get to know my way around a UNIX-based system, and then I think I'd like to pick up a CLI-only distribution, and start doing more complex stuff.

I've tried Ubuntu, Fedora Core, OpenSolaris and FreeBSD (the last two aren't linux distros, I know). Ubuntu and FC are fine, they do come with Firefox, but I'm not really sure they're meant for learning purposes. OpenSolaris was OK as well, but I haven't got to play with it enough. FreeBSD 7.2 did not want to install itself on my 13" MacBook Pro, it generated a kernel panic everytime while copying the files to the disk.

So to sum this up, I'm trying to learn Linux, and I'm willing to invest time into this (that is, not giving up when the first problems arise). I also have intermediate knowledge of C++, if it helps, and I'm also using the CLI-vim to write small C++ CLI-based programs, so text editing should be any problem.

And... speaking of Macs, how am I going to be limited if I try to learn how to use UNIX-based systems using the OS X Terminal? It uses bash 3.2, isn't this the same shell as the one found on most of the Linux machines? How does the fact that OS X is based on FreeBSD 4.4, if I'm not mistaking, affect this?

Thanks in advance, and hopefully, I'll have a starting point ASAP.

12 Answers 12

9

Ubuntu is the best given the amount of searchable Ubuntu content on the internet. If Google is your guru till you get one, then Ubuntu is the way to go. Having said that, i strongly advise using VirtualBox - so that you can test any of the distributions you want to inside your base distro.

Since you want to learn command line operations, using virtualization, you can mess around and happily spoil everything in the virtual machine and emerge unscathed, keeping you main system untouched. This particular quality of virtualization will save you a ton of headaches.

If learning linux command line, never proceed outside of a virtual machine.

Just for sake of completeness, if your use is the opposite, that is, a stable GUI desktop OS, I suggest PCLinuxOS due to the friendly community.

They're the most newbie-friendly forums on Linux on the web.

And don't use the command-line in PCLinuxOS to install anything.

3
  • 4
    Aww but come on, half of the fun of lerning Linux is re-installing it :)
    – Tim Post
    Oct 24, 2009 at 13:43
  • Agree with namespaceform, use a desktop friendly distro like Ubuntu, Linux Mint, OpenSUSE, etc. and run a Server distro (Ubuntu LTS, CentOS) headless in Virtualbox to learn.
    – Jason
    Oct 24, 2009 at 23:01
  • And never proceed out of a virtual machine? What if someone has a spare PC just to try a GNU/Linux based OS? Should the sacrifice RAM on their work desktop just to try it? Never say never :)
    – Tim Post
    Jun 13, 2010 at 16:51
4

My advice to people on what version of Linux to install at the start is always: whatever your guru uses. That is, find someone who is willing to help you over the rough spots, and use what they know.

But if you have a MacBook, consider installing fink, and using it to provide a full set of GNU tool which will make you environment closer to that of a Linux distribution. On top of which fink is based on apt and dpkg (dpkg is the Debian package management tool, also used by Ubuntu).

5
  • 1
    Well... I don't currently have a guru, and I'm positive it will be very hard to find one. That's why I'm trying to figure things out myself.
    – XLR3204S
    Oct 24, 2009 at 7:51
  • Have you tried asking at your local Linux Users Group(linux.org/groups)? I imagine that you should be able to find a guru there.
    – Kevin M
    Oct 24, 2009 at 12:14
  • Yeahp! Again, I've managed to find a user group in my city, but their boards and web site is rather outdated. I'll see how it comes up, though. Thanks a lot!
    – XLR3204S
    Oct 25, 2009 at 7:37
  • 1
    Our boards/website are outdated too, but we talk a lot by email and IRC. Explore.
    – Lee B
    Oct 25, 2009 at 7:47
  • Our website is also outdated, and I don't know if we even have any boards, but I can't count the number of times I've gotten an email that says "How do I do X in linux?"(X is the name of whatever task they're trying to accomplish, not the name of a computer program). They also archive the email list(with emails removed) online so it's searchable using Google etc.
    – Kevin M
    Oct 26, 2009 at 15:54
4

ubuntu seems to have a great community on forums (though I am not an ubuntu user myself, it seems a good choice to begin with as it is a spin-off from the debian project, founded by mark shuttleworth, who was a debian developer back in the nineties)

the learning curve will not be as steep as it used to be, since the internet has grown exponentially in the last 10 years and you can easily find your answers on google.com/linux or on several forums/mailing lists; back then we had usenet, apps mailink lists and, the most important, a guru ... good old times :)

2

Find A Guru.

I'm sure that there is an active Linux User's Group in your area, try that route.

Googling a problem and finding commands to cut and paste really isn't teaching you much. The beauty of really, really wrapping your brain around Linux (and most of the satisfaction) is looking at something and knowing why it works and how it works not just that it worked. You won't get that (as much) with Google as your co-pilot.

I really suggest finding someone who really knows what they are doing .. and asking if you can occupy some pixels on their screen by being added to their buddy list. It really, really helps to have some kind of a teacher ... also a venerable tradition.

2

To satisfy your requirements about "learning" the unix world, and CLI, etc., I would suggest that you start with Gentoo - it is a source based distro, higly flexible, and with very very good documentation, explaining each step of the install and build process, why this is that, what you put where, etc. The community is great and very helpful as well.

I wouldn't use it as everyday tool, but for learning purposes it does very good job.

2
  • I cannot recommend Gentoo enough as a distro for learning about the underlying components that compose a full system and how each works with the others. It does take more time to learn, but it's worth it in the end if your goal is to understand Linux better. It also makes for great servers and minimalist desktops.
    – Ophidian
    Oct 26, 2009 at 13:05
  • To find out how it fits together, maybe. To learn how to use it, definitely not.
    – vonbrand
    Mar 2, 2013 at 1:51
2

If you really want to learn your stuff, consider doing the Linux From Scratch thing. Not for using afterwards, mind you, but just to learn how it fits together.

2
  • I heard about that... project (?) some time ago, but I don't know, I feel like I'd rather learn some more things using the Terminal before going to building a (basic) Linux distribution. Nonetheless, thanks for the tip!
    – XLR3204S
    Oct 25, 2009 at 7:23
  • Please, don't. LFS is for experienced people with a strong masochistic streak, not for people trying to learn how to use the finished system.
    – vonbrand
    Mar 2, 2013 at 1:50
2

You can really pick up any distribution and learn what you need to. Personally I use RedHat Enterprise linux at work, so from that bias, I would recommend Fedora or CentOS.

Also, you don't have to find a CLI-only distribution, if you ultimately just want a box with CLI. While Fedora, Ubutnu and the like have all the Gnome windowy stuff installed by default, you don't have to install it. Even if you install it, (at least for fedora) inittab is what is telling it to go to "X11". If you change your runlevel to 3... Poof! no more GUI

1
  • I tried installing Gentoo last night, but something went wrong near the finish line, so I destroyed the virtual machine, and I'm currently downloading Slackware, see how I do. But I plan on coming back to installing Gentoo soon, I kind of had some fun.
    – XLR3204S
    Oct 25, 2009 at 7:27
1

I've learnt an incredible amount using VirtualBox, as it frees you from the worry of wiping your existing OS and coping with the possibility of driver issues. I have used Ubuntu for about 2 and a half years now so I can vouch for that being good, but if you really want to learn all about Linux I think Slackware is a better choice. It's not exactly hard, but it's not newbie-friendly the way Ubuntu is. With Slackware you can guarantee you'll learn a lot if you stick with it, but it'll probably be fairly tough and you'll need to read a lot of documentation.

I also like INX, which is an Ubuntu-based CLI-only distro that offers a virtual machine that will run in VirtualBox. That taught me a fair bit too.

1

For a beginner, if you are already using OS X, learning Unix with the Terminal app in OS X is the easiest way to go. Looking at www.linuxcommand.com, I don't see anything there that you would not be able to run just fine in OS X.

Don't let the FreeBSD thing throw you off, what is important is POSIX compliance.

1

like old saying... use [some_distros] and you learn [some_distros] ; use slackware and you learn linux.

if you want easy to use (minimal learning) choose mandriva/opensuse/ubuntu. all these have very easy gui so that will be very easy to learn. but because it's so easy, you cant learn a lot here... most everything can be done from a nice gui.

in short, if you want to learn linux, use slackware or archlinux. i learn a lot from these.

after that, you can choose your own favourite distro and do not have to re-learn everything from beginning...

1
  • Like many old sayings, use [slackware] and you'll learn [slackware]. Nothing more. Almost nowhere used, so really not a marketable skill either.
    – vonbrand
    Mar 2, 2013 at 2:00
1

The general advice here is good -- VirtualBox, etc. Definitely keep things in a container while you learn. Be adventurous. Teddy above suggested Linux From Scratch, which is probably the most thorough way to learn not just the shell, but why *nix OSes are the way they are today. Init scripts, the magic init(1) process, everything in /etc has a purpose, and so on. You'll only do yourself well to know this stuff, even just in passing for now.

Not to dilute the suggestions here, but I believe a good best-of-both-worlds approach would be Arch Linux. It has a Slackware-ish feel to it (it doesn't "do" anything for you), but unlike Slack, has a dependency-handling binary package manager, pacman, as well as tools for building almost any package from source using AUR, a community-supported repository of software. No dependency/RPM hell here. You can decide to install everything just to try it out, or decide to install nothing but the basics. The community support via the wiki, forums, and IRC is every bit as welcoming and useful as the Gentoo or Ubuntu communities, both of which have a reputation for being friendly and accessible.

You also brought up a point that I don't believe anyone else has addressed -- the BSD/OS X vs Linux thing. OS X is a full-on BSD system that can actually trace its "lineage", if you will, all the way back to the original ATT UNIX. GNU/Linux is not BSD, however its stated goal is a "Unix-compatible operating system." Minix was a Unix-like operating system that eventually evolved into GNU/Linux, with some help from Linus and RMS.

The subtle differences you'll notice first, actually: you can see for yourself in the way some commands behave on BSD rather than on Linux (ps, for example.) If you want to learn Linux, don't use BSD, and vice versa.

In conclusion I would advise you to stay away from the "heavier" distros at first (ubuntu, fedora, centos, opensuse, mandriva) as you will want to start on the command line and work your way into X. Think of it like building a car -- you wouldn't start with the paint job, right? :)

2
  • I know there are some differences between BSD (which is the cleanest descendent of the AT&T UNIX ?) and Linux, but that's about all I know: pure theory. I haven't got to play with both of them. But I'm asking again: if both are running bash (3.2 ?), isn't the shell some kind of program which you pass instructions to, in order for it to pass them further to the computer? So shouldn't the commands be the same? I was just wondering, and I see no one answered this. I'll look into Arch Linux, and perhaps give it a try, as well. And, yes, if I'm using a VB, there is no need for a GUI. Thanks!
    – XLR3204S
    Oct 25, 2009 at 7:33
  • bash is a shell, the program which reads user commands and calls programs. In the Unix tradition, the shell is a regular program, not built into the system, so there are lots of different shells. Traditionally, shells are full programming languages too. Many tasks are best solved by a script, a small program written in shell.
    – vonbrand
    Mar 2, 2013 at 1:57
0

I always recommend new users to try two distros and compare. OpenSUSE (which offers a choice of GNOME, KDE or XfCE GUI during install) is one, and Ubuntu is the other.

OpenSUSE is a more polished distro with full support for all the advanced features like graphical system administration tools. This way you can get things done without having to learn the bits that you aren't ready for yet.

Ubuntu is more popular among students and ordinary users who use Linux as their only OS. For somebody whose goal is technical learning, it may lead to more distractions since you will run into more people using it.

You must log in to answer this question.