Introduction to Tools and Techniques in Computer Science

Summary

Franklin Bristow

Summary

This has been a bit of a whirlwind through some topics related to running programs on Linux or UNIX-like systems, with us learning a little bit about things that apply to all programs (how and where they get input, and how and where they send output).

Depending on the path you take through CS, you may eventually learn about the underlying mechanisms of how this all works (maybe) in an operating systems course, specifically about how an operating system (OS) represents “processes” (running programs) as a data structure, and how the OS keeps track of files that a process has open (STDIN, STDOUT, and STDERR are all special file-like-things™; neat 📷).

You’ve also seen how to take the commands you’ve been running on the command line and keep them in a script so that you can quickly re-run them. While this isn’t a programming course, shells are full-featured programming languages.

You should now be able to:

  • Redirect the output from a program to a file.
  • Redirect a file to be the input for a program.
  • Send data between programs using a pipe.
  • Write and run shell scripts to repeat complex tasks.

Now you should be ready to start working on the assignment this week!