Shell初体验

1.shell简介

Shell是一个用C语言编写的程序通过Shell用户可以访问操作系统内核服务,类似于DOS下的command和后来的cmd.exe。Shell既是一种命令语言,又是一种程序设计语言作为命令语言,它交互式地解释和执行用户输入的命令作为程序设计语言,它定义了各种变量、参数、函数、流程控制等等。它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Unix/Linux系统的关键。

2.两类程序设计语言

我们经常说到的shell脚本,其实是因为Shell是一种脚本语言,也就是解释性语言。程序设计语言可以分为两类:编译型语言和解释型语言。

语言区别
编译型语言需要预先将我们写好的源代码转换成目标代码,这个过程被称作“编译”。运行程序时,直接读取目标代码。由于编译后的目标代码非常接近计算机底层,因此执行效率很高,这是编译型语言的优点
解释型语言也叫做脚本语言。执行这类程序时,解释器需要读取我们编写的源代码,并将其转换成目标代码,再由计算机运行。因为每次执行程序都多了编译的过程,因此效率有所下降

3.Shell脚本解释器

Linux的Shell脚本解释器种类众多,一个系统可以存在多个shell脚本解释器,可以通过cat /etc/shells 命令查看系统中安装的shell脚本解释器。
在这里插入图片描述
bash由于易用和免费,在日常工作中被广泛使用。同时,Bash也是大多数Linux系统默认的Shell脚本解释器。
shell可以充当一个脚本解释器,那什么是脚本呢?
脚本(Script),是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。
脚本是一个可执行文件,脚本通常是以文本的形式保存, 只是在被调用时进行解释或者编译。
因为脚本是用描述性语言编写的,所以它是在被调用的时候一边解释,一边执行。

4.创建并执行shell脚本

在这里插入图片描述
现在在sh这个目录下没有任何文件,我们先创建一个。
在这里插入图片描述
现在在sh目录下创建了一个hello.sh文件,这个文件的后缀名为.sh。我们都知道在Linux下,是不分文件后缀名的,和Windows不一样,这里创建文件加这个后缀名仅仅是方便我们程序员知道这个文件的作用。
在这里插入图片描述
我们来看下这个文件袋属性,发现它是一个只读只写文件,不可以执行,如果要把它变为脚本(可执行文件),必须要改变它的属性。
在这里插入图片描述
现在,文件就变为可执行的了。由于脚本可以调用所有Linux内核系统命令,所以学好脚本是可以有助于我们更好地学习Linux内核。
现在,我们先实现一个小小的功能吧。

在这里插入图片描述
#! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell,这里指定bash

echo 是Shell的一个内部指令,用于在屏幕上打印出指定的字符串
执行hello.sh脚本方式一
在这里插入图片描述
注意,一定要写成./hello.sh,而不是hello.sh,linux系统会去PATH里寻找有没有叫hello.sh的,而hello.sh不在PATH里,所以写成hello.sh是会找不到命令的,要用./hello.sh告诉系统说,就在当前目录找。
执行hello.sh脚本方式二

在这里插入图片描述
这种运行方式是,直接运行解释器,其参数就是shell脚本的文件名,当使用这种方式时,脚本中的#!/bin/bash指定的解释器是不生效的,当前使用什么解释器就是什么解释器
在这里插入图片描述
我们发现,我们可以直接用bash命令,也可以使用这个命令的绝对路径。

5.Linux和Windows下脚本的不同

在这里插入图片描述
我们一般用cat 去查看一个文件内容,如果加上参数 -A ,就会把这个文件中的隐藏字符给显示出来。
细心点你肯定发现了,在每一行的末尾,都多了一个$符号,这个就是Linux下的换行符。而在Windows下换行符为**^M $**.这个是我们要注意多。所以你在Windows上写的脚本在Linux上是跑不了的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值