There are at least two ways to make computers do what you want: writing scripts you call with a web browser or other software or else typing commands, one line at a time, into a command line interface software tool or command prompt.
Using a command prompt is a throwback to the early computing era when coders used a computer terminal, what we call a computer monitor today, to enter commands into a mainframe computer. (Even better, these terminals are still called dumb terminals, as if somewhere there are smart terminals, perhaps with college degrees.)
Command line interface software tools in some cases are faster and provide more direct control than graphical user interfaces, scripting, and other methods of computing. The ability to use a command line interface also is a skill most professional coders use to control computers and software. New coders should learn how to use these software tools in school and on their own computers.
Command prompt software falls into two categories, shells and terminal emulators. Shells provide direct access to the computer operating system, for example, searching file directories. Terminal emulators interact with shells to perform tasks with the operating system while also performing tasks shells might not perform, for example, downloading and installing software or editing files.
If you use Windows long enough, you may have used the black rectangle command prompt. This is a classic limited shell software program to control Windows. Some people call it a DOS prompt but the Windows command prompt does more than run DOS, the original operating system that led to Windows.
Why Learn Command Line Interface Software?
The primary reason to learn how to use shells and terminal emulators is to have total control over the computing environments you use. The difference between using a graphical user interface and a command line is the difference between a car with an automatic transmission and a car with a manual transmission. Both get you where you want to go. But a manual transmission is a more direct method to control the car engine. Shells and terminal emulators simply provide more direct control.
For example, Terminal runs on Apple computers with Mac OSX and lets you connect to a remote web server, install an application called htop to view all processes running on the remote server, then start htop as well as shut down htop. This broad range of functionality is mostly not available with shell software like the standard Windows command prompt.
How to Pick a Terminal Emulator
Your options are determined by the operating system on your computer. There are several terminal emulator software options for every major operating system. For example, on Linux systems there is bash which is has pure command line interface and konsole which has the more familiar graphical user interface of modern software.
Here are a few options for Linux, Mac, and Windows:
- iTerm 2
- ZOC Terminal
- ZOC Terminal
Links to these tools and more are at the bottom of this article. And note some tools are bundled in the operating system software, for example, gnome-terminal and xterm for Linux and Terminal for Mac OSX. Linux repositories should have all possible terminal emulators for their operating system versions, for example, Ubuntu, Fedora, and Debian.
Command prompt software, or terminal emulators, offer interfaces that range from simple to complex. What works best depends on your needs and preferences. I prefer simplicity, for example, and tend to use Terminal on my Mac OSX machine. But others swear by more full-featured emulator software.
Terminal emulators are used for a variety of tasks:
- Working with the operating system, for example, to browse folders and files and set configuration values (also known as shell functionality).
- Connect securely to remote servers.
- Install and configure software.
- Create and edit files, usually for configuration of software.
The primary purpose of command prompts is to run a series of commands. You learn the most common commands through practice. It also helps to find a good command quick reference. Two excellent references are listed below, along with links to terminal emulators and shells.