Series 1: Unix Foundations
Before you write a single line of C, you need to be comfortable in the Unix shell. This series takes you from your first terminal session to piping commands together like a pro.
Lessons
1.1: What is Unix? From System to Shell
~20 min · Week 1 · No prerequisites
Unix history, the shell as command interpreter, absolute vs. relative paths, and hidden files. Your first time at the terminal prompt.
1.2: How Do I Navigate Files and Directories?
~18 min · Week 1 · Prereq: Lesson 1.1
pwd, ls, cd, mkdir, cp, mv — building and navigating directory structures. Wildcards and the ./.. shorthand.
1.3: How Do I Find Help in the Unix Manual?
~15 min · Week 1 · Prereq: Lessons 1.1, 1.2
Man pages, sections, searching with /, command history, and --help. The built-in documentation system you’ll use all quarter.
1.4: What are File Permissions and How Do I Change Them?
~20 min · Week 2 · Prereq: Lesson 1.2
Read, write, execute for user/group/other. Octal notation (755), chmod, chown, and why directory execute permission matters.
1.5: How Do Input/Output Redirection and Pipes Work?
~22 min · Week 2 · Prereq: Lessons 1.2, 1.3
stdin, stdout, stderr. Redirection with > and >>, piping with |, and chaining filters (grep, sort, wc, cut). The Unix philosophy in action.
1.6: How Do I Configure My Shell Environment?
~18 min · Week 2 · Prereq: Lessons 1.1, 1.3
Environment variables, $PATH, ~/.bashrc, aliases, and setting up your C development environment (CC, CFLAGS).
Related resources:
- C vs Java Cheat Sheet — side-by-side reference for Java programmers
- CTF Challenges — weekly security challenges tied to what you learn each week
Next series: Series 2: C Foundations →