mirror of
https://gitea.com/mcereda/oam.git
synced 2026-02-09 05:44:23 +00:00
2.3 KiB
2.3 KiB
FISH
The friendly interactive shell.
TL;DR
# Install the shell.
apt install 'fish'
brew install 'fish'
zypper install 'fish'
# Start `fish` sessions.
fish
fish -Pil
# Change one's default shell to `fish`.
chsh -s (which fish) # from `fish`
chsh -s "$(which fish)" # from `{ba,z}sh`
# Open the web-based configuration interface.
fish_config
fish_config browse
# Process substitution.
# What in BASH or ZSH would be `<(echo …)`.
diff -y -W 200 \
(aws … --output 'json' | psub) \
(aws … --output 'json' | psub)
# Math.
math 2 '+' 6
time pulumi pre --parallel (math 2 '*' (nproc))
For functions defined in files in ~/.config/fish/functions/ to be automatically available, the files need to:
- Host a single function each.
- Be named as the function they host.
Configuration
Shell configuration file: ~/.config/fish/config.fish.
.fish scripts in ~/.config/fish/conf.d/ are automatically executed before config.fish.
Configuration files are read at startup of every session, whether the shell is interactive and/or login.
Use status --is-interactive and status --is-login to discriminate between interactive/login shells, respectively:
if status --is-login
fish_add_path ~/bin
end
fish offers a web-based configuration interface. Open it executing fish_config.
Prompt
Further readings
Prompts:
Frameworks:
Sources
All the references in the further readings section, plus the following: