shell与kernel的理解

Shell 的英文释义是外壳,与kernel 内核名词遥相呼应,一外一内,一壳一核。内核就像瑞士银行的金库,存放着客户的黄金等众多的(硬件)资产,闲杂人等(包括客户)当然是严格禁止入内的,而作为客户要存取金库中的资产则需要通过专门的特定管理人员代为操作完成,并把存取(操作)的结果呈现给客户。在Linux操作系统中,shell的职能就类似于金库的操作人员,客户就是计算机使用者,使用者只需要告诉shell相应的操作需求,shell会把操作需求提交给内核,并把结果返回给操作者,至于过程是怎么实现,对操作者而言是无需可见的。

 

  当然去过银行的都知道,干啥事都得填表,表就相当于一种规范,操作员与shell交流也需要遵循规范,这个规范就是所谓的命令。比方客户要更改自己银行账户的密码,如果是本人,验明正身后按规范只需要写passwd,shell就会提示你把你的新密码在键盘上输入,shell将转交给内核;如果不是本人,请获得授权后,并在passwd 命令后面加上你代为更改的账户名称,如passwd centos,centos就是我们所说的命令参数。至于shell编程则是相当于客户一次性把需求写纸上都提交给金库操作人员,金库操作人员来回一趟就能完成,减少了等待,提高了效率。当然作为操作者,只需要填表,不需要把表翻译成shell与内核交流的黑话,这就是说我们无需编译。

 

Shell脚本的按龟腚必须有一个开头字段 #!,叫Shebang。它的名字来自于sharpbang ,分别代指#!两个符号的Unix名称。相当于上文打的比方中的金库操作员的工作牌,通过这个,金库知道这是什么身份的内部人员,戴着工作牌的就是客户指定的金库操作员——通常是/bin/bash,当然客户也可以指定其他自己喜欢的,比如/bin/csh。操作员后面长长的一串就是客户的一列操作需求。

 

   Shell编程既然叫做编程,那么也算做一种语言。对计算机编程语言来说,就势必要有一个概念叫做变量,这玩意就类似于初中所学的几元几次方程组里的XY。也用金库的例子来打比方,就像客户说我要在瑞士银行的金库里存个东西,但我还不知道要存的东西是什么类型的,是美刀还是金条,金库先给我留个位吧。于是银行就会在金库存放东西的地方(内存)给先划一块空间,既然不知道是什么类型,那就叫个笼统的名字(类型):东西(字符串),总是不会错的。至于最终存进去并且按客户的需要拿美刀投资增值还是把金条变现(运算),金库到时候会自行按类型隐式转换。

原创文章,作者:喵,如若转载,请注明出处:http://www.178linux.com/10366

(2)
喵
上一篇 2016-02-14 10:15
下一篇 2016-02-14 10:18

相关推荐

  • RPM总结(一)

    软件包基础软件包运行环境硬件、内核、应用程序的关系包管理器程序包管理器Linux不同系统上的包管理器RPM的优点rpm包命名方式一般源代码的命名rpm包的命名rpm包的分类与拆包包管理工具RPM包管理器:程序包管理器:获取程序包的途径:rpm包管理CentOS系统上使用rpm命令管理程序包:安装升级:降级降级实例more 软件包基础 包管理过程中,最常用的操…

    Linux干货 2016-08-24
  • 命令(2017.5.16-2017.519-部分)

    命令(1) bc  计算器 dd if=/dev/zero 查看逻辑设备(非硬件) dd if=/dev/sd 查看硬件设备 dd if=/dev/zeroof=file bs=1M count=24  写入磁盘速度 dd if=/dev/zeroof=/dev/null bs=1M count=24  测试…

    Linux干货 2017-05-22
  • N22-北京-追求极境之人-RSYNC差分编码同步原理

    1客户端发送自己的filelist,filelist包含文件hashindexid(alert32)和关联的文件chunkChecksum(MD5)和hashindexID以便进行快速查找,chunksize根据文件大小进行等分,不足均值部分直接发送不进行MD5校验值生成 发送进程一次从生成器读取一个文件索引号和关联的块校验集合 2对于生成器发送的每个文件I…

    Linux干货 2016-08-22
  • ansible配置与应用

    无法上传图片 一、程序主要文件: ansible ansible-playbook ansible-doc 二、程序发布: 要求: 1.不能影响用户体验 2.系统不能停机 3.不能导致系统故障或造成系统完全不可用。 发布路径: /webapps/tuangou /webapps/tuangou-1.1 /webapps/tuangou-1.2. 在调度器上下…

    Linux干货 2016-11-14
  • 加深对grep命令和find命令的熟悉

    1、显示当前系统上root、fedora或user1用户的默认shell。 grep -E “^(root|fedora|user1)\>” /etc/passwd | cut -d: -f7 [root@localhost ~]# grep -E “^(root|fedora|user1)\>” /etc/passwd …

    Linux干货 2017-07-30
  • select和case用法

    一、作业 1、斐波那契数列又称黄金分割数列,因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2) 写一个函数,求n阶斐波那契数列 2、汉诺塔(又称河内塔)问…

    Linux干货 2016-08-21