Linux Shell编程——Shell基础知识

一、基本概念

Shell概念

Shell也是操作系统中的一个软件。是一个命令行解释器。它包在Linux内核的外面,为用户和内核之间的交互提供了一个接口。系统中的命令用Shell去解释,Shell接收系统回应的输出并显示其到屏幕中。

Shell是面向对象的解释型语言。

Shell脚本概念

是一种为 shell 编写的脚本程序。也就是在Shell脚本里内置了多条命令,语句,循环控制,用脚本判定命令的执行条件,用脚本来实现动作的批量执行。

Shell脚本的优点

适合处理操作系统底层的业务,有众多系统命令为其做支撑(还有文本处理三兄弟grep,sed,awk);适合处理纯文本文件,linux中许多服务配置文件,启动脚本,都是纯文本(httpd,nfs,mysql,nginx,lvs);linux系统脚本用shell开发更简单。

二、Shell 脚本的创建

vim script.sh     ##必须以.sh结尾
#!/bin/bash       #脚本使用的解释器,通常用幻数"#!"指定
#AUTHOR           #脚本的作者
#DATE             #脚本创建时间
#MAIL             #脚本作者联系方式
#VERSION          #脚本的版本

脚本示例:

vim hello.sh
#!/bin/bash
#AUTHOR:  timoyang
#DATE:    2019-02-28
#MAIL:    yang.westos.com
#VERSION: 1.0
echo "hello world!"

在这里插入图片描述

调用:

sh hello.sh
在这里插入图片描述

三、脚本的调式

sh -x script.sh         ##适用于所有的Shell脚本

注意:Shell脚本必须有可执行权限 X
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、Shell 脚本的执行

Shell 脚本有3种调用方式。

sh script.sh ##适用所有,用指定的sh去调用
在这里插入图片描述

source script.sh ##用当前的环境去调用,不会开启新的Shell
在这里插入图片描述

chmod +x script.sh ##加权限用脚本名去调用,绝对路径./script.sh
在这里插入图片描述
在这里插入图片描述

五、Shell 脚本的规范

vim /etc/vimrc
66 autocmd BufNewFile *.sh,*.script exec "call WESTOS()"   ##将map注释(当是次文件类型时,自动添加)
67 map <F5> ms:call WESTOS()<cr>'s      ##WESTOS是对调用的函数块的命名
68 function WESTOS()
69         call append(0,"#####################################")
70         call append(1,"# AUTHOR:      yang                 #")
71         call append(2,"# CREATE_DATE: ".strftime("%Y-%m-%d")."           #")
72         call append(3,"# VERSION:     1.0                  #")
73         call append(4,"# MAIL:        yang@westos.com      #")
74         call append(5,"# DESCRIPTION:                      #")
75         call append(6,"#####################################")
76 endfunction

脚本示例:

编写脚本:将/etc/下的所有以.conf结尾的备份到/mnt/backup/下,并让文件以.conf.月-日结尾

vim /mnt/backup.sh
#!/bib/bash
mkdir /mnt/backup
cp -p /etc/*.conf /mnt/backup/
cd /mnt/backup/
rename .conf .`date +%m-%d` *

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
改正:因为用到的命令太多,故调整为以下

vim /mnt/backup.sh
#!/bin/bash
mkdir /mnt/backup
find /etc/ -name *.conf -exec cp -p {} /mnt/backup/ \;        #找到etc下所有以.conf结尾的文件,
find /mnt/backup/ -name *.conf -exec rename *.conf .`date +%m-%d` * \;

在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值