I have never really ever used bash and thought, "Man, I wish my shell was better . . . ". Using ctrl+r to recall past commands, using sudo !! to fix missing permissions and writing small bash scripts all work very well.
That being said, if you use anything else, and you like it, I’m happy for you, but I do wonder, what leads people to other shells? What problems do they have with bash?
To me, it genuinely makes a huge difference that I don’t have to manually press Ctrl+R for history search. Because 9 times out of 10, I accept a history suggestion from Fish where I did not think about whether it would be in my history.
This includes really mundane commands, like cd some/deeply/nested/path/. You would not believe, how often I want to cd into the same directory.
But I’ve also had it where I started typing a complicated docker run command and Fish suggests the exact command I want to write, because apparently I already ran that exact command months ago and simply forgot.
I used bash for 20 years and, while I obviously knew that there were alternatives, it never seemed necessary to switch. Tried fish on a whim a few months ago and I will never go back.
I script everything in bash, but for everyday use fish just has some modern QoL things that make it easier to get around. For me, specifically, it’s the way you can recall commands by seeing a ghost version of your history, as you type. You can even scroll through a filtered history if you’re part-way through typing some long command that matches what you have typed.
Another neat thing, it does it’s best to predict what I want to type and remembers common locations, showing them as ghost text as well.
I switched to zsh at a time where completion for commands parameters except file paths in bash wasn’t really a thing, you could add some with a script, but they didn’t work well. I’m sure the situation has improved by now, but someone told me recently, there are still no descriptions for the completions. I find it very helpful and it saves me opening a man page a lot of times. For example, typing grep -<Tab> gives me this:
And now I’m so used to many little features (mostly around the syntax) that wouldn’t be a reason to switch on their own, that I find bash cumbersome to use.
I have never really ever used bash and thought, "Man, I wish my shell was better . . . ". Using ctrl+r to recall past commands, using sudo !! to fix missing permissions and writing small bash scripts all work very well.
That being said, if you use anything else, and you like it, I’m happy for you, but I do wonder, what leads people to other shells? What problems do they have with bash?
To me, it genuinely makes a huge difference that I don’t have to manually press Ctrl+R for history search. Because 9 times out of 10, I accept a history suggestion from Fish where I did not think about whether it would be in my history.
This includes really mundane commands, like
cd some/deeply/nested/path/. You would not believe, how often I want tocdinto the same directory.But I’ve also had it where I started typing a complicated
docker runcommand and Fish suggests the exact command I want to write, because apparently I already ran that exact command months ago and simply forgot.I used bash for 20 years and, while I obviously knew that there were alternatives, it never seemed necessary to switch. Tried fish on a whim a few months ago and I will never go back.
I script everything in bash, but for everyday use
fishjust has some modern QoL things that make it easier to get around. For me, specifically, it’s the way you can recall commands by seeing a ghost version of your history, as you type. You can even scroll through a filtered history if you’re part-way through typing some long command that matches what you have typed.Another neat thing, it does it’s best to predict what I want to type and remembers common locations, showing them as ghost text as well.
I switched to zsh at a time where completion for commands parameters except file paths in bash wasn’t really a thing, you could add some with a script, but they didn’t work well. I’m sure the situation has improved by now, but someone told me recently, there are still no descriptions for the completions. I find it very helpful and it saves me opening a man page a lot of times. For example, typing
grep -<Tab>gives me this:And now I’m so used to many little features (mostly around the syntax) that wouldn’t be a reason to switch on their own, that I find bash cumbersome to use.