Linux & bash
This folder has no README. Everything inside it is listed below.
Notes
- Bash: triage and scripting 6 The interview question is never "what does ls do".
- Bash Scripting Essentials 6 The minimum vocabulary for writing maintainable bash scripts: shebang, variables, conditionals, loops, functions, arguments.
- Quoting and Expansion 6 The single biggest source of bash bugs: subtle differences between single quotes, double quotes, no quotes, and $(...) substitution.
- Parameter Expansion 6 ${var} is the basic form, but bash has a rich set of ${var:-...}, ${var//pat/repl}, ${var#prefix} modifiers that replace whole sed/awk calls.
- Pipes, Redirects, File Descriptors 7 Every Unix process has three default file descriptors: 0 (stdin), 1 (stdout), 2 (stderr).
- Exit Codes and Strict Mode 6 Every command returns an exit code: 0 = success, non-zero = failure.
- find and xargs 6 find walks file trees and matches by name, type, mtime, size, permission. xargs turns stdin into command-line arguments.
- grep, sed, awk 7 The classic Unix text-processing trio. grep finds lines matching patterns, sed does line-by-line stream edits, awk is a small language for column/field…
- Process Management 6 Every running program is a process with a PID, a parent (PPID), an owner (UID), and a state.
- Signals and Traps 6 Signals are how the kernel and processes tell each other "something happened." For Python developers the relevant ones are: SIGTERM (please shut down),…
- File Permissions and Ownership 6 Every file has an owner (user), a group, and three sets of read/write/execute bits — for owner, group, others.
- SSH — Keys, Config, Tunnels 6 SSH is what every Python dev uses to log into servers, push to git, and tunnel through firewalls.
- Cron and Systemd Timers 6 The two ways to run scheduled jobs on Linux.
- Systemd Services and Journalctl 7 Systemd is the init system on most modern Linux distros.
- Shell Startup, Environment, and PATH 6 Why does /usr/bin/python3 work in your terminal but not in cron?