shell脚本基础.md

本文详细介绍了Shell脚本的基础知识,包括shell的作用、运行环境、脚本构成及执行方式。重点讲解了重定向与管道,如重定向输入、输出、错误重定向以及管道的使用。此外,还阐述了环境变量、自定义变量、预定义变量以及变量赋值。最后,文章深入探讨了条件语句(if判断和case语句)和循环结构(for、while、until循环)。
摘要由CSDN通过智能技术生成

shell

一:简介

shell相当于解释器,用于用户和内核之间的语言翻译

概念

将要执行的命令按顺序保存到另一个文本文件

给该文件可执行权限

可结合各种shell控制语句以完成更复杂的操作

应用场景

重复性操作

交互性任务

批量事务处理

服务运行状态监控

定时任务执行

缓冲与缓存的区别

缓冲用于写,缓存用于读

缓冲:减缓压力

image-20220620191507570

A的速度是1000每秒,B的速度是500每秒,相当于A工作一秒B工作两秒有这一秒的时间差,则会影响A的工作效率。当有了缓冲区之后,A把已完成的工作送到缓冲区,这样A、B双方的工作都不会被影响。高速到低速,高性能到低性能

缓存:例如看视频时出现的加载,进度条下方出现的灰色部分,是临时性加载到内存中的

shell的作用

image-20220620193650092

(1):用户借助shell,控制内核,内核依托硬件存在,硬件收到请求后,将用户所需要的资源输出

(2):用户启动程序,程序控制内核,内核再向系统硬件申请资源,硬件输出资源给用户

(3):shell和应用程序之间相互控制

shell的运行环境

shell的类型,常用的是—/bin/bash

image-20220620194729472

不同的shell具备了不同的功能,shell默认登陆时/bin/bash,流行的shell还有ash、bash、ksh、csh、zsh等,不同的shell有不同的功能和用途。想要修改时可以使用chmod -s或chsh -s来重新指定。

shell脚本

定义:就是把我们原来的命令或语句整合到一起,按照一定的顺序和逻辑放入文件中,然后通过这个程序文件去执行,我们称这样的程序文件为shell脚本。

初阶shell脚本功能

自动化完成软件的安装部署,如批量部署LAMP架构服务

自动化完成系统的管理,如批量添加用户

自动化完成备份,如数据库定时备份

自动化的分析处理,如网站访问量

shell脚本使用场景

在需要完成大量复杂、重复性的工作时,不需要再命令行重复执行命令,直接运行shell脚本即可,大大的节省了时间提高了效率

shell脚本的构成

第一行:#!/bin/bash(脚本申明,表示此行一下的代码语言时通过/bin/bash程序来执行)

除第一行之外以下行开头有#号都表示注释

image-20220623151619860

输出结果

image-20220623151756197

echo:可执行语句,用于输出 " " 之间的字符串。引号之间需要作为字符串才能被输出,单纯的字符串可以不用加引号就可以直接输出

image-20220623152255865

但是依然能输出

image-20220623152318077

但是如果有一些特殊符号,就需要用引号引起,将其变成字符串才能输出

image-20220623152610087

输出失败

image-20220623152546531

下面开始玩一个脚本

image-20220623153934229

查看内容

image-20220623154009838

输出

image-20220623154024556

查看下,创建成功

image-20220623154118814

脚本的执行方式

1:在当前路径下(相对路径和绝对路径)执行脚本

./first.sh或/home/first.sh

此方法需要有执行权限:chmod +x first.sh

2:sh、bash执行文件,

sh first.sh、bash first.sh

此方法不需要对脚本添加权限

(当脚本太长时,sh -x可以对脚本进行调试,可以把每一条执行的结果打出来)

3:source脚本文件路径

source first.sh

可以没有执行权限

source表示加载/刷新环境,所以会把脚本加载一遍,所以不需要执行权限

4:sh < first.sh或者 cat first.sh

(看看就好)

二:重定向与管道

重定向

用户通过操作系统处理信息的过程中,包含以下几类交互设备文件

标准输入(stdin):默认的设备是键盘,文件编号0,命令将从标准输入文件中读取在执行过程中需要的输入数据。

标准输出(stdout):默认的设备是显示器,文件编号1,命令将执行后的输出结果发送到标准输出文件。

标准错误(stderr):默认的设备是显示器,文件编号为2,命令将执行期间的各种错误信息发送到标准错误文件。

从键盘接收用户输入的各种命令字串,辅助控制信息,并将命令结果输出到屏幕上;如果命令执行错误,也会将错误信息反馈到屏幕上

image-20220623163313245

不管是标准性输还是标准性错误输出,都会以追加的方式写入系统日志中,分别写入标准输出日志和标准错误输出日志中。

重定向输出

将命令的正常输出结果保存到指定的文件中,而不是直接显示在显示屏上

符号

(>):当文件中没有信息时,会把信息注入进去,如果文件有内容,则表示将原有内容覆盖,把旧内容改为新内容

(>>):表示追加,文件有内容时,不会将原有内容覆盖,而是继续写入新内容

image-20220623164353438

覆盖

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值