47
zsh or fish for an intermediate Linux user?
(sh.itjust.works)
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
I use a mix of fish and nu depending on what I'm doing. NuShell is great but still pretty buggy, so I use fish as my default and switch to it when I want to use its features.
I still write most of my stuff in bash however since servers I work with typically only have bash, and so are potential coworkers.
But locally I see no point restricting myself to a POSIX compatible shell, especially for interactive shells. The easier and faster it is to use and customize the better. Being able to parse and use JSON and CSV and other things easily and natively right in the shell is a major quality of life improvement!
Why not use Perl or python for scripting tasks? Bash script is terrible imo.
I mean, I guess technically Perl could do but it wont earn you any favors from your coworkers.
I do use Python for higher level stuff but I don't see a point to go Python when you're just gonna call 20 subprocess anyway to do like apt update apt dist-upgrade apt install wget this untar this rsync this. Especially when you can't even assume you're going to have Python to provision the box.
That's why I included Perl, it is always there. Just don't code as if you were in the nineties and Perl is a perfectly legitimate language, even more so for shell tasks. Bad and good doesn't depend so much on the language but the coder.