Recommendations for microcontroller programming under Linux
I've had good success with Atmel AVRs using:


the GCC C compiler with AVR libraries (packaged in APT for Debian based distros)
avrdude for flashing devices (using a cheap Atmel AVRISP mkII programmer)
AVR Eclipse plugin for an IDE


Googling will find some guides on setting it all up under a recent Ubuntu install. It's a lot easier than it used to be, it's now pretty much just installing packages from the repos.