Disclaimer: I tried searching for something like “useful programs”, “useful packages”, “useful tools”, “recommended packages”, etc. Don’t see any posts like that, if this is a duplicate, then it’s not intentional and my search skills have failed me.
Anyway, I was watching a YT video today and the guy launched a cool program in his terminal, I paused to see what he was running. It was btop, of course being new I never heard about it. Then I thought – how many cool tools/packages are there, which people use, but I am not aware of?
So what do you like? What do you install on a fresh install? What are the most useful tools in your belt? What can’t you live without on Linux?
Perhaps I’ll find something useful :)


fish - Ever since I’ve made the switch to Linux, the terminal has been part of the experience. And, honestly, I wouldn’t want it any other way. Besides its efficiency, I also very much enjoy how it automatically keeps track of everything I do within. I don’t get that functionality whenever I do something within a GUI. But bash left a lot to be desired in that regard; its history simply didn’t record everything. It was also pretty bare-bones; no syntax highlighting, no auto suggestions etc. Thus, after trying to bend bash (and later zsh) to my will and ultimately being dissatisfied with the janky mess I was left with, I finally gave in to at least give fish a honest try. The rest is history. Heck, fish is the very first thing I install on a machine.
yeah Fish along with DOOM Emacs are the first two things I install on my machine.
I used to use zsh with oh my zsh and various plugins and it would totally slow down my nixos system so then I decided to give fish a try and surprise surprise it had all the stuff I had to add on to zsh already baked in.
easily the best shell out there.
I saw fish recommended for new users in openSUSE’s documentation. I want to try that. There is a way to switch to Bash for a particular script, right? I know that file-based scripts have the shebang line, so that’s a non-issue, but what if I have a Bash command I copied from the Internet and my default shell is fish?
Just prepend the command with “bash”. If the script changes environment variables and you need that to happen in your fish environment there is https://github.com/edc/bass
Thanks. So I guess if Bash is my default shell then
fish <command>also works by analogy.As I suppose the other user already went over your main query, I’ll instead focus on what might have felt rather innocuous.
I subscribe to the school of thought that one should not change their default shell[1] through invoking
chsh(or whatever other method that applies changes to/etc/passwd). This article does an excellent job at laying down the reasoning (and the recommended alternative). FWIW, the alternative’s day-to-day experience provides all of the pros without any of the cons.I suppose it could be fine~ish as long as it’s POSIX compliant AND compatible with bash. Which, unfortunately, fish happens to be neither of the two. ↩︎
Bash doesn’t merge history from multiple bash instances into your ~/.bash_history by default. If you want that to persist:
https://unix.stackexchange.com/questions/1288/preserve-bash-history-in-multiple-terminal-windows
Thank you for that! IIRC, it was one of the settings I took from bash-sensible. I can say that it definitely improved after just a couple of changes to
~/.bashrc. Add in ble.sh and it suddenly seemed somewhat modern instead of archaic.Unfortunately, I don’t remember exactly what broke the camel’s back. However, FWIW, contrary to how I recall my experiences with bash and zsh, I don’t feel any frustration while using using fish. So it’s definitely doing something for me 😉.
“Watch out, Netscape Navigator 4.0!”
I’m sold.