Shell 已经很强大了,为什么在 Linux 操作还需要 Python,Ruby

Python016

Shell 已经很强大了,为什么在 Linux 操作还需要 Python,Ruby,第1张

一、优点方面:

1.shell的语法和结构比较简单,易于掌握

2.学习和使用也比较方便,上手比较容易

3.常用命令也比较好记,不清楚的情况下,可以通过man命令迅速找到相关的说明

4.shell是解释型语言,运行之前不需要编译

5.文本处理方面,主要依赖于awk、sed这两把尖刀,能够方便快捷地处理相当复杂的问题

6.程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务

二、缺点方面:

1.弱类型语言,对变量定义的查检不是很严格

2.效率上存在的劣势:shell相当于一个接口,大部分的功能全部靠外部程序来完成,如shell在调用awk、sed的进程来处理文件时,需要产生一个新的进程,并且还需要使用管道进行IPC进程通信,那么就会增大相应的开销。在文本处理过程中,原本一个工具一次能完成的任务,在需要经过awk和sed等多次管道后,程序性能的降低是必然的。因此,按照这个观点来看的话,完成同样功能的C代码要比shell快(我会进一步做测试验证这个想法)。结合shell易于开发,但效率不高的特点,可以用一句话来概括:“shell的开发产能优于运行的性能”

3.I/O性能不高:之前看过一篇文章介绍,shell的I/O性能比perl要差,我会进一步做测试来验证这个观点是否正确。

4.一些细节上的不足:向awk传入shell定义的变量时,表达式比较复杂,且对shell的变量是只能读取而不能修改。

你命令运行错误, 事实上 你的命令正好说明rake正常安装了

rake -v 是显式的显示中间过程

rake -V 才是显示rake的版本号

另外 gem install rails会自动安装rake

运行命令不要想当然, 运行一下 rake --help 一切都明白了

------------------

没什么不明白的 说的直接点, 你的rake没有出错 ,你的命令打错了 , 查看rake版本的参数是大写的V