shell的作用:
环境:
平台:VMware workstation 14
系统:CentOS Linux release 7.4.1708 (Core)
编写第一个shell脚本:
注: sh为脚本格式 first为脚本的名称
first脚本中的内容
给所有人加权
shell脚本的执行方式:
1 脚本的路径
绝对路径
相对路径
注:必须脚本文件要有执行权限
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程序
位置变量
预定义变量
转载于:https://blog.51cto.com/14188767/2370525