Я специально сузил вопрос до CLI NodeJS-приложений, потому что если брать нативные терминалы, то ответом на этот вопрос будут тысячи страниц документации. В данном вопросе я также интересуюсь английскими официальными названиями, поскольку это важно для правильного именования переменных.
Что мне уже известно по этому поводу
1. По сути, это имя вызываемого консольного приложения (**applicationName**?)
2. Я называю это командной фразой (**commandPhrase**), потому что она не обязательно должна состоять из одного слова (то есть называние "ключевое слово" не подходит.). Этот элемент опциональный, так как такие утилиты, как **gulp** **webpack**, без него обходятся (пример команды `webpack --mode production`)
3. По сути это строчный параметр (**stringParameter**), где 3.1 - имя (**parameterName**) и 3.2 - значение (**parameterValue**). Есть ещё альтернативных синтаксис `parameterName=parameterValue`.
4. Это булевский параметр (**booleanParameter**), наличие которого означает значение `true`. Если после `--foo` идёт `--bar`, а не значение, то значит `--foo` - булевский.
Другие типы элементов CLI мне неизвестны.