It's old and is missing some of the more modern features found in other CLIs, but a lot can be said for the AmigaDOS shell. With a standard API for interpreting arguments, all tools can follow the same pattern of arguments, can be optionally case sensitive, and I find it to be a good balance between the cryptic arguments of *nix and being too "English". One thing that I've always liked is the way it supports a template, which prompts the user with a short list of possible arguments, rather than reading man pages or whatever. For example, the copy command. If you type "copy ?" at the prompt, it gives you this prompt: "FROM/M,TO/A,ALL/S,QUIET/S,BUF=BUFFER/K/N,CLONE/S,DATES/S,NOPRO/S,COM /S,NOREQ/S" and lets you just type the arguments you need without typing copy again. /S says that argument is a switch, /A says it's always required, /M means it accepts multiple files or objects, /K means it's a keyword and /N means that keyword takes a numerical argument. BUF=BUFFER shows that the command accepts the keyword "buf" as a shortened version of "buffer" for those who use it frequently to save a bit of typing.

So it's easy to see that copy supports a command line like "copy sys:testfile ram: quiet noreq" which copies the testfile to the RAM: drive, suppresses verbose and suppresses "overwrite?" requests.

That sort of thing would be very handy in a new CLI for the more complicated tools!