The Living Thing / Notebooks :

The Fish shell

Finally, a command line shell for the 90s

Not the aquatic creature, but rather the command-line doohickey, which is not as shit as the other ones. I’m gradually transitioning to fish, after accidentally losing a lot of precious data due to a quirk in bash syntax. Long boring story. It’s time for new, exciting, different stupid errors.

fish has a strong fanbase and principled, opinionated design. If nothing else, it has a healthy degree of sarcasm in its documentation (“Finally, a command line shell for the 90s!”) That sarcasm is sorely absent from the drearily earnest nerdview of your typical project.

pro tip: You will need virtualfish to replace python’s

pro tip: the command to get the web-based GUI is fish_config.

pro tip: ubuntu users can get an updated fish PPA.

Pro tips

fzf adds general fuzzy history search.

Things I forget

modifying the path

Adding a path? Put

set PATH <mydir> $PATH

in ~/.config/fish/


set -U fish_user_paths /usr/local/bin $fish_user_paths

Removing a path?

set PATH (string match -v /usr/local/bin $PATH)

Using anaconda python

You need to do some extra setup to use conda with fish. Specifically, add the line

..code:: shell

source (conda info —root)/etc/fish/conf.d/

into ~/.config/fish/

modifying any settings with GUI


loop syntax

while true
    echo "Loop forever"

Temporary variable setting uses `env`