脚本是说不用编译直接可以通过一种引擎来解释执行的语言。
如果你使用java,需要有编译器,将java编译为class文件,但是如果你使用javascript脚本语言,那么就不需要编译,直接由可以解释它的引擎解释,简单说在它能执行的环境下,比如google的V8引擎。
但是有很多需要编译的也叫做脚本语言,是因为在服务端运行,比如JSP也算脚本语言,因为web容易要将jsp编译。
shell是壳的意思,是一种思想,不只在linux中有。
linux中的shell是让使用操作系统者调用linux内核时的中间件,shell将内核包裹起来,操作内核功能不必直接操作系统内核,也不方便操作,可以直接调用shell的命令,也就是shell脚本,在操作系统环境下,shell就可以被执行,然后shell调用内核。linux下的shell有很多种。
如果没有shell,那linux下都得是应用程序,应用程序由内核直接执行。这样在操作一些其他常用的程序上很不方便,比如清理系统垃圾,写一个shell要方便得多。