Linux学习笔记-------shell的基本知识和执行方式

什么是shell?

        shell其实是一个命令解释器,它的作用是解释用户输入的命令和程序,命令和程序可以理解成我们图中的应用程 序,我们linux系统中的那些命令其实也都是一个个的小程序,只不过完成的是系统的应用功能。我们在系统的终端中输入一条命令,可以立马看到一条或者几 条系统回复我们的信息,其实就是shell在帮我们回复,所以shell可以称之为命令解释器。这种从键盘一输入命令,就可以立马得到相应的回复信息,叫 作交互的方式,相当于我们在和电脑交流。Shell存在于系统的最外层,所以算作操作系统的外壳,它之外的应用程序就不能算作操作系统了。我们从输入系统的账户密码开始,到登录系统以后的所有操作都是shell在帮我们解释执行的。

基本上shell分两大类:

一:图形界面shell(Graphical User Interface shell 即 GUI shell)

例如:应用最为广泛的 Windows Explorer (微软的windows系列操作系统),还有也包括广为人知的 Linux shell,其中linux shell 包括 X window manager (BlackBox和FluxBox),以及功能更强大的CDE、GNOME、KDE、 XFCE。

二:命令行式shell(Command Line Interface shell ,即CLI shell)

例如:

bash / sh / ksh / csh(Unix/linux 系统)

交互式shell和非交互式shell

  1. 交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。
  2. shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

什么是shell脚本?

        如果我们的命令或者应用程序不在命令行直接执行,而是通过一个程序文件来执行时,这个程序就被称之为shell 脚本。Shell脚本里面通常内置了多条命令,有的还包含控制语句,比如if和else的条件控制语句,for和select的循环控制语句等。这些内置 在一个shell脚本中的命令通常是一次性执行完成,不会不停的返回信息给用户,这种通过文件执行脚本的方式是非交互方式。

为什么要使用shell脚本?

       使用脚本编程语言的好处是,它们多半运行在比编译型语言还高的层级,能够轻易处理文件与目录之类的对象,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。或者可以归纳成以下三点:

  • 简单性:Shell是一个高级语言;通过它,你可以简洁地表达复杂的操作。
  • 可移植性:使用POSIX所定义的功能,可以做到脚本无须修改就可在不同的系统上执行。
  • 开发容易:可以在短时间内完成一个功能强大又妤用的脚本

shell脚本的执行方式

最常见的脚本执行方式sh /mnt/test.sh,shell会开启一个子程序执行脚本

适用范围:脚本文件本身没有可执行权限(即文件权限属性x位为-号),或者脚本文件开头没有指定解释器时需要使用的方法。

或者chmod +x /mnt/test.sh给sh权限,直接运行脚本的幻数

适用范围:脚本有执行权限,允许调用子程序执行脚本

/mnt/test.sh=./test.sh,也可以用./test.sh执行

source /mnt/test.sh  这种执行方式不会开启任何子程序

适用范围:加载并执行的相关脚本文件的命令及语句,而不是产生一个子Shell来执行文件中的命令

source test.sh=. test.sh,同样用. test.sh也不会开启任何子程序

shell脚本执行方式的区别(面试题):

题目:a=1,如何在脚本中直接调用a

我们对比了一下五种脚本运行方式,发现只有source test.sh和. test.sh两种运行方式可以输出a的值

这是因为source test.sh和. test.sh是在当前shell里面运行的没有调用子程序,所以它们可以获取a的值

而其它shell脚本运行方式都调用了子程序执行脚本,所以无法获取当前shell里a的值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古以来的短板,有效的提升管理的效率和业务水平。传统的管理模式,时间越久管理的内容越多,也需要更多的人来对数据进行整理,并且数据的汇总查询方面效率也是极其的低下,并且数据安全方面永远不会保证安全性能。结合数据内容管理的种种缺点,在互联网时代都可以得到有效的补充。结合先进的互联网技术,开发符合需求的软件,让数据内容管理不管是从录入的及时性,查看的及时性还是汇总分析的及时性,都能让正确率达到最高,管理更加的科学和便捷。本次开发的高校科研信息管理系统实现了操作日志管理、字典管理、反馈管理、公告管理、科研成果管理、科研项目管理、通知管理、学术活动管理、学院部门管理、科研人员管理、管理员管理等功能。系统用到了关系型数据库中王者MySql作为系统的数据库,有效的对数据进行安全的存储,有效的备份,对数据可靠性方面得到了保证。并且程序也具备程序需求的所有功能,使得操作性还是安全性都大大提高,让高校科研信息管理系统更能从理念走到现实,确确实实的让人们提升信息处理效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值