zoukankan      html  css  js  c++  java
  • 什么是shell?

      一.什么是shell?

        在介绍 shell 是甚么东西之前,不妨让我们重新检视使用者与计算机系统的关系:

      我们知道计算机的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透过一个称为"操作系统(Operating System)"的软件来控管,

      事实上,我们每天所谈的 linux ,严格来说只是一个操作系统,我们称之为"核心(kernel)"。然而,从使用者的角度来说,使用者也没办法直接操作 kernel ,

      而是透过 kernel 的"外壳"程序,也就是所谓的 shell ,来与 kernel 沟通。这也正是 kernel 跟 shell 的形像命名关系。

      从技术角度来说,shell 是一个使用者与系统的互动界面(interface),主要是让使用者透过命令行(command line)来使用系统以完成工作。

      因此,shell 的最简单的定义就是---命令解译器(Command Interpreter):

        * 将使用者的命令翻译给核心处理,

        * 同时,将核心处理结果翻译给使用者。


        每次当我们完成系统登入(log in),我们就取得一个互动模式的 shell ,也称为 login shell 或 primary shell。

      若从行程(process)角度来说,我们在 shell 所下达的命令,均是 shell 所产生的子行程。这现像,我们暂可称之为 fork 。

      如果是执行脚本(shell script)的话,脚本中的命令则是由另外一个非互动模式的子 shell (sub shell)来执行的。

      也就是 primary shell 产生 sub shell 的行程,sub shell 再产生 script 中所有命令的行程。

      (关于行程,我们日后有机会再补充。)


        这里,我们必须知道:kernel 与 shell 是不同的两套软件,而且都是可以被替换的:

          * 不同的操作系统使用不同的 kernel ,

          * 而在同一个 kernel 之上,也可使用不同的 shell 。

     二. Unix 中常见的 shell 主要分为两大门派: 
        sh: 

      burne shell (sh)
    
      burne again shell (bash)

        csh: 

      c shell (csh)
    
      tc shell (tcsh)
      korn shell (ksh)

  • 相关阅读:
    ARC 没有自动释放内存
    查看python的路径
    django 一些库
    实现点击按钮,出现隐藏布局
    蓝牙的开启以及搜索
    退出当前程序(应用)的小提示
    删除SharedPreferences的存储记忆
    BaseAdapter和SimpleAdapter的区别
    数据类型
    交互与注释
  • 原文地址:https://www.cnblogs.com/aomidata/p/3481454.html
Copyright © 2011-2022 走看看