How to write zeros to all sectors of a drive under linux

WARNING, THIS WILL DESTROY YOUR DATA IF YOU DO THIS TO THE WRONG DRIVE

shred -vfz -n 0 /dev/xxx

-v is for verbose (this takes a huge amount of time and you really will want progress updates)
-z is for write zeros
-n 0 is for how many passes of totally random data to write first, here none. Feel free to do random passes if you are doing this for data destruction purposes. It takes a long time.

(you should replace xxx with the raw drive, not the partition, e.g. sdd not sdd1. YOU WILL DESTROY YOUR DATA IF YOU DO THIS TO THE WRONG DRIVE. If you need to find out what your desired target disk has been recognized as (may change every boot) run fdisk -l or gparted and look for a disk of the right size and type in the results. BE VERY SURE, and make sure your data is for the current boot (may change).