Linux: (from Jeremy Sanders and others)

1) find 
> find                 # get a list of files in this directory and subdirectories
> find | wc -l # count all files
> find -name "*.txt" # get a list of all files called *.txt
> find -newer foo.txt # find files modified more recently than foo.txt
> find -type d # find all directories ( -type f # find all regular files)
> find -size +2M # find files at least 2MB in size

2) paste - Add files together as columns. Useful for merging data
  paste data1 data2 > data_com

3) pstoedit - Make an editable xfig file from a Postscript file
 (e.g., pstoedit ??.ps -f xfig ??.fig  to make .fig file for xfig)

4) sort
sort data.txt   # sort alphabetically
sort -n data.txt > out.txt # sort numerically (gen. format)
sort -n -k 2 data.txt > out.txt # sort num. by 2nd column
sort -r -n data.txt > out.txt # num reverse sort on 1st column
5) xargs - Run a command on a set of files input from standard input
find -name "*.txt" | xargs rm   # delete all files called *.txt  (does not work if spaces in names)
find -name "*.txt" -print0 | xargs -0 rm # works with spaces
6) xmgrace - Grace - a plotting package with a GUI.

7) at - un a command at a particular time

8) bzip2, bunzip2
  (compresses data better than gzip, but much slower)

9) convert - Convert between different image formats (ImageMagick)

10) nice - Start a process in a nice way. Nice levels run from -19 (high priority) to 19 (low priority).
Jobs with a higher priority get more CPU time. See renice for more detail. 
nice +19 myjob1   # run at lowest priority

11) xjobs and parallel
  (cd1, cd soft)
  (e.g., ls | parallel bzip2, http://www.gnu.org/software/parallel/ http://www.maier-komor.de/xjobs.html http://www.astrobetter.com/multi-core/)