shell与kernel的理解 转载
Shell 的英文释义是外壳,与 kernel 内核名词遥相呼应,一外一内,一壳一核。内核就像瑞士银行的金库,存放着客户的黄金等众多的(硬件)资产,闲杂人等(包括客户)当然是严格禁止入内的,而作为客户要存取金库中的资产则需要通过专门的特定管理人员代为操作完成,并把存取(操作)的结果呈现给客户。在 Linux 操作系统中, shell 的职能就类似于金库的操作人员,客户就是计算机使用者,使用者只需要告诉 shell 相应的操作需求, shell 会把操作需求提交给内核,并把结果返回给操作者,至于过程是怎么实现,对操作者而言是无需可见的。
当然去过银行的都知道,干啥事都得填表,表就相当于一种规范,操作员与 shell 交流也需要遵循规范,这个规范就是所谓的命令。比方客户要更改自己银行账户的密码,如果是本人,验明正身后按规范只需要写passwd,shell就会提示你把你的新密码在键盘上输入,shell将转交给内核;如果不是本人,请获得授权后,并在passwd 命令后面加上你代为更改的账户名称,如passwd centos,centos就是我们所说的命令参数。 至于 shell 编程则是相当于客户一次性把需求写纸上都提交给金库操作人员,金库操作人员来回一趟就能完成,减少了等待,提高了效率。 当然作为操作者,只需要填表,不需要把表翻译成 shell 与内核交流的 “ 黑话 ” ,这就是说我们无需编译。
Shell 脚本的按龟腚必须有一个开头字段 # !,叫 Shebang 。它的名字来自于 sharp 和 bang ,分别代指 # 、 ! 两个符号的 Unix 名称。相当于上文打的比方中的金库操作员的工作牌,通过这个,金库知道这是什么身份的内部人员, 戴着工作牌的就是客户指定的金库操作员——通常是 /bin/bash ,当然客户也可以指定其他自己喜欢的,比如 /bin/csh 。操作员后面长长的一串就是客户的一列操作需求。
Shell 编程既然叫做编程,那么也算做一种语言。对计算机编程语言来说,就势必要有一个概念叫做变量,这玩意就类似于初中所学的几元几次方程组里的 X 和 Y 。也用金库的例子来打比方,就像客户说我要在瑞士银行的金库里存个东西,但我还不知道要存的东西是什么类型的,是美刀还是金条,金库先给我留个位吧。于是银行就会在金库存放东西的地方(内存)给先划一块空间,既然不知道是什么类型,那就叫个笼统的名字(类型):东西(字符串),总是不会错的。至于最终存进去并且按客户的需要拿美刀投资增值还是把金条变现(运算),金库到时候会自行按类型隐式转换。
原文 http://www.178linux.com/10366?utm_source=tuicool&utm_medium=referral
shell与kernel的理解 转载的更多相关文章
- shell编程——if语句【转载】
(2)shell编程——if语句_macg_新浪博客http://blog.sina.com.cn/s/blog_6151984a0100ekl6.html shell编程——if语句转载 if 语句 ...
- linux kernel menuconfig【转载】
原文网址:http://www.cnblogs.com/kulin/archive/2013/01/04/linux-core.html Linux内核裁减 (1)安装新内核: i)将新内核copy到 ...
- SHELL网络爬虫实例剖析--转载
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://nolinux.blog.51cto.com/4824967/1552472 前天 ...
- shell基础——字符串处理(转载)
Shell的字符串处理 1 得到长度 %x="abcd" #方法一 %expr length $x 4 # 方法二 %echo ${#x} ...
- Oracle中B-TREE索引的深入理解(转载)
索引概述 索引与表一样,也属于段(segment)的一种.里面存放了用户的数据,跟表一样需要占用磁盘空间.只不过,在索引里的数据存放形式与表里的数据存放形式非常的不一样.在理解索引时,可以想象一本书, ...
- iOS-深入理解(转载)
RunLoop 是 iOS 和 OS X 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理.之后会介绍一下在 iOS 中,苹果是如何 ...
- Shell学习笔记2》转载自runnoob
学习且转载地址:http://www.runoob.com/linux/linux-shell-passing-arguments.html 这个网站整理的的确不错,看着很清晰,而且内容也很全面,个人 ...
- 谈谈对Spring IOC的理解(转载)
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...
- upper_bound()和low_bound函数的基本使用和理解(转载,已获博主授权)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/sdz20172133/article/details/80101838 前提:一个非降序列!!!!! ...
随机推荐
- 在 msbuild 生成时,每次都生成很多css,js,img 文件,如果不想每次编译都有这些需要这样配置
在 msbuild 不想生成一大堆文件,可以在 Web 项目的csproj 文件里,注释掉这一串. <!--<Import Project="$(VSToolsPath)\Web ...
- java数组转化成集合
package com.shb.web; import java.util.Arrays;import java.util.List; import com.sun.xml.internal.ws.u ...
- sql set xact_abort on 用例
set xact_abort on 设置事务回滚的当为ON时,如果你存储中的某个地方出了问题,整个事务中的语句都会回滚为OFF时,只回滚错误的地方 例子 : ALTER proc [dbo].[BuC ...
- jquery中的json操作
$(function() { var json = [ { "id" : "1", "tagName" : "apple" ...
- 夺命雷公狗—angularjs—11—service的基本概念
我们先来研究下service里面的四大服务.. value 变量 constant 常量 factory 工厂模式 service 服务 <!DOCTYPE html> <ht ...
- 1. 星际争霸之php面向对象(一)
题记==============================================================================本php设计模式专辑来源于博客(jymo ...
- 清除Cookie、获取指定Cookie的值、添加一个Cookie(24小时过期)、添加一个Cookie
MXS&Vincene ─╄OvЁ &0000007 ─╄OvЁ MXS&Vincene MXS&Vincene ─╄OvЁ:今天很残酷,明天更残酷,后天很美好 ...
- Ubuntu 13.10 64位 无法 安装 ia32-libs 解决办法
安装新立德软件包管理器:打开终端,输入以下命令:sudo apt-get install synaptic 打开新立德软件包管理器,选择“设置>软件库” 选择“其他软件 > 添加” 在AP ...
- ubuntu修改文件权限记录
查看文件权限的命令: 在终端输入: ls -l xxx.xxx (xxx.xxx是文件名) 那么就会出现相类似的信息,主要都是这些: -rw-rw-r-- 一共有10位数 其中: 最前面那个 - 代表 ...
- Delphi 线程同步技术(转)
上次跟大家分享了线程的标准代码,其实在线程的使用中最重要的是线程的同步问题,如果你在使用线程后,发现你的界面经常被卡死,或者无法显示出来,显示混乱,你的使用的变量值老是不按预想的变化,结果往往出乎意料 ...