I responded in comments that focused on different aspects as you clarified the question. See if this is clearer.
A command is a human readable "sentence" that is entered in a command line or terminal to accomplish an action. The entire sentence is the command, defining exactly what you want to do. That human readable string is converted to the system commands that accomplish the task.
A command can be a single word, just a "verb". That word can be a predefined trigger for code built into the command shell, or the name of an executable file. It is only a "command" if you use it in that way.
For example, chkdsk.exe
is a Windows program that you can execute by typing chkdsk.exe
(or chkdsk
) in a command line. It isn't a command until you create a command using the name.
Shell commands aren't stand-alone programs, so you can't refer to them as programs, utilities, or apps. They exist only as predefined words in the shell. They're referred to as "commands" because that describes the form of their existence. When you get information about a shell command, as in man ls
, you aren't using ls
as the "verb" in the command. In that case, "command" doesn't describe its usage, only its nature.
A command can contain different "parts of speech". In addition to the "verb", there can be words that modify or filter the action, identify things, or act as a placeholder for variable information that gets substituted at execution. ls
could be the verb in a command, if the goal is to execute it, or as in your man ls
example, it can be just a qualifier. Either way, if it's part of the command string, it's part of the command.
A command can be a compound sentence containing multiple actions strung together (more than one "verb").
Command parameters that modify the action may not be the "verb" in your command, but behind the scenes may actually be additional "verbs" in the translated command the system gets.