Interesting that of all the commands mentioned, ar is (at least for me) no longer used (although I haven't used ed in many years). As I recall it, ar was mostly of use to address the extremely low limits on inodes and disk space: the former by packing a bunch of files/inodes into a single file, the latter by saving the wasted space on any file that wasn't a multiple of 512 bytes. I guess it lives on in the creation of "libraries" that could be loaded by compilers, although I think shared objects have largely replaced archive files, and I'm not sure if archive files are even accepted any more.