Hacker News new | past | comments | ask | show | jobs | submit login
Fish - The friendly interactive shell (lwn.net)
55 points by gnosis on Sept 13, 2009 | hide | past | favorite | 16 comments



This is an older article. It seams to list a few ways that Fish attempts to improve on older shells, but appears to be a little out of date.

Fish has a nice design document that gtive a better understanding of what it is about: http://fishshell.org/user_doc/design.html

Fish's real advantages isn't so much it's list of features, but the fact that they come pre-configured. That, and the fact that Fish sacrafices backwards compatiblity with other shells to make a cleaner command language and a more manageable environment. I like being able to configure an environment variable without tinkering with my .bashrc or .profile. Granted, I can't easily reasonably install it on the solaris machines at work, but it doesn't make my home computing environment much nicer.


The programmability of a shell just isn't interesting to me. Whenever I start hacking a shell script, it either starts out as just two or three lines or it evolves to the point where I feel like I need a "real" language. At that point, I'll end up hacking it in perl or python.

In the meantime, I'm happy enough with bash.


I find that Fish is better for interactive use. It has as-you-type syntax highlighting and indentation, and the tab completion tends to be better.


I would like to see the interactive Read Eval Print Loops of one of these languages finish closing the gap and become good shell replacements. I find I can get close to that sometimes with interactive programming environments, but not quite.


There's rush: "rush is a replacement for the unix shell (bash, zsh, etc) which uses pure Ruby syntax" from http://rush.heroku.com

I haven't used it though, I actually switched from bash to fish about 6 months ago


Have you tried ipython? http://ipython.scipy.org/moin/ Pretty close...


I've been thinking about this also and was planning this week to change one of my login shells to just pythn to trial it. I've now got two small line-based editors running in python (one is an ed clone, the other is simpler and uses list comprehension), and it's simple enough to write wrapper functions around the bits you need to change directory and spawn process. There's no standardisation of effort, but it's completely doable just on your own system. I realise it's probably not at the top of your mind, but can you think what you found missing when you last tried it?


Well, there's scsh (http://www.scsh.net/), but it's not under active development any more.


Which is a shame.

I just found shelisp [1] which, despite the questionable name, looks simple and promising.

[1] http://dan.corlan.net/shelisp/


I posted a couple of hacks for fish here: http://christopherolah.wordpress.com/2009/06/13/a-couple-fis...



I use fish on all my machines at this point. It's nice to have really smart auto-completion. I know bash can do some of this if you configure it correctly but I'm all about reasonable defaults. I can't be bothered with lots of configuration changes on every machine I touch.

One word of warning, and this probably applies to any shell, you should keep one of your sudoers on bash or sh. I've had a few occasions where something broke fish so when I logged into the machine via ssh I would see a few error messages and the session would terminate when the shell died locking me out of the system. I never figured out what broke fish in the first place but it's taught me the value of having a fallback user/shell for emergencies.


> I can't be bothered with lots of configuration changes on every machine I touch.

Every machine you touch may not have the option of fish. Having a reasonable .bashrc (and even .cshrc -- I've been on machines where bash was broken) is key to doing any sysadmin/dev work on linux/unix boxes.


Right, the only standard shell is sh.


Most systems will have at least bash, csh or tcsh. I've yet to run across a system that only had ksh or zsh (or something exotic).


Fish is good but development has all but ceased on it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: