Hacker News new | past | comments | ask | show | jobs | submit login
Linux Fundamentals (funtoo.org)
177 points by shawndumas on Oct 11, 2011 | hide | past | favorite | 21 comments



For the uninitiated: These articles are written by Daniel Robbins. He was the creator and past benevolent dictator of Gentoo Linux. He left the project years ago and then when he returned he started the Gentoo-based Funtoo Linux.

When he was working on Gentoo proper he wrote a lot of articles for IBM developer works[1]. He is a good technical writer in general and I found his articles on SSH key management quite useful. He is the author of the 'keychain' utility[2] for key management, too.

1: http://www.google.com/?q=site:ibm.com%2Fdeveloperworks%2F+da...

P.S. Google is so freakin broken I can't figure out how to make a simple link. You'll have to press the Search button yourself.

2: http://www.funtoo.org/wiki/Keychain


Installing Gentoo taught me a staggering amount about Linux. I'm not sure whether or not that's a good thing to say about it as a distro, but I'm glad I did it.


I learned from Gentoo too, after a failed start with RedHat. Basically you would learn from Gentoo's excellent documentation and from constantly breaking things and having to research how to fix them.

Though I'm not sure if the documentation and community support is as good now as it was back in 2001-2003.


From my experiences with Gentoo a couple of years ago, the documentation is mostly outdated, (although a number of articles have been updated to tell the reader that large portions of the article are out of date and not to be followed.) I eventually gave up working (and failing) with Gentoo at the time because I was rather inexperienced and could never get a working X system using their docs. That said, I still learned a lot about Linux during that period and do not feel as if I wasted that time spent working with Gentoo.


I tried Slackware, Mandrake, and half a dozen other distros when I got into Linux around 2001. None of them resulted in a working system for me, and I had no luck figuring out how to fix any of them. (e.g. getting my sound card to work on Mandrake)

I tried Gentoo and it took a long time to install (stage 1, for Gentoo geeks) but by following their documentation and wiki articles I finally had a working Linux system. Which I promptly broke by doing something like `chmod -R 644 /usr` and had to subsequently re-install. Doh! Anyway the point is just that Gentoo was the best Linux distro for me at that time because it worked, had good and extensive documentation, and a helpful community. Learning a lot about how a Linux system is put together and how it works was basically just a bonus. In hindsight it was a really important bonus.


May be offtopic, I am thinking about toying around a linux distro, configure with my own preference. Which distro should I choose? Gentoo or Arch linux? There was a post about Arch linux in HN few days ago where people praised about its configurablility. Can someone put some more insight about it?


I would recommend Arch Linux as more current. It's fun to build up a system from base, and there's plenty of help available on the IRC channel.

I believe you are thinking of this HN story:

http://www.h-online.com/open/features/Arch-Linux-It-is-what-...


hmm, i wouldn't necessarily say that arch is more current. both arch and gentoo use rolling releases, and the gentoo community is still fairly active. what i might say instead is that the arch community has become quite active, and created a lot of new documentation whereas gentoo, whose documentation is still updated frequently, hasn't recently had any kind of redesign. but, it's still gentoo's stated goal to have the bleeding edge of the linux community development process, aside for possibly gnome3, which they've been actively masking out of the stable (and even dev) branches.

the real difference is that the predominant number of packages in gentoo are compiled specifically for one's machine based off of the specific set of use flags and package.use, and package.mask parameters, and relatively few precompiled binaries exist for gentoo. with arch, there are a lot more precompiled binaries and not having to compile everything from scratch (yes, i know you still can with arch, but this is not the default model) is more appealing to some.

all this said, i absolutely love emerge. arch's pacman is a very good package manager, but emerge is just amazing in my opinion. for someone just starting with a rolling release distro of linux, i'd say take a look at the documentation for both gentoo and arch and see which one you relate to more. after all, you'll be reading a LOT of documentation either way.


Yes, I fully grant what you are pointing out. If I were to write it over again, I definitely would have said "more active" instead of more current. I've never used Gentoo, but I understand it may be attractive to users who want a ports-based system as well.


One of Slackware's strongest points, and the reason I have stuck with it, is its configurability. Unfortunately, this can be a problem for newer users since it also requires more manual configuration than most newer distros. Also Slackware's installer sometimes has problems with some machine configurations.


Linux From Scratch did it for me.



I remember reading those articles way back. They were really good at the time. :) Brings back sysadmin memories.


Very nice article. I like the coverage of "." (this directory or cwd) to show new users how to execute programs in /home, etc. One often over-looked feature of "." is that it can be used on non-executable files as well. For example, it can be used to removed a file named -f:

rm ./-f

That was actually a question for me during a Google phone interview. I kid you not.


"." can be used any place you need to explicitly indicate a file in the current directory. Your "remove file '-f' from the current directory" is a fine example, but your "...can be used on non-executable files..." makes me cringe slightly - it won't magically execute a non-executable file (I do realize this is not what you mean to say...)

It works exceptionally well if you need variables for directories in a shell script. For example, if your script needs $PKG_HOME to be defined, it could be set as "/usr/bin/pkg_home/" or "./" to be prepended to other paths in the script. Setting it to "" would surely work as well as "./" but being explicit improves readability and communicates the author's intent more clearly.

So, absolute paths start with "/", relative paths may avoid "." and ".." and "/", but an explicit relative path would use "." and/or ".."


You can easily trip up even experienced Linux users with examples (like that one) from the Unix Hater's Handbook.


Full list of tutorials http://www.funtoo.org/wiki/Category:Articles . I am sure more gems will be added in future. Great find. Thanks shawndumas :).


Great article, covers the basics in detail.

Though I have to admit that I wonder how come most Linux / open source software websites are so average-looking in terms of colors, font and general styling.

There seems to be a policy of content over presentation when it should be possible and even easy to have both in 2011 without much effort.


If you look a bit more closely you'll see that is not just an article on a website but a wiki powered by mediawiki. As such it is not that suited to design customisation especially the type of design you are referring to. That being said I would argue this sort of guide or reference is much more readable in a plain unembellished format. Content is king in this instance.


The "Bash by example" tutorial linked at the bottom is also pretty nice.


Wow, this is probably the best linux/unix guide I've seen. It covers topics in good detail but not in so much detail that it becomes boring or difficult to refer to. Clear code sample and no fluff.

Thanks for sharing. I predict I'll refer to these docs quite frequently in the future.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: