shell脚本

目录

一 、Linux的变量

1.1环境变量:用于整个系统运行时所使用的变量库

1.2 位置变量

1.3 编写脚本规范

1.4 预定义变量 

1.5 自定义变量

 1.6 通配符与正则表达式

1.7 逻辑连接符

1.8 内置判断测试

1.9  数值的计算

1.10 date:用于设置和查看当前时间的命令

二、Linux的shell脚本

2.1 什么是shell脚本

2.2 for循环表达式

三、定时任务:设置一个定时,到达某个时间去执行某个任务

一 、Linux的变量

1.1环境变量:用于整个系统运行时所使用的变量库

全局环境变量
	/etc/profile:用于管理所有用户的环境变量
用户环境变量
	~/.bash_profile:用于管理每个用户自己的环境变量

1.2 位置变量

$1-$9:表示脚本文件的第一个到第九个参数

1.3 编写脚本规范

脚本开头:#!/bin/bash
    所有变量的引用:${name}
执行脚本
	给脚本添加执行权限
	chmod u+x file_name.sh
执行脚本
	./filename.sh



		

1.4 预定义变量 

    $?:表示上一个命令执行的结果
            0:表示上一条正确执行了
            非0:表示上一条命令执行失败
    $*:表示所有参数,整体
    $@:表示所有参数,分割
    $#:表示参数的个数
    合法性判断 

1.5 自定义变量

    格式:key=value
	没有数据类型
	不允许有空格
	String name = "hehe"
测试:
	a=1
	b=myname
	b="my name is"
命名规则:与java类似,系统变量一般全部大写,一定的可读性

 1.6 通配符与正则表达式

通配符:
			*:用于匹配多个字符
			?: 匹配单个字符
			find ls cp
	正则表达式:
			.:表示匹配单个任意字符
			*:表示匹配多个
				.*
			[0-9]:表示0-9之间任意一个数字
				[0-9]*
			[a-z]
			[A-Z]
			^:表示以什么开头
			$:表示以什么结尾
			\:表示转义

grep:用于过滤文本
grep 'root' /etc/passwd
查找用户id与组id都只有个位数的用户记录
                    grep ':[0-9]:[0-9]:' /etc/passwd
                    -v:反选
sed:主要用户对行的处理
                sed 's/nologin/88888/g' passwd
                ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | sed 's/inet addr://g' | sed 's/Bcast.*//g' | sed 's/ //g'
awk:主要用户对列的处理
                awk -F ':' '/root/{print $1}'  passwd

1.7 逻辑连接符

&&:表示并列,当第一条命令执行成功,第二条命令才会执行
||:表示或者,当第一条命令执行失败,第二条命令才会执行
;:表示没有关系

1.8 内置判断测试

数字判断:a=1,b=2
[]
				[ $A -判断符号 $b ] 
				eq:相等
				ne:不相等
				lt:小于
				le:小于等于
				gt:大于
				ge:大于等于
(())
				(($a>$b))
				>=,<=.<,>,==,!=

字符判断:[]
			=,!=,\<,\>
			-z :判断是否为空,如果为空返回true,如果不为空返回false
			-n:判断是否不为空

文件判断:
			-e:判断是否存在
			-f:表示是否是一个文件
			-d:表示是否是文件夹
			-r,-w,-x:表示是否有对应的权限

表达式的连接符
			-a: [ 条件1 -a 条件2 ]
			-o

1.9  数值的计算

$[$a+$b] $[a+b] 
$(($a+$b))
a = 1
b = 2
expr a+b
#a+b

expr $a+$b
#1+2

expr $a + $b
#3

1.10 date:用于设置和查看当前时间的命令

date
date -s "yyyy-MM-dd HH:mm:ss"
date -s "2018-01-01 00:00:00"
date +"%Y-%m-%d"
前一天的日期
date -d '1 days ago' +"%Y-%m-%d" 
date -d '-1 day' +"%Y-%m-%d" 

二、Linux的shell脚本

2.1 什么是shell脚本

可执行的文件.sh结尾
	文件内容:
		必须以#!/bin/bash开头
		内容:shell语法,Linux命令
		大数据脚本中:命令的封装
		    创建一个文件
			移动一个文件
			编辑一个文件
			删除一个文件
		执行方式:
			如果有执行权限:直接执行文件
			如果没有执行权限:sh/bash
	循环
		for

2.2 for循环表达式

for循环
do
	要做什么
done

while
while循环表达式
do
	要做什么
done	
		
while循环
	read:用于读取用户的输入
			read -p "please input your name" NAME
			
if判断语句
if []
then
elif
then
else
fi
		
case判断语句	
case $var in
value1)
	exec 
	;;
value2)
	exec
	;;
*)
	exec 
	;;
esac

 

 //-n:不换行 -e:连在一起

 

 

sh x while2.sh

 

 

 

三、定时任务:设置一个定时,到达某个时间去执行某个任务

 crontab -e:编辑一个定时任务
        格式:
        *        *        *        *        *        command
        分钟    小时    日        月        周        执行的命令
        0-59    0-23    1-31    1-12    0-7
                                    0和7:都表示星期日
                                    
        
        -》每年3月1号凌晨12点执行
            00 00 1 3 * more /etc/passwd
            
        -》每天3点,9点,11点
            0 3,9,11 * * * 
        -》连续时间段
            0 3-11 * * *
        -》每隔一个小时
            0 */1 * * * 

 

 

#每天11点58分执行脚本 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值