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?
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.
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.
Yep, and fish has even more ways to expedite frequent used commands and locations, but because the completion stuff’s so good, it’s easy to never bother setting up abbreviations and keybinds and so on. So many things are often just a couple key presses away, by default, after using it for a while.
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.
Yes exactly. I couldn’t find it on the fish online docs.
Alt-. apparently also work in bash, so i should just not use the ESC version.
I use it a lot for renaming and moving files.
Thanks.
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 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?
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.
alias fuck='sudo !!'is probably the best thing I’ve ever added to my profileThere’s also this
https://github.com/nvbn/thefuck
The heavy-handedness of that absolutely terrifies me, but at least it asks for confirmation first.
Try fish for a week, use the online help to familiarise with the completion stuff… see if you still find bash adequate.
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.Yep, and fish has even more ways to expedite frequent used commands and locations, but because the completion stuff’s so good, it’s easy to never bother setting up abbreviations and keybinds and so on. So many things are often just a couple key presses away, by default, after using it for a while.
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.
Do you know if fish can input arguments from prevous commands like
ESC + .does in bash?Like Alt-.? (/ Alt - > ).
Easier in reach, and can cycle through.
I’ve not got that in my muscle memory yet… so rarely used… had to look that up. Handy. Should use more.
Yes exactly. I couldn’t find it on the fish online docs. Alt-. apparently also work in bash, so i should just not use the ESC version. I use it a lot for renaming and moving files. Thanks.
Hrm. Couldn’t find it on the fish online docs, ey? Worth a mention to https://github.com/fish-shell/fish-shell/issues ?
i use bash but i also use atuin which makes shell history so much neater. that’s about the only convenience i need in a terminal shell.
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.