There are many reasons to love Unix, but the one that has profoundly affected our industry is the Unix philosophy of building applications that "do one thing and do it well." Unix commands embody this philosophy. A set of small functions that can be piped together to create more complex solutions. In recent years, programmers have contributed to a growing set of modern Unix commands. These modern versions attempt to be smaller and faster, often written in Rust. They include additional features such as syntax highlighting and utilize features of modern terminals. They aim to support programmers natively by integrating nicely with git
and recognizing source code files. For example, bat
is a replacement for cat
with paging and syntax highlighting; exa
is a replacement for ls
with extended file information and ripgrep
is a faster grep
replacement that by default ignores gitignore, binary and hidden files. The Modern Unix repository has a reference to some of these commands. We've been enjoying using these Unix commands. You should try them in improving your command-line experience. However, we caution against using them in scripts as replacements for the standard command-line utilities that are shipped in default OS distributions, because they reduce the scripts' portability running on other machines.