fish是一个Unix shell。 fish这个名字是"friendly interactive shell"的缩写。 fish专注于交互应用、易用性和友好的用户体验。fish的设计目的是通过容易发现，记住和使用的方式为用户提供一套丰富、强大的功能 。fish于2005年在GNU通用公共许可证条款下正式发布。fish 是一款自由软件。fish提供了一个用户友好而又强大的, 包含有每一个补全项的描述，包含通配符的字符串的tab补全，和许多具体命令的补全。它还提供一个广泛的可用的帮助系统。通过一个专门的帮助命令使用用户的网页浏览器来访问所有的fish文档。Fish的语法和别的Shell 脚本略有不同。这些改变是为了让这个语言更加的强大并且更小巧和易学。fish和其他命令行交互语言如bash的一个明显的不同在于：一个变量的内容不需要使用令牌分离，这意味着很少需要使用引号将变量引用括起来。fish与其他的shell之间一个很重要的不同点在于缺乏子的shell。像管道流、子程序和循环等任务需要通过调用其它语言实现的子shell来完成，子shell是一些为shell脚本运行少量命令然后退出的简单的子程序。不幸的是，在子shell中所做的修改不会对主shell产生任何的影响，这意味着像是变量赋值和很多内部函数的使用并不能像与其一样的工作。Fish从来不去关注这些所谓的子shell；所有的内部函数都充分的发挥作用。fish中的错误信息被设计来真实地告诉用户什么地方出错了和如何去修正它。Fish有一个称为通用变量的特性，它允许一个用户永久指定一个值给一个所有用户运行的fish shells中都使用到的变量。这个变量值会被记住，即使是注销或者重新启动，而且会立即更新并传播到所有正在运行的shells。
fish与其他的shell之间一个很重要的不同点在于什么？