Fog Creek Software
Discussion Board

Learning Unix/Linux

I just joined a new company which is a java/linux shop.

Coming from a MS environment I feel like a total moroon when faced with even simple OS related task.

Are there sites that has tutorials from a basic level for novices like me?

asofoetida - it is a herb
Sunday, November 30, 2003

Matthew Lock
Sunday, November 30, 2003

lots of docs here

download a distribution and have a play ... you could mess about with or - just boot from cd - nothing installed to hard drive ..

Sunday, November 30, 2003

The afore-mentioned is probably the main source for linux documentation. There is a ton of documentation there including introductory material. Specifically you should probably check out the intro guide and the FAQ:

If you like things in book form, Orielly's "Running Linux" for a good intro text or "Linux in a Nutshell' as a reference.

Hope this helps.

John Eikenberry
Sunday, November 30, 2003 might help.

Otherwise I recomend to install one of your older boxes, a PIII 350 Mhz or something, at home. Then you can use Linux and Windows at the same time.

Another thing I noted was that it was as hard to learn linux as windows. Sounds strange right ?
I remember when I got my brand new 486 33 Mhz with Windows 3.1 installed. I learnt how to use it with the help of friends. We all worked together found out how things worked. (Yes, highschool time.. ) But hey you also botherd some Windows guy with all the questions you had. I have been on the recieving end of these questions as well, so I know everybody uses this method in some way to learn Windows.
The same thing happend at Uni where now on a Cyrix P200 I decided to nuke my windows installation and try Debian.

I was lost again, but with other friends I worked out the quirks.

If you have no Linux friends, IRC may help, but if you talk to the people at your company they will probably help you through the transision. It will take some time, just like it took time before you got up to speed with windows.

Try to start develop under Linux. It is not that hard to get up to speed with a texteditor, and then you will slowly learn things around this area as you need them. 

Fredrik Svensson
Sunday, November 30, 2003

Wow, you have an opportunity to increase your skillset out to a whole new dimension.    Stay after work, and devour some textbooks.  Will you be coding Java? 

You may not need to learn Unix in depth, (but you should anyways) but at least learn about the navigating the filesystem, some of the utilities (grep, find, piping, redirecting, etc) , and writing simple shell scripts.

Sunday, November 30, 2003

Knoppix is a distro that fits on, and boots from, a CD. Could be nice to have a peek before struggling with installations.

Sunday, November 30, 2003

Well, although I don't use it much myself, I'd suggest using redhat 9 as a desktop, basically it's simple to use, and use all the redhat-config-* things to do o/s modifications.

As for running things in java, get the rpm's for things like ant etc... or whtaever you are using. Then learn how to the enviroment works in a shell (e.g. setting java_home, classpath etc...).

Once you need to go down and do specific things, google is your best friend, and places like will give you more than enough.

Sunday, November 30, 2003

Install linux or bsd on an old computer (less than $100) and read some howtos on the internet. Also type man man on the command line to see how documentation works.

Tom Vu
Sunday, November 30, 2003

Get the book "Think Unix", by Jon Lasser, $21 at Amazon.  A few years back I had to evaluate books for some co-workers in your position, this was the best I found.

Sunday, November 30, 2003

If you're a complete newbie to Unix, you may want to check out the Unix for Dummies book.    I read it back in college and it really helped give a simple overview of what you need to know to use it day to day.    As embarassing as it might be to read a Dummies book, that one is actually a good introduction.

Once you've gotten a hang of the basics of Unix, O'Reilly's Unix in a Nutshell is a good reference to the most common Unix commands, and Unix Power Tools has some nice tips and tricks for a more advanced user.   

If you start out with trying to install a Linux distribution you'll spend more time learning how to install Linux than using it.    The best way to learn Unix is to force yourself to use it every day, and ask your coworkers questions when you need to know how to do something specific.    Using Linux at home is a good exercise if you've already gotten used to Unix, but I personally wouldn't try that as a first step.

Sunday, November 30, 2003

I still like Kernighan & Pike's "The Unix Programming Environment", although it's a bit out of date. It gives the best overview of the ideas behind the system I've ever come across, much better IMO than Eric Raymond's latest piece of windbaggery.

Sunday, November 30, 2003

An apache pilot, capable of flying the amazing fruit of a multibillion project, can't fly a cessna until he logs enough hours in the simulator or at least attend a course in person. Same vise versa. Linux is no cessna, nor apache, but it looks like you have to log some hours. Get an extra PC (or vmware, blah blah), make it your primary machine, and keep solving every little thing you bump into. Hire a computer science student (the one working in the Sun lab) 2 hours a week to help you resolve any problem you can't seem to figure out.

Li-fan Chen
Sunday, November 30, 2003

