Nowadays, `tar -xf foo.tar.gz` (at least in Linux) will auto-detect the gzipping and just do the right thing. I think it uses file extension, so I'd suspect it works for .bz2 and .xz too. (Not sure I'd use this for shell scripts, but for everyday command line it should work.)
e.g.
tar axf linux.tar.gz
tar axf linux.tar.bz2
tar axf linux.tar.xz
will all work, assuming you have gzip, bzip2 and xz installed.