A command line interface is a way of controlling a programs with typed instructions. Commands are typed in to perform some process and the results are printed back to the screen. in Shells each command is a seperate program. With applications that have their own CLI the commands can be implemented using functions within the program.
Command Piping Edit
This type of interface originated with Unix based operating systems. The idea behind it was each command would be a specialised tool to solve a particular problem. The results of one program could easily be fed into the input of another. In this way a complex problem could be solved by creating a chain of commands.
I/O Redirection Edit
The result of a command can also be sent to a file. This makes it easy to review the results later on.
ls > list.txt
This sends the results of an ls command to the list.txt file. If the file does not exist it is created, otherwise the file is overwritten.