
This is a page from an upcoming zine called "The Secret Rules of the Terminal".
To get an email when the zine comes out, sign up for the zine announcements list!

read the transcript!
the shell starts programs
when you run a program in the terminal, you’re actually asking your shell to start it for you
it turns out that starting programs is a surprisingly complicated job!
the 3 most popular shells
there are LOTS of shells but 95% of people use
- bash (default on Linux)
- zsh (default on Mac (in 2025))
- fish (aims to be more user friendly)
fish: the friendly interactive shell
ASCII illustration of a fish
I love how fish has friendly defaults that I can use without configuring it
this is (mostly) not a fish propaganda zine though
Little illustration of a smiling stick figure holding up a sign that says “fish 4eva”, labelled “me”
bash and zsh are both “POSIX shells”
this means they follow a standard for how Unix shells should behave, but there are differences
I’ll mention when something varies between shells!
where to find your shell’s config file
bash:
~/.bashrc
or ~/.bash_profile
(which one is a rabbit hole, huge flow chart at wzrd.page/bashrc
)
zsh:
~/.zshrc
fish:
~/.config/fish/config.fish
.bashrc
vs .bash_profile
here’s an trick to figure out whether bash is using .bashrc
or .bash_ profile
(or both!)
Add:
echo "this is .bashrc"
echo "this is . bash _ profile"
to each file, open a new terminal tab, and see what it prints out!
Saturday Morning Comics!
Want another comic like this in your email every Saturday? Sign up here!