This is a common misconception among long time Windows users. Linux will cache as much as possible in RAM - both data and code - to speed up operations, and the in-RAM buffers and cache will generally show up as used in most programs.
Type
free -m. This is the output from that command on my laptop:
Code:
total used free shared buffers cached
Mem: 502 222 279 0 12 117
-/+ buffers/cache: 92 409
Swap: 972 0 972
It says used 222M and free 279M. That doesn't really tell us that much. The interesting line is the -/+ buffers/cache line which states free 92 and free 409. This line reports the amount of memory in active use and how much is available. As you can see, no swap is being used. When your system memory really is being used intensively you will see swap usage increase, and that's a good measurement of how "full" your RAM really is.
Håkan