I have used both Windows and Linux as my desktop machine for a reasonable period of time. The one thing I noticed is that windows is always affected by viruses. The anti virus software has to be updated very often. In linux this problem is not there. Neither it has any anti virus software, nor it is affected by virus.
So I checked for the possible reasons and found some valid points.
In Linux, there will be a 'root' account and a number of user accounts. The root user will have all powers, while normal user does not. Usually the root account is not used by normal users. So even if an infected file or virus is accidentally copied, it will not affect the system. Because since it does not have root privileges, it cannot access any system resources.
And another thing that comes to mind is that the virus writers need attention. Since Linux is not used in many desktop PCs, they will not get much attention even if they are able to make a 'super virus' which can infect any Linux PC. If they want to get it, they have to attack windows PCs.
And consider that some flaw is there in Linux system through which hackers will be able to attack it . But it is an open source system where thousands of developers collaborate to build it. So patches will be posted immediately to fix these flaws. Being an open system have this advantage of easily patchable.
Most of the Linux users are pretty much experienced guys who knows what is what, while most of windows users are not. So the so called 'social engineering' in which users are tricked into doing things are easy in windows. An inexperienced user can be easily tricked into revealing his user credentials, password etc.
Even if some malware comes through e-mail attachment in Linux, it cannot affect the system easily. Because it will not have execute permission. To give its execute permission, it has to be saved. Then user has to login as 'root' and set the execute permission for this. While doing all these, it is normal that he verifies the attachment. So it is unlikely that he will give execute permission for suspected attachments.
But don't think that Linux is completely virus free. 'Bliss' is an example of Linux virus. But it is not spread in a large manner.