There's another option in learning Linux on your own. A whole bunch of "virtual root" Linux web hosts have sprung up in the last year. The keyword to look for is "VPS", virtual private server. With these you basically lease a private instance of Linux over the internet that you can install anything onto, any server, application, etc. You Telnet in for shell access.  I am paying $30/mo for 2 gig storage, 20 gig/mo of traffic.

I went with this option for some web sites I host myself and I have learned SO much about Linux system administration it's unreal! And you can actually do useful things with such an account, like run your own web services, etc.

Bored Bystander
Sunday, November 30, 2003

"If you start out with trying to install a Linux distribution you'll spend more time learning how to install Linux than using it."

Actually you will spend more time playing tetris or watching TV during the install.

A Linux install on standard hardware is the easiest thing out. Probably easier than installing MS Office

Stephen Jones
Sunday, November 30, 2003

Get yourself a copy of Gentoo Linux to play with.  By the time you get it running you'll know a metric assload of Linux/Unix stuff.  It is just about as far from an automated install as you can get.  Yet when you are done you have a pretty nice highly customized system.

Highly worthwhile.

Not who you think ...
Sunday, November 30, 2003

Unix Cheat sheet.

Monday, December 1, 2003

Actually more cheat sheets here. I find them useful around the computer for learning new skills.,,sid9_gci826135,00.html

Monday, December 1, 2003

If you want to learn Unix to improve your job skills and marketability,  don't install SHIT. 

Just stay late at work, and learn on the same damn environment you willl be coding in.  And skip all the setup crap.   

Trust me, do not get sidetracked on all the crap people are suggesting.  KEEP IT FOCUSED.  Learn UNIX.  You do not need to be sitting in the middle of your living room with a dismantled PC. 

Monday, December 1, 2003

Isn't asofoetida a resin, not an herb?

And wouldn't it be "an herb" instead of "a herb".

Richard Ponton
Monday, December 1, 2003

Well if we're going to be really anal here, shouldn't it be "asafoetida", not "asofoetida"? Asafoetida is a flowering plant. The dried stuff is extracted from the root, and is largely but not entirely composed of a resin.

Monday, December 1, 2003

How to learn Linux?

Well, there are about 3 things to learn about linux:
1. How to be a normal user of any unix account.
2. How to administer a linux machine (server or workstation).
3. How to program for linux.

These are three  different areas, each with their own problems and cool things. I learned 1, then 2, now I'm finally getting fully comfortable for 3 now that the software I'm working on now has linux as one of its platforms. You have to understand 1 to do 2 or 3, but I dont' think that there is a necessity to know 2 to do 3 or vice versa.

To start #1:
If you'd like to just start using unix, and you don't have an account somewhere, go with knoppix, which is a linux cd that doesn't require you to install anything. I would actually suggest a varient of knoppix( called overclockix ( It has better hardware detection, as well as including non-free software drivers that the vanilla knoppix install eschews.

To start #2:
Well installing the latest version of RedHat linux used to be the default solution here. Its not anymore. Redhat, the company, recently decided that they weren't going to be making a free stable linux distribution anymore, so RedHat9 is the last free RedHat version. 

After they decided that, I would have to say go ahead and install that knoppix CD onto an old computer. There are directions on how to do so on the web, and its one of the least error prone installs that I've seen from a linux distributions. After you do that, find some things you'd like that linux machine to do (like be a webserver, ssh server, file server, music jukebox, etc) and try to set it up to do those things. If something is broken, fix it, reading FAQ's from the and and It will take  up a lot of your time to do so at first, but that's how you learn it. Knoppix is based on something called debian that's awesome for installing things. For instance, to install the apache web server, all you have to do is from a root prompt, type the command 'apt-get install apache' and its completely installed on your system.

How to start #3:
Buy books on programming in unix. There isn't much different in programming for linux than any other unix environment. Or rather, I would have to say that most buiness programs should be using things that are available on all unixes. However the sheer number of resources available for linux only projects make those fun to do. And wow, its QUICK to get things going to unix. With something as simple as the free installed compiler (gcc) and an included text editor (say kedit or pico) you can get hello world popping out in under a minutes from bootup.

Get used to not using an IDE, most unix people use Vim or Emacs to do their coding in. Kate is a good alternative for those of you who still want an IDE as is Eclipse from IBM. Read the Art of Unix Programming ( from the web or buy the book, read Stevens Network Programming, and read unix shell scripting. Windows will feel limiting and hard after awile doing Unix work. (I'm not a fullblown convert, I still do both, but its often frustrating to do the amount of work required to get something simple to happen in windows).

I have to repeat for #3: read "The Art of Unix Programming". It will give great insight into how everything is tied together and the history of the OS, as well as the way to be very productive in the environment.

Michael Langford
Wednesday, December 3, 2003

*  Recent Topics

*  Fog Creek Home