April 17th, 2020


Teaching My Wife Unix - Day One

It was one of those pandemic things which began approximately 30-days into the self-quarantine, when the rush of the creative stimuli began to wane. A full month of challenging (given the adverse environment) content creation in place of the endless video games and mindless television shows which plagued our pre-isolation. But even that was ebbing and growing trite given the duration. That's when I announced, "I'm thinking about teaching you unix."

My wife is awfully smart and occasionally curious at my feverish typing and code-like speech to coworkers over conference calls during break-fix activities, so it seemed the perfect distraction. What I had forgotten was how much teaching something taxes the part of your brain one would normally take for granted when the questions are never raised - like why are the filesystems named what they are named? "etcetera" and "optional" and "variable" - easy to understand when you've been doing it for 20-years, slightly more difficult to articulate it from the ground up; filesystem hierarchy and layout; interdependency and functionality.

This led us into a brief history of Berkeley, and AT&T, enumerating examples of both, culminating into today's popular linux distros. From there I had her research them and choose one for installation as our learning testbed. Using NoMachine (incomprehensibly faster and more stable than VNC), I was able to log-in remotely to view her desktop while she worked, which allowed input without being oppressively over the shoulder (and to take over the screen quickly when words failed to accurately describe the location of a minor tab or radio-box) as she worked. Painstakingly, we went through each step of a virtual machine guest creation (up to and including disk cylinders, why swap is always the first partition, why /var is never mounted in the root partition, and why she'll likely never have to worry about any of those things today)! This resulted in her installing her first distro, a headless openSUSE server!


ME (a unix admin): "We need some unix-y music,"
HER: (with the quizzical look): "What is unix-y music?"
HER: ...

psy goa trance starts playing

HER (a connoisseur): "Oh, like Hackers!"

We closed the console and I had her log into the box remotely, via secure shell. Or at least, I tried. The username on the new openSUSE box did not match her username in the Mac Mini terminal, so it was then and there I decided we'd just jump right in. Awkwardly, I didn't realize at the time how overwhelming just changing a username would be for a novice.

This necessitated discussion and practical application on the following concepts as we stepped through each field of a password file:

Where usernames are kept on a unix system
How to ascertain where user passwords are located
What is a GID?
What/Where are user groups?
What goes in a comment field?
Home directories
Brief history of the shell and where to define it

Followed up with:

SysAdmin 101 - always copy a file you're going to edit prior to editing it
Why are we changing all these goddamn files for a single username?
Fuck mv, where is the unix rename command?
What is cat and how to use it after you've just edited a file you previously backed up.

And well before I was ready to even introduce it, but by sudden necessity, an introduction to vi. On the plus side, the gamer in her was able to quickly associate the vi navigation keys h, j, k, l with the w, a, s, d character movement keys in video games, something I'd not even ever considered.

She reminded me at the hour-and-a-half mark that most classes gives breaks after 60-minutes of lecture and labs. Thankfully, we'd just completed our task.