11

When looking at Unix, I always find the number of terminal commands to be a little overwhelming. TinyCoreLinux, by example my favorite distribution, has over 300 commands. I can't tell how necessary a lot of those commands are. How many commands did the original Unix box have?

I'm essentially hoping that, by going to the original box, we can dwindle down the number of commands to newcomers. Yes, I understand you don't have to learn all the commands, but I know I definitely feel a sense of completion when I have learned all the commands for a distribution (which hasn't exactly happened yet).

24

The first edition of Unix had 60-odd commands, as documented in the manual (also available as a web site):

ar                                  ed                                  rkl
as                                  find                                rm
/usr/b/rc (the B compiler)          for                                 rmdir
bas                                 form                                roff
bcd                                 hup                                 sdate
boot                                lbppt                               sh
cat                                 ld                                  stat
chdir                               ln                                  strip
check                               ls                                  su
chmod                               mail                                sum
chown                               mesg                                tap
cmp                                 mkdir                               tm
cp                                  mkfs                                tty
date                                mount                               type
db                                  mv                                  umount
dbppt                               nm                                  un
dc                                  od                                  wc
df                                  pr                                  who
dsw                                 rew                                 write
dtf                                 rkd
du                                  rkf

There were a few more commands, such as /etc/glob, which were documented in another command’s manual page (sh in /etc/glob’s case); but the list above gives a good idea. Many of these have survived and are still relevant; others have gone the way of the dodo (thankfully, in dsw’s case!).

It’s easy enough to read all the Unix V1 manual; I’m not sure it’s worth doing anything like that for a modern distribution. The POSIX specification itself is now over 3,000 pages, and that “only” documents a common core, with 160 commands (many of which are optional) and a few shell built-ins; modern distributions contain thousands of commands, which no single person can learn exhaustively. The last full system manual I read cover to cover was the Coherent manual...

If you want to experience V1 Unix, check out Jim Huang’s V1 repository: you’ll find source code, documentation and instructions to build and run a V1-2 hybrid using SIMH’s PDP-11 simulation. (Thanks to Guy for the suggestion.) Warren Toomey’s PDP-7 Unix repository is also interesting.

(Thanks as always to Stéphane for his multiple suggestions.)

13

Having worked in large projects with huge APIs and with colleagues who have faced the same issue regarding trying to get an overview of the APIs and databases etc., I'd recommend that you

  1. Don't try to understand everything, and
  2. Learn what you need to learn to do what you need to do.

It may be interesting to try to get an overview of what's possible to do in a Unix shell environment, but the easiest way to learn how to do things is to have tasks to solve and to figure out what tools are available to solve these particular tasks.

Asking questions (and/or reading answers) here on the Unix & Linux site may be a good way to study. Answering questions is even better, which includes being corrected and shown better ways of doing things.

Reading lists of utilities, whether standard, ancient, or 3rd party, will likely not be helpful as it won't tell you anything about how to use those utilities in combination with each other to solve actual problems.

Trying to learn everything (or even a small subset) without actively using the tools will most likely lead to confusion.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.