I am a Windows user. I work as a web developer. I would like to start using Linux, slowly perhaps as my main OS. I would like to know more abt Linux, like what Anti-Virus/Firewalls are recommended (if needed?) abit more abt the shell commands. And in general, how do what I do in Windows map to Linux
The best advice I ever heard for such situations was: "If you have prior Windows experience, you are doomed. You will be dominated by your Windows experience for years. If you want to learn Linux - forget what you know about Windows. Keep only the general computer knowledge."
Over years I understand this is a very good advice and many people who follow it learn things faster.
For example, a typical Linux newbie who used Winamp for years, thinks like "in Windows, I use Winamp to listen to music, I need to find Winamp in Linux". So he goes asking people about Winamp on Linux, where is it. If he has bad luck, Linux users will just tell him there's no Winamp on Linux. This is a valid answer, but it's pretty useless and disappointing, since it doesn't meet expectations (what, people keep talking about Linux and it doesn't even have Winamp?). Another bad question is "How do I run Winamp on Linux?". A valid answer (yet mostly useless again) would be "Use Wine to run Winamp on Linux". It works this way, but it is a pain. The correct question here would be "What audio players are there to play music in Linux?". Do you see the difference? This is a higher level of abstraction. Eventually, the Linux newbie will learn about a lot of audio players, some of them being very similar to Winamp and even being able to use Winamp skins (xmms, audacious).
There are a lot of firewalls in Windows. For a Windows user a firewall is generally a third-party GUI application. In Linux, there's Netfilter that belongs to the kernel and iptables - its userland companion. There are many different frontends for iptables though, even GUI ones.
A Linux desktop doesn't generally need an antivirus, there are many reasons for that:
dedoimedo.com has tons of information, reviews and tutorials about a lot of stuff. Reading around there got me hooked and getting comfortable to install Linux (Mint Julia) and since then other distros.
For what it is worth, I'm trying to get started with linux using it as a guest os with something like virtual box. Networking seems to be troubling me a bit on the guest but otherwise playing with shell and stuff it reduces the risk of doing something crazy that i may regret.
For beginners, ubuntu (http://www.ubuntu.com/) and its derivatives are probably the best place to start. It's new-user friendly without completely hiding linux from you. So you can start learning about linux as you use it. I would start with standard ubuntu, then try some of the derivatives like linux mint. After a few months of experience, try something like fedora/debian so you can learn more about how the linux ecosystem works.
After about a year, if you really want to know as much as you can about the inner-workings of linux, start with something like arch linux, which isn't recommended for beginners (unless you are very patient and okay with taking the risk of breaking your system, I was and learned quite a bit from that).
Security-wise, linux has firewall management software that manages its built-in firewall. I haven't seen any that add a different one to it, although there may be those too. Linux viruses are very rare but they do exist, one pops up every few years. From what I know, doesn't affect a lot of people and being open-source means the fix will probably be supplied within a very short period of time. You probably don't need it, but anti-virus software is available.
Clam-av is one good one; it is command-line based by default but also has a graphical version. AVG and Avast also have linux versions. There's a pretty good summarization here: https://help.ubuntu.com/community/Antivirus.
If you are web-developer, you have probably heard of LAMP: (http://en.wikipedia.org/wiki/LAMP_(software_bundle)), here's a ubuntu-guide to setting it up: https://help.ubuntu.com/community/ApacheMySQLPHP but I would highly advise getting at least a couple of months of linux experience before trying it.
Some good sources of Linux information:
http://tldp.org/ - Covers pretty much everything.
For getting into the command-line, which you will want to for sure: http://www.linuxcommand.org/
The Arch Linux wiki is also a good place for advanced linux installation and configuration info: http://wiki.archlinux.org/
p.s. sorry if this is like information overload...
There are a number of places to go for this.
Here is one:
You could likely take a "unix" course at a local community college, to learn the command line commands.
And, as you will see on the Ubuntu site, it is easy to download Ubuntu and install it in dual-boot mode on your existing system - although it would be nice to have the two side-by-side to avoid rebooting.
Linux comes with a firewall already, and generally you won't bother with an anti-virus to start with. I am sure there are some anti-virus out there for Linux but you very rarely see anyone mention such a thing.
Start out setting up Apache web server on Windows, and almost everything you do on that should be transportable to Apche on Linux. That might be a way to start becoming familiar with the whole environment.