Where to Find Command Line Interface Software
Image by Less than Info on Flickr
One key computing skill is the ability to use command line interface (CLI) software to enter commands to control a computer. Here are some options.
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:
Linux
- gnome-terminal
- Guake
- konsole
Mac OSX
- iTerm 2
- Terminal
- xterm
- ZOC Terminal
- ZTerm
Windows
- ConEmu
- PuTTY
- Terminator
- 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.
Common Tasks
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.
Terminal emulators also can be used to program in some languages, for example, Python and Clojure, if the language software is installed on your computer. In fact, LightTable is a new editing software tool that uses a command line to code Clojure, Javascript, HTML, and Python while including a modern set of functionality to support software coding. So tools vary and it is worth searching online.
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.
Learn More
ConEmu
http://code.google.com/p/conemu-maximus5/
http://sourceforge.net/projects/conemu/
iTerm 2
konsole
mintty
http://code.google.com/p/mintty/
PuTTY
http://www.chiark.greenend.org.uk/~sgtatham/putty/
xterm
http://invisible-island.net/xterm/
ZOC Terminal
ZTerm
http://www.dalverson.com/zterm/
Light Table (Command Line Integrated Development Editor)
Command Quick Reference Guides
http://www.scribd.com/doc/2203531/UnixLinux-Commands-Quick-Reference
http://unix-commands.net/
Also In The October 2013 Issue

An Interview with Troy Hunt
Troy Hunt is a software architect and Microsoft Most Valued Professional (MVP) focusing on security concepts and process improvement in a Fortune 50 company. He's based in Australia.

1Password, LastPass, RoboForm
If you use a password you created that is less than eight characters, your password is vulnerable to hacking. Here are three ways to create and use secure passwords online.

How to Write Secure Code
Coding securely doesn't have to kill the joy of programming. In fact, learning how to code securely provides insights into languages and computing.

How to Code HTML Email
How to code an HTML email like the ones you open every day turns out to be an offbeat software coding challenge.

What is an SSL Certificate?
How to tell if a web page is secure is one of the most basic yet least obvious ways to protect your data online.

Where to Find Command Line Interface Software
One key computing skill is the ability to use command line interface (CLI) software to enter commands to control a computer. Here are some options.

Lua
Lua is a comparatively simple programming language used in a wide range of places, from digital TVs to video games to phone applications. It's also designed to be simple to use and lightweight.

Arrays
Here is how three programming languages handle a common problem: how do you organize and keep track of useful data?

Linux Command List for Command Line Interfaces
Some of the most common commands you'll need for a command line interface (CLI), in a Linux command list.
Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter.

News Wire Stories for October 2013
Must read stories about computer science, software programming, and technology for September 2013.

Learn More Links for October 2013
Links from the bottom of all the October 2013 articles, collected in one place for you to print, share, or bookmark.

Pigeons on the Stairs
Here is a deceptively simple math puzzle at least 1200 years old.