How to Build a Cross-Shell Dotfiles Repository
Separate shared environment, shell-specific syntax, secrets, and machine-local state, then deploy links idempotently and make rollback intentional.
tag
14 posts
Separate shared environment, shell-specific syntax, secrets, and machine-local state, then deploy links idempotently and make rollback intentional.
An operational account of Catalina's zsh default: which accounts changed, what stayed on Bash, and how administrators could migrate without breaking scripts.
Commands seem to vanish between sessions, or history from multiple terminals overwrites instead of combining — how history writing works and the fix for each.
Opening a new terminal tab shouldn't take a visibly annoying second or two — how to find which specific config line is responsible, rather than guessing.
Every shell in daily use today descends from a 1971 command interpreter, branching through PWB, Bourne, and C shell into the families still visible now.
Installing Zsh as your shell, setting up Oh My Zsh, and configuring a theme and a first useful plugin, from a default shell to a productive one.
Catalina made zsh a mainstream interactive default; this account separates that ecosystem effect from macOS fleet migration and script compatibility.
Born August 28, 2009 to get his own team using Zsh, Oh My Zsh grew into the most widely used Zsh configuration framework in daily use today.
Posted to Usenet by a Princeton student in 1990, Zsh combined the strongest interactive features of several existing shells, decades before becoming macOS's default.
Bash, Zsh, and sh accept most of the same commands, which is exactly what makes their real differences easy to miss until a script breaks.
A colorful prompt showing git branch and exit code is not a separate program — it is a string the shell re-evaluates before every command.
A prompt showing broken characters or startup errors after a theme update — how to isolate whether it's a font, config, or version issue.
Re-running the last command with sudo and fuzzy-searching everything typed today both rely on the same persisted, indexed log the shell writes to disk.
Pressing Tab and getting a sensible list looks simple. Underneath, Bash and Zsh implement a programmable system matching rules specific to each command.