小豆丁:老张!老张!你快来!

老张:咋啦?火烧屁股啦?急急忙忙的!

小豆丁:啥火烧屁股啊,我是遇到问题了!

老张:也对,你只有遇到问题的时候才会找我!说吧,啥事?

小豆丁:老张啊,你不是刚给我讲完Linux系统的shell是什么意思嘛(详见《贝壳?龟壳?手机壳?究竟啥是Linux系统的壳?》),今天我有看到个词,叫做“shell脚本编程”,这又是啥意思啊?shell不是Linux系统的壳吗,怎么还能编程了?

老张:哦,这个问题啊,也好理解。

老张:在解释这个问题之前,我先问问你,shell大致的工作过程还记得吗?

小豆丁:记得啊,用户输入相关的指令给shell,shell经过处理后再给系统内核,起到过滤和保护的作用。

老张:能理解这个问题就好说了,其实shell脚本编程并不难理解。shell的本质是什么?之前跟你说过是用户和内核交互的一种媒介,实际上更确切的说应该是一种解释器。

小豆丁:解释器?什么意思啊?

老张:就是把用户输入的命令进行解释,然后在送入系统内核。当然,shell的功能不仅仅局限于对用户命令的解释,它还能做一些更复杂的事情。比如说我们可以把很多我们希望执行的操作用shell的相关语法规则写成一个文件,然后shell解释器对文件中的内容一边解释一遍向系统内核传入,系统内核收到后进行执行,直到文件中所有的内容解释执行完毕。

小豆丁:哇哦,shell还有这个功能啊。那么所谓的“shell脚本编程”,是不是就是我们用shell的相关语法要求写成文件的过程啊?

老张:小豆丁越来越聪明了啊!

小豆丁:原来程序还能这么写啊!好神奇!

小豆丁:老张啊,那shell脚本编程和我现在学的C语言程序编程有什么区别啊?

老张:写完的shell脚本文件,是不要编译器编译的,它直接由解释器进行解释然后传递给系统内核执行,你写好的脚本文件,只要给它个可执行权限就能运行了。而C语言程序是要经过编译器编译的,最终生成二进制的可执行程序,然后才能执行。

老张:另外一个区别就是执行速度上的区别了,脚本文件需要一边解释翻译一边执行,所以它的执行速度是远远没有C语言程序快的!

小豆丁:哦,我懂了,原来shell这么强大啊!又学到了新知识!

shell指令可以直接在终端输入吗_shell不是LInux系统的壳吗?咋还能脚本编程了?...相关推荐

  1. shell指令可以直接在终端输入吗_简化shell终端命令输入的脚本式快捷键工具

    1.解决的问题 当你需要一次输入很多个命令的时候,例如一次去多个目录删除文件 cd dir1 rm file1.temp cd ../../dir2 rm -rf dir3 当你懒得输入一个好长的命令 ...

  2. linux终端和执行进程的关系,Linux系统编程第04期:打通进程与终端的任督二脉

    本课程是<嵌入式工程师自我修养>自学教程六步走中的第3步:Linux系统编程第04期. 进程,是Linux系统中任务调度运行的基本单元:一个程序的运行,都要被操作系统包装成"进程 ...

  3. linux终端输入lsblk无命令,使用Linux的lsblk命令列出块设备信息

    lsblk(列出块设备)命令用于列出所有可用块设备的信息,但是,它不会列出RAM盘的信息.块设备有硬盘,闪存盘,CD-ROM等等. 如何安装lsblk lsblk命令包含在util-linux-ng包 ...

  4. linux终端中超级用户用( )符号,Linux系统及应用-中国大学mooc-题库零氪

    第一周 系统状态查看工具:文本文件处理 <第一周单元测验>(一) 1.下面哪些部件不是一台物理上的字符终端必须具备的? A.以太网网卡 B.磁盘存储器 C.串行通信口 D.显示器 E.键盘 ...

  5. UBUNTU 18.04开机自启动脚本实现--打开终端、执行命令及终端输入文字

    开机自启动 方法很多,测试了一下,在18.04中最方便的方法如下: 新建sh脚本 touch xxx.sh gedit xxx.h 然后输入: #!/bin/bash## xxx.sh## 你的代码# ...

  6. shell脚本编程100例

    https://blog.csdn.net/yugemengjing/article/details/82469785 https://blog.csdn.net/yugemengjing/artic ...

  7. shell脚本编程之呈现数据

    技术交流QQ群:1027579432,欢迎你的加入! 本教程使用Linux发行版Centos7.0系统,请您注意~ 1.理解输入和输出 目前,已经知道了两种显示脚本输出的方法: 在显示屏幕上显示输出: ...

  8. linux系统包括虚拟终端图形界面终端有,Linux终端类型

    终端(Terminal)也称终端设备,是计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出等.在早期计算机系统中,由于计算机主机昂贵,因此一个主机(IBM大型计算机)一般会配置 ...

  9. 【shell脚本编程大全-笔录01】

    环境变量 全局.局部环境变量 ​ 用户变量(局部变量):修改的设置只对某个用户的路径或执行起作用: ​ 系统变量(全局变量):影响范围是整个系统 : 系统环境变量基本上都是使用全大写字母,以区别于普通 ...

最新文章

  1. C++添加程序到windows的启动项的代码
  2. 一次非常有意思的 SQL 优化经历!
  3. Shell编程进阶篇(完结)
  4. jsp文件通常用common_29.jsp-动态生活之用Commons-FileUpload组件控制文件上传
  5. PyInstaller打包exe,打包出来的可执行程序在触屏版win10家庭版系统下报错Colud not find QtWebEngineProcess.exe
  6. h5精准定位_HTML5 地理定位
  7. JS - Class继承
  8. ps自定义形状工具_PS教程——用PS绘制虚线的三种方法
  9. qt mysql查询中文相等_请教:Qt如何实现查询数据库中具有中文表名的表
  10. Android 第十三课 SharedPreferences存储
  11. css3优惠卷上方锯齿_css3怎么实现锯齿边框?
  12. React面试题总结,含爱奇艺,小米,腾讯,阿里
  13. 避免门事件 巧妙清除搜狗浏览器记录
  14. AES-encryptor
  15. 西门子触摸屏脚本程序_新手请收藏,超详细的西门子触摸屏设置与编程图文教程...
  16. linux mv文件个数,关于linux:mv一个文件,其中包含Shell脚本中的空格
  17. 最新接单抢单系统返利+资金盘+区块链自动抢单系统源码
  18. 任务式对话中的自然语言理解(智能对话场景)
  19. 中科大和西工大 计算机考研真题,中科大给考6系同学的一点复试建议
  20. Ubuntu18.04更换开机登录界面壁纸

热门文章

  1. 将Tensor核心引入标准Fortran
  2. 编译器设计-代码生成
  3. 高精地图与自动驾驶(下)
  4. 深度神经网络混合精度训练
  5. 2021年大数据ELK(二十二):采集Apache Web服务器日志
  6. 2021年大数据ELK(十一):Elasticsearch架构原理
  7. 2021年大数据Flink(十八):Flink Window操作
  8. Android 自定义ProgressBar 实现进度圆环
  9. JAVA中获取当前系统时间
  10. Spanned.SPAN_EXCLUSIVE_EXCLUSIVE的含义