Saturday 10 May, 2008 at 12:17:35 pm
filed under software
The recent focus on making GNU/Linux accessible to the average desktop user, and in particular the efforts of the Ubuntu distribution, have created a flood of new Linux users. I really believe that this a wonderful thing for the Linux community, but one of the unfortunate consequences has been that not everybody really understands how to use their computer anymore - it’s not uncommon now to find postings on support forums where users say things like “i rly rly want my computer to do teh pretty thing but i dont no how and im scared of the black screen with the blinky white line what do i do?”
Naturally, this is a bit of an extreme case, but the computer literacy of the average Linux user does seem to be declining. While this is an inevitable consequence of making the OS more widely available, it’s also one that is easily remedied - most of the basic skills people lack can easily be picked up with a little exploration.
What follows is a list of useful tweaks and projects that are also instructive in the fundamentals of operating a Linux desktop. This list is not meant to be a full tutorial, but rather a jumping-off point for each of these projects—after all, the point is to learn by doing these things. Similarly, many tutorials discovered in the course of trying to do these will provide lists of command or bits of code; rather than mindlessly typing them in it’s worth making an effort to understand what they do.
Feedback, as always, is greatly appreciated. Enjoy!
The famous “five-minute install” really is as easy as they say it is, but you’ll have to set up a web server and a MySQL server before you start. You can use your new WordPress install as a simple way of documenting your own computer, keeping track of changes you make to your system in case you need to reverse or repeat them. (N.B.—major changes should be recorded in a paper notebook in case you render your system unusable. Don’t count on being able to access critical information through the blog.)
Learn: basics of command-line use and package management; how a server works.
Nothing telegraphs n00bishness like a computer that still has the default Bash prompt. You can modify yours to look nicer and provide other useful information like the date and time.
This would be a fairly trivial undertaking on its own, so do yourself a favor and figure out how to make those changes without an X Server running - instead, learn to use EMACS or a real text editor like vi to make those changes (the faint of heart may instead opt for the friendly nano). The learning curve can be steep, but the rewards are enormous.
Learn: how to configure shell settings; how to use a text editor.
Nobody (myself included) remembers to back up often enough, so why not let the computer remember for you? An automated backup system with cron and rsync will remove the hassle and keep your information safe.
Learn: how to use rsync; how to write crontabs.
Compiz, more than just eye candy, can make your workflow much more efficient by providing a number of useful organizational plugins and giving you full control over your screen’s hotspots.
It used to be a huge headache to install; while Ubuntu’s decision to provide it by default has made the process much simpler there is still a lot of value in getting your hands a little dirty, building it from source and making all the X configuration changes yourself.
Though it’s not a very complicated process, you’ll learn a lot about how your screen is set up and how Linux talks to your graphics card, as well as the very important skill of building a piece of software from source.
The rapid pace of hardware development means that the stock kernel provided by your distribution may not support all the drivers you want (we Thinkpad users are still waiting for HDAPS to enter the mainline). In the meantime, you can download the source for your kernel and add whatever you need, removing support for what you don’t and slimming down your kernel in the process.
Learn: even more about building from source; using patches; how kernels work.
This tends to be a pretty distribution-specific process, so search around yourself for the instructions.
A virtual machine is an incredibly useful tool, allowing you to set up guest operating systems within your own and use them without having to repartition your drive or fiddle with the boot loader. That means you can run Windows without dual-booting, try out another distribution or even another species of Unix with no hassle.
Learn: how other distributions work; why Debian is better than your distribution.
Every Linux user really ought to know the basics of computer programming, even if not seriously engaged in software development—at the very least, it will help you understand what is going wrong when that program you just compiled doesn’t work right.
In terms of usefulness, it’s difficult to beat C or C++, although Python is also good to know. If you’re interested in learning general programming theory and want elegant, straightforward languages that are easy to pick up, consider Forth or Lisp.
Learn: to program.
A couple of these are still on my own todo list - if you have any thoughts or tips, please leave a comment!
no comments
RSS / trackback