The thing about linux based developers is that they usually have their own unique workflow (vim vs emacs, etc). In my opinion, linux is one big IDE that you add your own parts to. With that in mind:
If you are using a debian-based distro, run this in your command line: sudo apt-get install build-essential avr-gcc avrdude
Then find a text editor you like (google is your friend but here are a few: vim/gvim, emacs, geany, kate, jedit) and write some C. When you are ready to compile, jump onto avrfreaks and have a look at other peoples makefiles. You can probably just steal a makefile from someone else's project and modify the target device, XTAL frequency and source filenames. After you run make and have a .hex file, use avrdude to program your chip.
To go into detail would take much more space than I have, but that is the basic process. When you are comfortable with the process you can do extra cool stuff in the makefile like having a single command that compiles and downloads your code. Some text editors (like geany) let you set custom make commands to GUI menu options so you could have a compile+download button like I do.
Also, the fantastic thing about this process is that it is pretty much the same whether you are building for ARM, AVR, x86, SPARC, whatever. Once you have makefiles and gcc down, the rest of linux development is a piece of cake!
Best Answer
Compared to AVRs, PICs have a variety of twisty little variations in programming algorithms and interfaces, which require careful study of each "programming interface" document. Been there, done that (up to a limit). Unless you are in it for the thrill I would not recommend it. Get yourself a kit or a pre-built programmer. I sell one, Olin sells a few, and there are the PICkit2 and PICkit3, and the various clones of these two. Take your pic(k). I would recommend a type that is at least capable of in-circuit programming. Unless you are into selling programmed PICs, ex-circuit programming is almost useless.