Another feature of the Tenex line of operating systems (and others of that era) was that the command shell also served as a 'system monitor,' like some of the 8-bit computers had. In other words, the CLI was also a rudimentary debugger.
An example of this was explained by Gerald Sussman. He told a story of how Marvin Minsky walked a student through making a full-featured program at the command line on an ITS system at the MIT AI Lab (or was it the Media Lab?).
Minsky simply made a program that consisted of nothing but the assembly language RETURN statement. Running that program brought the system back to the shell. Minsky then added a few more instructions to that program; not much, but enough to keep it in a working state. Then, Minsky—from the command line—examined the contents of certain registers, and incorporated them into the next few assembly language instructions which he added to the program.
At each stage of that loop, Minsky always had a working program. So, from the command line, one could develop an assembly language program in an environment that was more dynamic and responsive than that offered by many modern development environments for modern languages.