Credit: Yadullah Abidi / MakeUseOf
The Windows command line has improved massively over the years. Microsoft’s Windows Terminal updates have quietly made it incredible, but it still lags behind Linux-based shells.
The good news is that there’s a fast, highly customizable, and easy-to-use shell on Windows that’ll let you experience your terminal in all its 24-bit color glory. And if you use the Windows command line frequently, the added features you get will make a big difference.
A terminal that finally feels like it was made for humans
Windows Terminal isn’t enough anymore
Credit: Yadullah Abidi / MakeUseOf
Fish is a smart command-line shell for Linux, macOS, Windows, and BS…
Credit: Yadullah Abidi / MakeUseOf
The Windows command line has improved massively over the years. Microsoft’s Windows Terminal updates have quietly made it incredible, but it still lags behind Linux-based shells.
The good news is that there’s a fast, highly customizable, and easy-to-use shell on Windows that’ll let you experience your terminal in all its 24-bit color glory. And if you use the Windows command line frequently, the added features you get will make a big difference.
A terminal that finally feels like it was made for humans
Windows Terminal isn’t enough anymore
Credit: Yadullah Abidi / MakeUseOf
Fish is a smart command-line shell for Linux, macOS, Windows, and BSD. It stands out from other shells because it was designed with user experience in mind from the ground up. Unlike Bash, which has been around since 1989 and prioritizes compatibility over everything else, or Zsh, which offers tons of customization if you enjoy tweaking configuration files, Fish focuses on providing a much better user experience regardless of your terminal proficiency.
It freely uses colors to highlight syntax and differentiate various terminal commands and outputs. It can even learn from your command history and auto-suggest commands before you type them. And should you need to tweak the shell, there’s a web-based GUI that lets you customize themes, colors, prompts, and other features without touching a single configuration file.
The idea is simple: you shouldn’t have to be a terminal guru to enjoy a capable shell that’s easy on the eyes. Fish also includes advanced features that would otherwise take you hours to configure to get up and running in other shells out of the box.
The Fish shell’s secret sauce
Features you won’t get in Windows Terminal
Credit: Yadullah Abidi / MakeUseOf
As you’d expect, Fish’s entire feature set revolves around making daily terminal work frictionless. Some apps areproductivity game-changers for the Windows Terminal, but Fish changes how your shell behaves fundamentally.
All those extra colors you see in the terminal are there for a reason. You see, Fish supports syntax highlighting—a feature you won’t find in a lot of terminals. As you type, Fish displays commands in different colors. Commands are shown as one color, while arguments, outputs, comments, even invalid commands, and error messages get their own color.
This makes the terminal easy to read. If you’ve been using terminals for a long time and have spent hours searching for a single line of text among the hundreds of white text lines your terminal spewed out, you’d be more than happy to have it. I certainly was.
These themes and colors can be customized from Fish’s web-based configuration tool. Run fish_console in the shell, and it opens up a GUI in your browser where you can customize just about everything about Fish. That said, the Fish documentation also has a list of commands if you prefer using a configuration file instead.
Credit: Yadullah Abidi / MakeUseOf
Then there are autosuggestions. Fish learns from your command history and tries to predict what you’re going to type. If you frequently navigate to a folder or specific file, the shell will automatically start suggesting it as you start typing. You can press the right arrow key to accept the choice or Tab to see other options. This may seem trivial, but it saves a significant amount of time if you frequently enter long paths or commands in the shell.
There are also features like automatic directory navigation, which allows you to type a directory name instead of typing ‘cd’ first. You get interactive history searching that lets you search for specific commands you previously typed as well.
Credit: Yadullah Abidi / MakeUseOf
Navigating directories and folders in Windows Command Prompt can be a pain. However, Fish offers quick directory navigation through visited directories using the Alt + Right or Alt + Left hotkeys that let you breeze through a file structure.
If you work a lot with terminal aliases, Fish’s abbreviations feature can automatically expand aliases as you type them. Last but not least, there’s also interactive man page parsing, which means when you’re typing command options, Fish can help you complete them by looking up the man page for that command.
Bringing the friendliest Linux shell to Windows
It’s easier than you think
Fish is a Unix shell, so it doesn’t run natively on Windows. Thankfully, the Fish website gives you three different ways of running Fish on Windows.
The easiest option is using Windows Subsystem for Linux (WSL). Make sure you’ve got WSL and Windows Terminal installed, and then install Fish through your WSL installation. Once done, you can set Fish as your default shell, and that’s it. You can also use MSYS2 if you prefer a different environment, or even Cygwin, both of which now support Fish.
Credit: Yadullah Abidi / MakeUseOf
Finally, there’s a catch you need to know about before jumping in. Fish is not POSIX-compliant. This means scripts written for Bash might not work directly in Fish.
This isn’t an issue you’d face in daily terminal work, and any script with the proper shebang line will run with its intended shell regardless of your default. However, if you’re writing tons of personal scripts without proper shebang lines, the incompatibility means they won’t run as expected. Even then, the difference is relatively minor, and scripts can easily be modified to run natively in Fish.
Time to upgrade your Windows command line
Making Windows development feel modern again
If you value a shell that works brilliantly out of the box, appreciate visual feedback as you type, and if you’re tired of spending hours configuring terminals, Fish is well worth a shot. It’s particularly great for developers or system admins, but if you spend meaningful time in a terminal window, you’ll benefit regardless.
The WSL requirement on Windows and POSIX compatibility issues are problems, but the solutions are readily available and well-documented. There’s a low chance you’ll actually end up running into issues with either of these hurdles. And if you do, you already know what terminal is best suited to your needs.
Your Windows terminal doesn’t have to be a chore. With Fish, it can actually be something you look forward to using.