I'm a Linux buff and a command-line freak. My window manager doesn't use the mouse, and neither do I except for pansy things like browsing the web.
For development, I use GCC (and its variants thereof) and a text editor (IDEs are for wimps
). As far as languages are concerned, I use C and C++ most often, although I do a fair bit in Perl and once in a while Java and other languages as well.
If you want my opinion of languages, I'd say that the criteria for a good programming language is (1) easy things are easy, and (2) hard things are possible.
C is the most solid but the hardest to use (there are almost no safety checks done for you; it assumes the programmer knows what he's doing). It definitely passes (2), but fails (1) - some normal, everyday things require quite some effort from the programmer to implement (although once you've built up a library of common stuff you need, it's not that bad).
Java is a much nicer language, but I find it too verbose and too straitjacketed - simple things are hard and some hard things are impossible. It's quite good when you're working with higher-level stuff, but it gets in the way when you need to get down and dirty and manhandle the machine to do what you want. So it fails (1) and (2). (But it's still a nice language from a theoretical standpoint, though - definitely better than C or C++.)
C++ tries to be Java but refuses to sever its ties with C, so it inherits some of C's design flaws and doesn't quite deliver what Java delivers. Although I do use C++ a lot, I hate it just as much (if not more). Like C, in C++ simple things are sometimes quite hard to do, so it fails (1); but hard things are possible because you can write C-style code for when you need to manhandle the machine, so it passes (2).
Perl was designed with (1) and (2) in mind. Simple things are very simple, and many hard things are possible, although there are some things that it can't quite handle. In terms of philosophy, I love Perl the best. But the problem with Perl is that if you're not careful, it can become a write-only language. It's a pleasure to write but when you come back to it 3 months later you can't understand a single bit of the gibberish you've produced. It takes effort from the programmer to be maintainable: not so good (IOW, most programmers are lazy so they write bad code). This makes Perl a language which is perfect for writing short programs and rapid prototypes, but it's not very suitable for large-scale applications.
The most promising language I've seen so far is the D programming language (and no, this is not a joke, try googling for it). It has all the power of C but with many design flaws fixed and many good features added. However, it is not yet a mature language; it's still undergoing a lot of development, and it doesn't quite have the large base of libraries yet, that is indispensible in this day and age. So it's something to keep in mind, but it has a ways to go before it's ready for general consumption.
Now having said all that, the above is really from the standpoint of relatively experienced programmers. For beginners, I would recommend either a nice scripting language like Ruby or Python, or a clean language like Java. They're not perfect, but when you're first starting out you really want to get a good grasp of basic programming concepts instead of losing yourself in the complex little details that needs a bit more experience to handle correctly. The language itself is really secondary; the primary thing is to learn the basic programming concepts - control structures, data structures, abstraction, algorithms, etc.. Once you've learned these basic concepts, you can really just pick up any language and work with it - it will just be a matter of filling in the details (by consulting the reference manual).