Unlike a program that has a graphical user interface (GUI) like buttons and menus that are controlled by a mouse, a command line interpreter accepts lines of text from a keyboard as the commands and then converts those commands into functions that the OS understands.
Other Names for a Command Line Interpreter
Any command line interpreter program is also often referred to in general as a command line interface. Less commonly, it’s also called a CLI, command language interpreter, console user interface, command processor, shell, command line shell, or a command interpreter.
Why Are They Used?
If a computer can be controlled through easy-to-use applications that have a graphical interface, you might wonder why anyone would want to instead enter commands through the command line. There are three main reasons. The first is that you can automate the commands. There are many examples we could give, but one is a script to always shut down certain services or programs when the user first logs in. Another can be used to copy files of a similar format out of a folder so you don’t have to sift through it yourself. These things can be done fast and automatically by using commands. Another benefit to using a CLI is that you can have direct access to the functions of the operating system. Advanced users may prefer the concise and powerful access that it gives them. However, simple and inexperienced users don’t usually want to use a command line interface because they’re definitely not as easy to use as a graphical program. The available commands are not as obvious as a program that has a menu and buttons. You can’t just open a command line interpreter and immediately know how to use it like you can with a regular graphical application you might download. Command line interpreters are useful because while there may be a huge number of commands and options for controlling an operating system, it’s possible that the GUI software on that OS simply isn’t built to utilize those commands. They also let you use some of those commands while not having to use all of them at once, which is beneficial on systems that don’t have the resources to run a graphical program.
Not All Command Line Interpreters Are Alike
When a command line interpreter understands a specific command, it does so based on the programming language and syntax. This means that one command that works in one situation, under a particular operating system and programming language, might not work the same way (or at all) under a different environment. For example, one platform might use the command scannow to scan the computer for errors, but another program or operating system that doesn’t have that capability built in, might do nothing. Or, if it has a similar function, the command line interpreter might only understand scan or scantime, for example. Syntax is important, too, because they’re sensitive to the point that any mistyping might be misinterpreted as a totally different command. The program might use scannow to start a scan, but if you remove the last letter, scanno might be how it understands when it should stop the scan.
More Information on Command Line Interpreters
In most Windows operating systems, the primary command line interpreter is Command Prompt. Windows PowerShell is a more advanced command line interpreter available alongside Command Prompt in more recent versions of Windows. Windows Terminal also includes command-line tools, but it’s not available for all Windows versions. In Windows XP and Windows 2000, a special diagnostic tool called Recovery Console also acts as a command line interpreter to perform various troubleshooting and system repair tasks. The command line interface in macOS is called Terminal. Sometimes, both a CLI and a GUI are included within the same program. When this is the case, it’s typical for one interface to support certain functions that are excluded in the other. It’s usually the command line portion that includes more features because it provides raw access to the application files and isn’t limited by what the software developer chose to include in the GUI.