Yes, they are constantly vibrating, but are a lot more constrained than in fluids. For a real “solid” solid like a metal or crystalline substance the atoms or molecules have to keep their lattice structure, so there isn’t free movement throughout the solid, but they are constantly oscillating about their average position. If this weren’t the case, solids would be at absolute zero all the time.
As mentioned before, particles in a solid are in fact moving. You can "observe" that with gauge blocks.
The faces of these blocks are so flat, that they stick together if you stick them together in a certain way.
) is a nice video about that).
However, if you "stick" two of those together and leave them for a few weeks/month/years (depends on the temperature) they actually weld together.
Since a good set of gauge blocks is expensive as hell, be sure to always put them away separated from each other.
EDIT: formatting and typo
Yes, diffusion occurs in solids as well. Atoms can move through the crystalline lattice of a solid material through a number of different routes. The atoms can move through interstitial or substitutional mechanisms for example.
Particles must always move, no matter what the conditions due to Heisenberg's uncertainty principle, which states one may not know the exact velocity and position of a particle. The more we know about one value, the less we know about the other.
This means that no particle may be completely motionless, as we would then know the position and the velocity simultaneously.
Even at absolute zero, particles still move, even if it's the slightest movement. I believe Feynman called it the "quantum jitters," but the technical name for this phenomenon is "zero point motion."
So yes, particles must move in a solid. To answer your second question, atoms are so attracted to each other that they vibrate, but don't move past each other. Atoms in liquids move much more freely amongst each other.
Basically the reason why substances in gaseous and liquid states flow and move around is they have enough kinetic energy (per particle) to resist the inter-particular forces (dipole bonding, hydrogen bonding etc). When they have this amount of kinetic energy behind them, if they bump into another particle, the momentum continues to carry them along and they overcome the sticky bonding forces.
However, as we cool a gas down, and it condenses into a liquid, we see particles having more interactions; their volume decreases because the particles have less energy, and they interact with the attractive forces of other particles more. Not enough to make them stick, but enough to contain them in a definite volume at a constant pressure. They still flow and hold the shape of their container but they do not expand to fit the whole thing.
If we continue to cool this substance below the fusion/freezing point, the kinetic energy of the particles ceases to carry enough momentum to overcome the sticking forces of other particles. H-bonding, ionic crystallization or induced dipole-dipole interactions, etc all occur at this point, and the substance becomes rigid - the particles are more strongly attracted to one another and the particles are no longer free to move about. They become stuck in place as interactions occur between more and more particles. They still vibrate in place, but do not have enough energy to break free from those bonds formed within their network of bonds.
The movements of atomic nuclei in solids can be measured to quite high precision using techniques such as X-ray absorption fine structure. These techniques determine the spatial distribution of internuclear distances between pairs of atoms.
A typical deviation from the mean separation of ca. 0.3 nm would be 0.01 nm at room temperature.
Reference (not for the fainthearted):