The Unix philosophy embodies a system of modularity, which allows for a seemingly limitless opportunity for extending various Unix systems. Many tools arise to help programming on Unix systems more bearable when interfacing with a terminal, one of the most important tools for interfacing with a Unix system. Below are tools that make programming on terminals more bearable.
Zsh is the de facto terminal for Unix users. The Unix shell is excellent because of its command line completion, which allows you to write more scripts with fewer keyboard inputs. The community has also created extensions like Oh My Zsh, which make the Zsh easier to install and use for newcomers.
Are you tired of looking at bland ls outputs? lsd, not to be confused with the drug, adds color to output. Colors correspond to different sections of ls output like directories and executable files. The contributors claim that lsd is faster than colorls due to the fact that lsd is built with Rust as opposed to Ruby. At the moment, there are no options to customize the default colors.
Fzf is a general purpose fuzzy finder that can filter files, command history, processes, hostnames, bookmarks, commits, and anything else that is structured in a list. The fuzzy finder boasts super fast search speeds.
Kitty is a terminal emulator that leverages your system’s GPU to improve speed. The emulator is built from the ground up to support modern terminal features like images, unicode, ligatures, tiling and much more.
Bat is a clever renaming of cat, coming packaged with the normal concatenation and printing functions. In addition, Bat adds some nifty features, like text highlighting, git integration, and pagination.
Tmux, like kitty, is a terminal multiplexer that allows you to access multiple terminals on a single screen. This allows you to keep track of multiple programs at once.
jq is a command line JSON processor. The program is a filter that can produce various results. You can use different filters to perform specific tasks and chain these pipes together without the need for loops. jq is written in portable C and comes with no dependencies.
exa attempts to be a modern replacement for the age old ls command. Data is highlighted and file information is extended for easier browsing.
Meld is a visual diff and merge tool that allows you to compare changes in order to avoid merge conflicts. Meld is compatible with a multitude of version control.