Computer Use Overview
The first leg of our journey will introduce you to a new way of interacting with your computer. This will give you a whole range of new tools to play with, helping add new capabilities to your toolbelt and positioning you to be a powerful and productive computer user.
You will be familiar with the standard user experience of using a computer. This might have involved touching and swiping icons on a smartphone or tablet, or using a mouse and keyboard to interact with buttons and controls on windows drawn to monitors. These elegant digital realities provide a convenient way to enable us to launch and use programs on our computers.
But wait! There is another world out there. One that underlies all of these elegant interfaces that you see. One that we will need to start exploring in order to gain access to the full set of capabilities for our programs.
There are many tools that developers and computing professionals use that do not have graphical interfaces. This is because developing a graphical program requires significant effort, as building a user interface takes time and skill. This is worthwhile if you want to build a program for wide use, but is not always needed if you have skilled users. Instead, tools for developers and computing professionals often have simple command line interfaces where the user can interact by typing commands and responding to prompts at a terminal.
The fact that these programs have simple text-driven interfaces can be a challenge at the start, but it has several benefits for skilled users. For example, it makes these programs much easier to automate. It also enables them to be combined in interesting ways to quickly and easily achieve a range of useful tasks.
In this chapter, you will learn about the environment within which all programs run, and how to use the command line yourself. Understanding this will help you debug issues and error messages from running programs, get a picture of how these programs are connected with the operating system, and start programming the computer at the command line level.
Learning Goals
By the end of this chapter you should be able to:
- Access and interact with your computer via a terminal.
- Use command line programs to perform a range of computing tasks.
- Explain the operating environment of programs, the means of sending input to a program, and interacting with the output from a program.
- Use pipes and redirection to move data between programs and to files.