shell的做用:web
环境:shell
平台:VMware workstation 14bash
系统:CentOS Linux release 7.4.1708 (Core)app
编写第一个shell脚本:ide
注: sh为脚本格式 first为脚本的名称 spa
first脚本中的内容orm
给全部人加权crontab
shell脚本的执行方式:ci
1 脚本的路径it
绝对路径
相对路径
注:必须脚本文件要有执行权限
2 sh 脚本文件路径
注: 若是脚本文件在opt目录下, 则: sh /opt/first.sh / 先cd /opt 再 sh first.sh
3 source 脚本路径
注:2 -a 3能够不须要执行权限 1必需要
编写第二个shell脚本:
shell脚本的构成:
1 脚本声明
#!/bin/bash 声明后面的命令能够经过此shell程序去解释并执行
2 注释信息
摘要,脚本做用,参数说明,工做效率,建立日期,做者,版本声明,第几回修改,每次返回的动态值的定义等
3 可执行的命令语句
注:全部特殊符号必须是英文模式输入
实例1:新建文件
实例2:删除文件
实例3:建立用户
cat /etc/passwd
实例4: 建立指定容量的文件
实例5: 计划任务
crontab -e
天天的下午1点半执行2.sh这个脚本一次
更友好的显示脚本内容:
重定向与管道操做:
实例6:使用密码文本文件 修改用户密码
解: 建立一个密码文件passwd.txt 密码为:123456
tom为已有用户,将密码文件导给tom 实现重置tom的密码为123456
实例7:
将ls这条命令的输出保存到 1.txt文件中
> 覆盖原有的内容
>> 追加
实例8:
将标准输出1.txt 标准错误输出2.txt中
实例9:
shell变量的做用,类型
自定义变量
声明变量不须要声明类型
能够存储不一样类型内容 A=wa1
有时候使用变量时要明确变量类型
严格区分大小写
等于号两边不容许出现空格
不能使用标点符号做为变量名
不能使用bash里面的关键字做为变量名
首个字符必须是字母(a-z A-Z或_)
格式 变量名=变量值
查看变量:
echo $变量名
echo ${变量名}
经过echo进行一个输出变量,其中$是引用变量的特殊字符(必需要使用$符号)
注:echo和调用的变量之间必需要有空格
当须要一块儿调用多个变量时,以空格隔开
当变量名和后面的字符混淆的时候,应使用{ }将变量名括起来
变量赋值的特殊操做:
1 双引号 ""
当变量值之间有空格的时候,要使用""括起来
2 单引号 ' '
禁止引用变量值,将$符号看成普通字符来使用
3 反撇号 ``
与$() 效果同样
做用:命令替换,提取命令执行的结果
优先执行反撇号里面的内容,再执行其余
变量赋值的时候,若是想要赋值的是某条命令执行的结果,必须使用反撇号
缺点:反撇号部不是现嵌套命令替换操做,这时候使用$()来替换
4 交互式赋值 read
read 命令用于提示用户输入信息,从而实现简单交互过程(输入命令就是一个交互式过程)
多个变量名交互式赋值,赋值之间有空格,变量名也有空格
为了更友好,一般使用-p 来提示信息
5 设置变量的做用范围
export 变量名 ...
export 变量名=变量值
做用:设置全局变量,全部子shell程序均可以使用此变量
注:bash为切换环境 export导为全局变量
永久生效:
vi /etc/profile
export 变量名=变量值
source /etc/profile
整数变量的运算
expr 变量1 运算符 变量2 ...
$(()) ++ -- **
经常使用变量:
+ - \* / %
环境变量
配置文件:
全局
单用户:
常见的环境变量
PWD :显示当前所在的工做目录
USER : 显示用户名称 能够查看当前登录的用户
HOME: 用户的家目录 显示当前用户的家目录
LANG: 语言和字符集变量
PATH: 命令搜索路径 , 能够用tab键补全
PS1: 提示符变量
SHELL:shell程序
位置变量
预约义变量