zoukankan      html  css  js  c++  java
  • shell简介

    Shell作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

    shell使用的熟练程度反映了用户对Unix/Linux使用的熟练程度。

    Shell是一种脚本语言,那么,就必须有解释器来执行这些脚本。Unix/Linux上常见的Shell脚本解释器有bash、sh、csh、ksh等,习惯上把它们称作一种Shell。我们常说有多少种Shell,其实说的是Shell脚本解释器

    bash

    bash是Linux标准默认的shell,本教程也基于bash讲解。bash由Brian Fox和Chet Ramey共同完成,是BourneAgain Shell的缩写,内部命令一共有40个。

    Linux使用它作为默认的shell是因为它有诸如以下的特色:

    • 可以使用类似DOS下面的doskey的功能,用方向键查阅和快速输入并修改命令。
    • 自动通过查找匹配的方式给出以某字符串开头的命令。
    • 包含了自身的帮助功能,你只要在提示符下面键入help就可以得到相关的帮助。

    sh

    sh 由Steve Bourne开发,是Bourne Shell的缩写,sh 是Unix 标准默认的shell。

    程序设计语言可以分为两类:编译型语言和解释型语言。

    编译型语言

    如C、C++和Java,都是编译型语言。这类语言需要预先将我们写好的源代码(source code)转换成目标代码(object code),这个过程被称作“编译”。运行程序时,直接读取目标代码(object code)。由于编译后的目标代码(object code)非常接近计算机底层,因此执行效率很高,这是编译型语言的优点。

    但是,由于编译型语言多半运作于底层,所处理的是字节、整数、浮点数或是其他机器层级的对象,往往实现一个简单的功能需要大量复杂的代码。例如,在C++里,就很难进行“将一个目录里所有的文件复制到另一个目录中”之类的简单操作。

    解释型语言

    执行这类程序时,解释器(interpreter)需要读取我们编写的源代码(source code),并将其转换成目标代码(object code),再由计算机运行。因为每次执行程序都多了编译的过程,因此效率有所下降。

    使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象;缺点是它们的效率通常不如编译型语言。脚本编程语言的例子有awk、Perl、Python、Ruby与Shell。

    Shell的使用范围

    因为Shell似乎是各UNIX系统之间通用的功能,并且经过了POSIX的标准化。因此,Shell脚本只要“用心写”一次,即可应用到很多系统上。但是,考虑到Shell脚本的命令限制和效率问题,下列情况一般不使用Shell:

    1. 比较重视效率时
    2. 需要处理大任务的数学操作,尤其是浮点运算、精确计算或者复杂的算术运算(C++)
    3. 有跨操作系统的移植需求(java)
    4. 复杂应用,需要结构化编程、GUI、I/O、socket接口、直接操作硬件、高安全性等。
  • 相关阅读:
    GCD 并行子线程
    iOS开发>学无止境
    iOS开发>学无止境
    iOS开发>学无止境
    FMDB使用
    递归
    局部变量与全局变量
    函数式编程与参数
    文件的操作
    集合的操作
  • 原文地址:https://www.cnblogs.com/houkai/p/4714746.html
Copyright © 2011-2022 走看看