cs-tech-primer

Computer Science tech primer for the University of Manitoba.

View on GitHub

Computing with UNIX

Really ties tightly with the shell - but this one focuses on using the tools. What tools are available on the command line, why are they good, how do we use them?

Focus on using the tools to wrangle some data

By the end of the module, students should be able to:

Why is UNIX a big deal? Why do people use it?

Favourite? [Original comic by SrGrafo](https://www.srgrafo.com/)

Well, really, why is Linux popular? Or, what did UNIX do right that people still want to use it.

A few reasons:

The other big part of the UNIX philosophy is “use text”, this is for configuration files, databases, input, output, streams, all the places. This seems like a small idea, but has big implications - we now have a standard (cough) way of getting input into programs, and sending input into other programs.

This is taken to the next step of the final UNIX philosophy mantra: everything is a file. This is, again, a simple idea that has massive implications. And that means we can use piping and/or file redirection to pretty much anything on the filesystem.

What about “do one thing well?”

The catch is: you’ll end up using lots of programs that you didn’t have to write. The problem moves from “how do I make this” to “how do I use these tools to solve this problem”.

We’ve seen piping, which is a BIG part of this. But there are also amazing tools built in, too.

The tools

These are all huge, and deep. All of these are superficial introductions to the tools:

Permissions

UNIX file permissions are a frequent cause of friction. They are generally not that difficult, but only if you understand the way it works.

Though it requires its own chapter. I swear it’s not that bad.

Activities

TODO