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)
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/conda.fish
into ~/.config/fish/config.fish.
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