2012-09-06 24 views
-1

我遇到过这样一种情况,它可以帮助我们了解使用百分比的shell使用情况。例如,我在寻找类似* nix shell使用饼图

bash: X%, sh: Y%, csh, tcsh, zsh, ksh, dash, etc.. 

很显然,我知道有几个并发症 - 多弹,“使用”的定义,不确定性等等,但我希望看到一个消息灵通的答案来自实际数据并基于一些陈述的指标,即使结果可能是可怕的错误。

如果加成有历史数据表明其喜好的转变。

+1

有多种可能的测量,这将给截然不同的答案。一个是'具有给定登录shell的用户数量'。另一个是'用shebang中的给定shell编写的系统上的脚本数量'。另一个是'使用机器上的给定shell运行的进程数量'。这些问题的答案可能会在您自己的机器是必需的,整个机器在你的公司,或者在整个世界(或整个世界的一小部分)。第一个统计来自密码数据库;第二个来自扫描机器上的文件;第三个通过流程会计。 –

+0

使用在哪里?在网络上的系统上,还是在整个互联网上?你想知道有多少用户使用shell作为他们的登录shell,或者在shell中写入了多少个脚本?只要它是明确使用哪一个 – Barmar

+0

任何这些指标的人会为我做的,我正在寻找在整个世界。如果人们对这个问题有疑问,请说明原因 - 对我而言,这是一个直接适用的编程问题。 –

回答

1

我的猜测是,BASH现在是选择的外壳,使外壳向上广大用户的狮子份额。这是Linux上的默认shell,而Linux几乎占据了Unix世界。 (是的,Linux并不是真正的Unix,但它离它很近)。

Csh的是BSD集合,其中包括在SunOS的域,和Mac OS X然而,Mac OS X的切换在10.4版本抨击和Solaris切换到POSIX壳(就像击状在语法)。

一点历史...

大多数Unix用户使用Csh的作为其默认的shell,但在Bourne shell的编程。 Csh在Bourne shell中缺少很多功能,如别名和命令行编辑功能,当您交互使用时,这些功能非常好。但是,Csh是一个糟糕的编程外壳。汤姆克里斯琴森的seminal paper on Csh这种密码在Csh编程的交易。事实是,即使基于BSD系统用于启动脚本的Bourne shell等

当Kornshell出来了,我有很多其他用户的切换。 Kornshell拥有熟悉的Bourne shell语法,但也拥有Csh拥有的超级用户特性。事实上,Kornshell的指挥历史能力远远优于Csh的指挥历史。 Kornshell最大的问题是它由AT & T所有,并且不是开源的。几乎所有的商业Unix平台(SunOS除外)都有Kornshell。但是,开源平台不能使用Kornshell。

猛砸在80年代后期发展成为一个真正的OSS壳与众多的Kornshell的特点。然而,Bash试图更加符合POSIX标准(这花费了很多Kornshell的特性)。

我还是喜欢Kornshell(主要是由于习惯),但我发现它在更少的系统。我告诉大多数新的Unix负责人学习BASH,因为它拥有最多的资源并且是最容易获得的。

我的建议是不要太担心猛砸与Kornshell与Bourne Shell中主场迎战Posix的。他们都很相似。忘记Csh。官方Turbo Csh page自2004年以来尚未更新。

如果您编写shell脚本,请使用所有Bourne类型shell中常见的功能。使用printf而不是echoprint(A Kornshell功能),使用[]而不是[[]],因为双方括号在所有外壳之间并不完全兼容。避免使用数组。 Bash 4.0支持它们,但不支持早期版本。 Kornshell支持数字和字符串数组,但它们与Bash的声明不同。这仍然留下了大约90%的shell脚本功能。

此外,你在Python或Perl真的更好的写作这是更强大和速度更快的脚本语言。此外,两者都比较独立平台除了各种炮弹。我编写shell脚本,但只有几十行,我转而使用真正的脚本语言。

+0

感谢您花时间回答投下的问题。虽然它是基于经验而不是数据,但你清楚地知道这个主题,并帮助我猜测。我没有选择忽略csh并将Bourne炮弹聚集在一起,但我现在有了更好的视角。 –