Shell总结(一)

本文是关于Shell的总结,详细介绍了Shell脚本的开始、执行过程、变量、符号、数组以及各种运算符。讲解了如何定义和使用Shell变量,包括环境变量和普通变量,还探讨了Shell中的算术、关系、逻辑、字符串和文件类型测试符等运算符。
摘要由CSDN通过智能技术生成

最近学习了脚本语言,Shell,是时候进行一下总结了,好了,不多说了。

1. 前言


Shell是对操作系统的操作,操作系统进行管理硬件,开发人员通过Shell来和操作系统交流,通过操作系统的命令和操作系统之上的库,以及一些暴露的系统调用进行交流。

Shell是基于命令的语言,Shell脚本语言。

Shell常常用来处理文本,包装一些命令,把Shell包装一些命令,直接调用脚本,直接进行处理一大批命令,最早Shell可以理解为批处理。

service 管理后台服务,就需要用到Shell脚本来管理。

最常用的Shell就是bash,

存取权限与安全:
setuid(suid/guid)

chown和chgrp

umask

2. 脚本的开始


#!/bin/bash这个就是命令解释器,后面的就是相对应得shell

当shell运行的时候,首先读取第一行,决定调用哪一个脚本解释器,得到脚本解释器的类型,Shell有c写的,也有其他语言写的。bash也可以写成sh,linux当中sh已经替换了bash了。

相对关系就是,当前的shell是一个父进程,之后又启动一个bash,执行脚本的命令又是bash的子进程。

3. 执行脚本


执行脚本我们有两种方式,一种执行的方式就是使用bash Shell脚本文件。
另外的一种方式就是使用 chmod +x Shell文件 来给文件加上可执行权限,然后再去./执行就好了。

4. shell执行的过程


Shell执行的过程需要我们进行一下探讨。
当我们对一个简单的Shell脚本
如:

#! /bin/bash

pwd

这样简单的一个Shell基本就写完了,然后我们就可以进行运行Shell脚本。

在Shell脚本当中,#表示注释。
第一行说的是shebang,其实就是一个解释器,脚本语言的运行都要依靠这个解释器才行啊。

运行的时候,首先bash进程会进行fork出来一个子进程,然后这个子进程进行exec程序替换,替换当前你运行的Shell脚本文件,bash等待子进程终止,然后子进程读取脚本的每一行,然后去fork子进程的子进程(孙子进程)。孙子今年初进行程序替换,此时替换的程序就是子进程读取的脚本信息,此时信息是通过命令行参数传入的,子进程等待孙子进程执行,然后命令进行解释,命令解释完毕以后,孙子进程结束,然后回到子进程,子进程继续读取,继续做相应的动作,一直读取到文件结尾,子进程结束,返回,此时回到bash。

此时需要区分一个点,就是命令分为内置命令和普通命令,普通的命令通过上述所说的孙子进程完成,而内置命令通常是通过子进程完成,也就是子进程exec以后直接执行,然后返回bash。

内置命令有:cd,export,echo,env,set,unset等。。

5. Shell变量</

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值