====== 2.1.2 Definition: Command Line Interface (CLI) ====== [[dido:public:s_cli:05_contents:01_prt:02_basics:01_commondef:start| Return to Common Definitions]] [[dido:public:ra:xapend:xapend.a_glossary:c:cli]] is an [[dido:public:ra:xapend:xapend.a_glossary:i:interface|interface]] that uses text based commands to control an external [[dido:public:ra:xapend:xapend.a_glossary:a:application|Application]], Utility or service. The command text follows prescribed [[dido:public:ra:xapend:xapend.a_glossary:s:syntax|syntax]] as described by an external document. Generally, the syntax description uses [[dido:public:ra:xapend:xapend.a_glossary:b:bnf]] or ideally the Augmented BNF (ABNF) as described in IETF RFCs [[dido:public:ra:xapend:xapend.b_stds:tech:ietf:5234 | 5234]] and [[dido:public:ra:xapend:xapend.b_stds:tech:ietf:7405 | 7405]].
{{ dido:public:s_cli:05_contents:01_prt:02_basics:screen_shot_2021-04-17_at_6.56.39_pm.png?600 |}} An Overall Flow for Command Lines
Figure {{ref>CliFlow}} is a simplified flow of how a CLI opertes. An operator enters commands into a tern=minal and submits the commands to a CLI which can then invoke one or more APIs using any required protocols to get the Application, Utility or Service to respond. If the commands are sent over a network [[dido:public:ra:xapend:xapend.a_glossary:l:lan]] or [[dido:public:ra:xapend:xapend.a_glossary:w:wan]] to another computer, the commands are sent securely using [[dido:public:ra:xapend:xapend.a_glossary:s:ssh]]. It is also possible that there can be multiple implementations for any particular Command string. This allows the originators of the commands to used different implementation based off of business decisions. For example, if the command string is comprised of [[dido:public:ra:xapend:xapend.a_glossary:s:sql|SQL]] commands, then the DBMS implementation be be chaanged without having to retrain the user typing commands or changing the code that generates the commands. /**=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- /* To add a discussion page to this page, comment out the line that says ~~DISCUSSION:off~~ */ ~~DISCUSSION:on|Outstanding Issues~~ ~~DISCUSSION:off~~