The developers behind the fish shell announced the release of version 3.0.0. Let’s take a look at the new features in this major release.
What is the fish Shell, again?
The fish Shell is “a smart and user-friendly command-line shell for Linux, macOS, and the rest of the family”. fish is a more modern shell with the goal of being more interactive and more user-friendly than older shells. Unlike its competitors, fish is not based on the Bourne shell or the C shell but attempts to blaze its own path.
fish shell comes with some nice features, such as:
- Autosuggestions as you type
- Syntax highlighting with extensive error checking.
- Searchable command history.
- 256 terminal colors
- Advanced tab completion.
- Web-based configuration
- A special help command gives access to all the fish documentation in the user’s web browser
- Error messages designed to actually tell the user what went wrong and what can be done about it
- Universal variables
- Support for the X clipboard
- Change fish setting by editing the
~/.config/fish/config.fish
file - Man page completions
- Fully scriptable with syntax that is simple, clean, and consistent
- Features work out of the box without any configuration
What’s New in fish 3.0?
The new features included in 3.0.0 include:
- Supports for &&, || , and ! for better migration from POSIX-compliant shells
- Variables may be used as commands
- New private mode which will hide commands from the history file. Can be activated using
fish --private
. - A new wait command for waiting on backgrounded processes
- The machine hostname, where available, is now exposed as the
$hostname
reserved variable - Abbreviations can be tab-completed
- Notifications about crashed processes are now always shown, even in command substitutions
- True color is now enabled in neovim by default
xclip
support has been added to the clipboard integration- Added support for 52 commands autocompletes, such as
hugo
,clang
,eopkg
andcurl
- Pressing Ctrl-C while running a script now reliably terminates fish
- Major rework of terminal and job handling to eliminate bugs
- Improvements to the manual page completion generator
- Build scripts for most platforms no longer require bash
- Ships with a new build system based on CMake
How to Install fish Shell 3.0
Before you install fish, you can try it in the browser.
Install fish 3.0 on Linux
Packages for Debian, Fedora, openSUSE, and Red Hat Linux are available from the openSUSE Build Service.
There is a fish PPA for Ubuntu systems. Here are the commands:
sudo apt-add-repository ppa:fish-shell/release-3
sudo apt update
sudo apt install fish
For Arch and Arch-based systems, you can use pacman -S fish
to install fish.
Solus users can install fish using this command: eopkg install fish
.
Install fish 3.0 on macOS
macOS users can either use Homebrew brew install fish
or Macports sudo port install fish
to install fish.
Install fish 3.0 on FreeBSD
If you run FreeBSD, you can install fish with the pkg install fish
command.
Install fish 3.0 on Windows
There are two ways you can install fish on Windows. On Windows 10, you can install fish on the Windows Subsystem for Linux with sudo apt install fish
. If you are using a previous version of Windows, you can use Cygwin to install fish.
Final Thoughts on fish 3.0
I have used fish on and off in the past. I never really put aside the time to learn it. Funnily enough, the last time I used it (a couple weeks ago), I ran into a problem running sudo apt update && sudo apt upgrade
. The command failed and gave me an error message saying that I need to use and
instead of &&
. It wasn’t a major problem, I just rewrote the command and it worked. Now they added support for &&
in version 3.0.0. Guess I won’t have to worry about that in the future.
Have you ever used fish shell? If not, what is your favorite shell? Let us know in the comments below.
If you found this article interesting, please take a minute to share it on social media, Hacker News or Reddit.