Not that I don’t still love using linux daily, but it is getting a little old having to search for how to do anything even just install a simple program (recently, had a. Deb file to install unifi software that wouldn’t install and had to find a custom script to do it).
I feel like there’s no way I’d ever learn all the random commands I’ve been copying and pasting (and keeping in a text file for later) and can’t help but feel it’s kind of clunky. And I don’t feel like I really know anything of what Im doing. Even man pages baffle me. I’ve been into computing for 20 years but only used linux a little like 8 years ago, but now it’s been my main os on my desktops for probably 2 months. I know, maybe that’s just not long enough. I just don’t like the fact that if I couldn’t search, I’d be completely stuck on a lot of tasks.


My pleasure fam! Btw, I’m in no place to dictate what’s right or wrong (or whatsoever). I just wanted to add their perspective on the matter*.
I don’t know that I agree with the take represented in your linked article. If I’m reading it correctly, the primary reason not to switch shells is that those shells might not exist universally. That is a valid concern, but running
which fish(as referenced in my original comment) should help to mitigate that risk factor. Scripts should always use a hashbang to specify their desired environment so, unless you’re overriding that, it shouldn’t be a concern.I agree that you shouldn’t use shells that are not available to you. I don’t think that means you shouldn’t try to change shells if you are unsatisfied with your current one.
To be clear, the author’s point isn’t that users should not switch shells. Instead, they oppose one set of ways to achieve it and advocate for better methods.
They’re against practices that involve the modification of
/etc/passwdfor the very same reasons stated infish’s own documentation. And I quote:“Warning: Setting fish as your login shell may cause issues, such as an incorrect
$PATH. Some operating systems, including a number of Linux distributions, require the login shell to be Bourne-compatible and to read configuration from/etc/profile. fish may not be suitable as a login shell on these systems.”To be even more explicit: Fedora Atomic[1], which are often referred to as unbreakable systems, are notoriously borked by the above. The author even provided GitHub issue trackers for this.
Furthermore, while not an issue on systemd-homed systems that switch shells with the
homectlcommand, the author implies that shell-switching withchsh/vipw(and related methods) does come with security concerns. They intend to expand on this in a later article/blogpost.So, after stating how one shouldn’t engage in switching their shell, they offer the alternatives:
~/.bashrc(or~/.zshrcfor that matter) to include a code snippet that effectively achieves the same as all other methods.For completeness’ sake, the author’s day job AND (at least) a decent chunk of their FOSS work involve around this set of distros. ↩︎