Shell(一)

什么是Shell

Shell是指种命令行解释器,是为用户和操作系统之间通信提供的一种接口,它接受来自用户输入的命令,并将其转换为一系列的系统调用送到内核执行,并将结果输出给用户。
Shell还是一种解释性语言,执行一条语句就翻译一条,并且每次执行程序都需要进行解释。相比较编译型语言只翻译一次,效率较低。

Shell版本

  • sh(Bourne Shell):各种UNIX系统都配有sh。
  • csh(C Shell):支持很多Bourne Shell所不支持的功能:作业控制,命令历史,命令行编辑。
  • ksh(Korn Shell):向后兼容sh的功能,并且添加了csh引入的新功能。
  • bash(Bourne Again Shell):是各种Linux发行版标准配置的Shell,在Linux系统上/bin/sh往往是指向/bin/bash的符号链接。如下图:
    在这里插入图片描述
    本文接下来的操作都是用bash,大家可通过echo $SHELL来查看自己系统的Shell是否为bash
    在这里插入图片描述

第一个Shell脚本

首先touch helloworld.sh,写入以下内容
在这里插入图片描述
首行以#!开头,后面跟着要执行此脚本的解释器。在shell中#为注释部分,我们echo输出Hello World!
在这里插入图片描述
尝试执行它,发现程序权限报错,原因是我们写的文件默认不带有执行权限,需要添加可执行权限才可以运行,如下:
在这里插入图片描述
我们可以正确看到打印出的结果了。

变量

变量:就是值可以改变的量,变量名是指向一片用于存储数据的内存空间。大致可分为环境变量,自定义变量。Shell变量是一种弱类型的变量,也就是说在声明变量时不需要指定变量的类型。

用户自定义变量:又可以理解为局部变量,只存在于当前Shell进程的用户自己定义的变量。
环境变量:环境变量可以从父进程传给子进程,Shell进程的环境变量可以从当前Shell进程传给fork出来的子进程。
当然系统还可能存在一些用户不能定义的变量,在此就不做介绍了。
接下来,我们定义一个局部变量:
在这里插入图片描述
直接使用变量名=值(=两边不要带空格),这样的格式就可以,查看局部变量使用echo $变量名。但是当我们使用env查看时确查找不到刚定义的变量,原因是env查找的是环境变量可以理解为全局的,而刚才定义的是局部的。那怎么把刚定义的变量转换成环境变量呢?
使用export 变量名
在这里插入图片描述
这样我们就可以通过env查找刚才定义的环境变量了。

使用unset 变量名就可以删除自定义/环境变量了
在这里插入图片描述
成功删除变量,其他内容后续更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值