Hacker News new | ask | show | jobs
by krrrh 4568 days ago
I remember spending so many happy hours customizing bash back in my early years with unix. Now I'm older and wiser, and I just use fish.

http://fishshell.com

I think that it should be especially appreciated by those who use OSX for its "it just works" approach. A couple of pro tips:

* Instead of running chsh to change your default login shell just change the shell command for Terminal.app it iTerm. This means that scripts in cron etc will still run under bash and you won't break anything accidentally.

* Just like with zsh if you want to get customized there is something called oh-my-fish that helps a bit, but seriously you're 90% there with the defaults.

7 comments

My tutorial for setting up fish on Mac OS X and Ubuntu: http://hackercodex.com/guide/install-fish-shell-mac-ubuntu/

I've never had any trouble using chsh to make fish the default shell. Bash scripts in crontabs still run under bash -- not sure why anyone would think otherwise. Plus, changing the shell command for iTerm/Terminal won't help with remote servers, so using chsh everywhere means you always get a consistent shell experience, no matter whether you're using your terminal locally or remotely.

Fish is wonderful, but as someone who is novice to middling in skill (2 years), I found the fact that it had a different set of syntaxes to be difficult to work with. Instructions for random things to install I found all used bash syntax, which broke when used in fish.

I've since switched to zsh, and I am terribly happy with it. It has a lot of the nice advanced features that fish has, without breaking from bash syntax.

You shouldn't have any issues changing your default shell via chsh. SHELL is, by default, set to /bin/sh by cron—you can also define this yourself.

http://www.gnu.org/software/mcron/manual/html_node/Crontab-f...

I like it but the lack of vi mode is a deal breaker for me...

The ticket for it has been open for 2 years but it seems that it's finally getting close to implementation...

https://github.com/fish-shell/fish-shell/issues/65

Clicked on comments to say the same. When I discovered fish, I felt like "where have I been". But there's one downside though: I got used (used as in muscle reflexes) to things like ls -l `where something` and they do not work anymore, fish is not backwards compatible with bash.
What's wrong with "ls -l (which cmd)"?
Nothing wrong, but just a lack of muscle reflex. I've been using bash for what, almost 20 years?
Agreed. In my experience fish just runs a heck of a lot faster than either zsh or bash as well as adding some features I love, like the command syntax highlighting and autocomplete. I couldn't see myself going back to either of those after using it for an extended period of time.
I tried it, then went back to bash. I'm not really sure why. I also tried zsh some time ago, then went back to bash. I rather like fish, it's a cool construct, and I can appreciate its features. But somehow I found that I didn't really gain anything from them, so I went back to bash. I honestly admit I'm not sure why -- fish is really cool, and zsh is really cool, but I didn't adapt the new features to my day to day usage.
I would like to use fish shell but my .bash_profile is setup exactly as I want it, and when I've switched to other shells before (zsh) it has been a general pain in the ass. How do I retain my current bash settings in fish shell?