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 gnu.org project.

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

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/config.fish.

OR

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

Removing a path?

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

f modifying any settings with GUI ——————————————————

fish_config

loop syntax

while true
    echo "Loop forever"
end

Temporary variable setting uses `env`

env FOO=BAR baz.sh