Software Carpentry: Tooling around the Command Line

Software Carpentry: Tooling around the Command Line

-or meddling around the Unix Shell-

!UPDATE: i'm now publishing here

Reminisce.

(Feel free to skip this narrative section)
My earliest memories of experimenting and building are on the command line.

We lived in a trailer park neighborhood with hills, curves, and large patches of trees, and when I wasn't zipping around at warp, I was surveying and exploring (探险) the treacherous jungle behind our trailer. Yes, I was reading a lot of Calvin and Hobbes.

But another set of memories remain just as vivid. My dad had this IBM PC. For some reason, it still looks small in my mind's eye. And I never saw my dad use it -- so it must have been a throw-away from his department at Cornell.

It came with MS DOS 3.1, and it came with one game--the command line. I used it to create what I now realize was my personal version of this game (warning: not complete. it's also where i got the cover image.). What could I get the thing to do? That cursor was my character, and sometimes random text would just show up. What did I do?

I don't ever recall fearing that I'd break it, but I did have to manually shut down the computer. Did I ever delete things by accident? I vaguely remember reinstalling things. Was it MS-DOS itself? I seem to remember some stacks of 💾.

Return.

I have a list of fun side learnings for when I need a break from my main courses, which are currently Fast.ai and data structures/algorithms. Side learnings are things I can do in a few hours, half a day, and sometimes a whole day if I get into it.

I found my recent side learnings through listening to the Corecursive podcast (highly recommended). In the Greg Wilson interview, he touches upon his now celebrated training organization, Software Carpentry.

It was so good to see this:

in the Unix Shell lesson.

Sure it was fun to learn about writing scripts and using loops, but my favorites coming out the course are:

  1. Type ls to list all the files

    Then instead of typing the entire file name, if you wanted to show first 5 lines of each file. Just type, head -n 5 b (then tab), m (then), u (then tab), and the terminal should autocomplete each file name.

  2. ^A to move the cursor to the beginning of the prompt.

  3. ^E to move the cursor to the end of the prompt.

I highly recommend the courses. They're well thought-out, and good refresher for the fundamentals.

I also can't wait to read more about the development of Unix and shells more broadly. Any book recommendations?

P.S. I spent some time customizing my shell with Oh My Zsh with the Power10K theme. It was fun.

Did you find this article valuable?

Support Jia-Jia Zhu by becoming a sponsor. Any amount is appreciated!