zoukankan      html  css  js  c++  java
  • shell第一篇

    前两天不停的再看内核相关的内容,了解内核的形成、内核的执行流程、内核的作用,结果是舍近求远。
    其实我只是想了解一下shell的工作,shell与内核有关,但并不需要我么真正去做什么,至少对于我这样额初学者来说是暂时不需要的。

    第一篇
    shell是什么语言?shell 语言的本质

    “Shell是Linux/Unix的一个外壳,你理解成衣服也行。
    它负责外界与Linux内核的交互,接收用户或其他应用程序的命令,然后把这些命令转化成内核能理解的语言,传给内核,内核是真正干活的,干完之后再把结果返回用户或应用程序”

    ----池建强 著. “MacTalk·人生元编程”。

    Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。
    Shell既是一种命令语言,又是一种程序设计语言。
    作为命令语言,它交互式地解释和执行用户输入的命令;
    作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

    它虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。
    因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Unix/Linux系统的关键。


    shell的语言的运行场景:

    因为Shell似乎是各UNIX系统之间通用的功能,并且经过了POSIX的标准化。
    因此,Shell脚本只要“用心写”一次,即可应用到很多系统上。同时,它运行于高于系统内核的环境,能够简单地执行一些文件系统级的高级操作。

    Shell的优点:

    因此,之所以要使用Shell脚本是基于:
    简单性:Shell是一个高级语言,处于内核外层环境;通过它,你可以简洁地表达复杂的操作。
    可移植性:使用POSIX所定义的功能,可以做到脚本无须修改就可在不同的系统上执行。
    开发容易:可以在短时间内完成一个功能强大又妤用的脚本。
    因此shell常见于系统维护中,文本处理也是shell的优势(能够快速地使用文本处理语言,结合管道,重定向实现需求)。

     

    shell语言的限制:

    Shell脚本的命令限制和效率问题,下列情况一般不使用Shell:
    1.资源密集型的任务,尤其在需要考虑效率时(比如,排序,hash等等)。
    2.需要处理大任务的数学操作,尤其是浮点运算,精确运算,或者复杂的算术运算(这种情况一般使用C++或FORTRAN 来处理)。
    3.有跨平台(操作系统)移植需求(一般使用C 或Java)。
    4.复杂的应用,在必须使用结构化编程的时候(需要变量的类型检查,函数原型,等等)。
    5.对于影响系统全局性的关键任务应用。
    6.对于安全有很高要求的任务,比如你需要一个健壮的系统来防止入侵、破解、恶意破坏等等。
    7.项目由连串的依赖的各个部分组成。
    8.需要大规模的文件操作。
    9.需要多维数组的支持。
    10.需要数据结构的支持,比如链表或数等数据结构。
    11.需要产生或操作图形化界面 GUI。
    12.需要直接操作系统硬件。
    13.需要 I/O 或socket 接口。
    14.需要使用库或者遗留下来的老代码的接口。
    15.私人的、闭源的应用(shell 脚本把代码就放在文本文件中,全世界都能看到)。


    如果你的应用符合上边的任意一条,那么就考虑一下更强大的语言吧——或许是Perl、Tcl、Python、Ruby——或者是更高层次的编译语言比如C/C++,或者是Java。
    即使如此,你会发现,使用shell来原型开发你的应用,在开发步骤中也是非常有用的。

    摘自:https://my.oschina.net/u/658505/blog/666807

  • 相关阅读:
    JS中const的使用
    JS的作用域,闭包的理解
    python中函数的默认参数是空数组
    asp.net 导出 Excel
    asp.net 导出 Excel 身份证格式显示格式问题
    HTML5
    JQuery中checkbox选择器
    JQuery中DOM操作(一)
    PL/SQL 创建用户及权限操作
    PL/SQL 表约束
  • 原文地址:https://www.cnblogs.com/irockcode/p/6944496.html
Copyright © 2011-2022 走看看