"John P. Linderman" <jpl.jpl(a)gmail.com> wrote:
Marc Rochkind used to recommend reading the entire
UNIX manual each year.
That was good advice in the late 70's, but it would be hopelessly
impractical now, quite beyond the lack of a manual to read. There are just
too many commands and libraries. A valuable service would be to identify
the most useful tools. Those in the old manuals would be an interesting
starting point, but I can't remember when I last used "ar" command, which
I
mostly used to pack multiple files into a single one to save inodes and
wasted file system space, neither of which matter any more. If there were a
corpus of contemporary shell scripts, identifying the most used commands
could be interesting. Perl's CPAN (comprehensive perl archive network)
could be a corpus of scripts from which the most commonly used system calls
could be extracted.
I compiled such a list a couple of years ago. Most of those commands
should be available on every major flavor of Unix and I consider them
"the core Unix tools". This is not a final list, but commands I
personally use most often. Certainly you can't call yourself a Unix
user if you have never consulted their manuals.
as, at, awk, basename, bc, cal, cat, cc, chmod, chown, cp, cut, date,
dc, dd, df, diff, du, env, expr, false, find, fmt, free, gdb, grep,
gzip, head, hexdump, id, iostat, join, ld, ldd, less, ln, ls, man,
md5sum, mkdir, mkfifo, mv, nice, nl, nohup, od, patch, passwd, paste,
pgrep, pkill, ps, pstree, rev, rm, rmdir, script, sed, seq, sh,
sha256sum, shuf, shutdown, size, sleep, sort, split, stat, strip,
strings, stty, su, sum, sysctl, tac, tar, tail, tee, top, touch, tr,
tree, uname, uniq, uptime, vmstat, w, wc, whatis, whereis, which, who,
whoami, xargs, yes
I specifically excluded all shell builtin commands and core network
related tools like ping(8).
It is interesting to note that still most of them come from the earliest
Unix versions. It shows the ingenuity and beauty of the original
design.
--Andy