例:
arrt=(1 2 3 4 )
arrt1=(1,2,3,4) ,为一个这
echo $arrt #默认打印第一个下标的变量
1
echo ${arrt[2]} 打印第三个元素
3
echo ${arrt[-2]} 右边开始数的第二个元素
3
echo $arrt1 打印出所有的
1,2,3,4
普通数组,自定义索引位置
arrt2[1]=1
arrt2[2]=2
arrt2[3]=3
arrt2[4]=4
echo ${arrt2[*]}打印出所有的值 (也可用@)
1 2 3 4
echo ${#arr[2]} 打印下标变量长度
4
echo ${#arr[*]} 显示数组中的元素个数(只统计值不为空的元素)也可用@
关联数组 :关联数组支持字符串作为数组索引,使用关联数组前必须先使用declare -A声明
declare -A arrt3=([name1]=westfile [name2]=linkpark)
echo ${arrt3[name1]}
wesfile
echo ${arrt3[name2]}
linkpark
arrt3[name3]=2 #分开赋值
arrt3[name4]=coldplay
echo ${arrt3[*]}
westfile linkpark 2 coldplay
数组的截取和替换
arrt4=(1 2 3 4 5 6)
echo ${arrt4[*]:2:2 } #截取第二个元素往后的2个元素
3 4
arrt41=${arrt4[*]:2:2}#截取并赋值
echo $arrt41 3 4
arrt42=${arrt4[*]/5/6} 数组中的5 替换为6
echo $arrt42 1 2 3 4 6 6
循环遍历数组
#!/bin/bash
arrt5=(one toe three four five)
for a in ${arrt5[*]};do
echo $a
done
one
toe
three
four
five
bash脚本信号捕捉
linux利用信号与系统的进程进行通信。
sleep 100
ctrl + c#暂停进程 运行期间暂停
sleep 100
Ctrl + z 在后台中暂停
ps 查看进程的状态信号
Openssl 的基本应用加密、解密
OpenSSL加密的三大方式:对称加密
含义:指加密解密使用同一组密钥,是按数据分块以后进行加密的,前后数据块彼此之间有关联关系
特性:加密算法严重依赖口令,加密算法很有可能是公开的,所有人都有可能知道这个算法;加密
本身不能仅依赖于算法,也依赖于可变化的口令来实现;加密方,解密方使用同一个口令相关算法:DES(56bit)、3DES、AES(128bit)、Blowfish、Twofish、Rc6、CAST5 非对称加密
含意:对消息的加密和解密使用不同的密钥,即用于加密、可以公开的公钥(public key),和用于解密、需要保密的私钥(private key)
特性:非对称加密算法的保密性比较好,它消除了终用户交换密钥的需要,但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密相关算法:RSA、EIGamal、DSA 意向加密
含义:是抽取数据特征码来验证数据的完整性特性:雪崩效应:输入数据的微小改变会导致结果的巨大变化;定长输出:无论输入数据多大,单向加密结果中的输出长度是相同的
Openssl是使用非常广泛的SSL 的开源实现,也是一种多命令行工具,它能够实现数据的加密、解密,还能当做CA来用,它能保证让你创建证书、吊销证书 openssl enc #enc进行加密
Ca及Openssl应用
在我们访问一些金融等安全性较高网站时,都不再是普通的http连接,而是https连接,这个s就代表这个通讯是加密的,这是就需要CA机构来颁布数字证书来验证WEB服务器的正确性。这个数字证书为实现双方安全通信提供了电子认证。在因特网、公司内部网或外部网中,使用数字证书实现身份识别和电子信息加密。数字证书中含有公钥对所有者的识别信息,通过验证识别信息的真伪实现对证书持有者身份的认证
练习https的实现
systemctl stop firewalld 关闭防火墙
setenforce 0 关闭selinux
1、CA服务器创建私有CA证书并颁发:
rpm -qa openssl && yum install openssl 查找openssl并安装openssl
cd /etc/pki/CA/
umask 077;openssl genrsa -out private/cakey.pem 4096 #使用rsa算法生成一个4096位的密钥
2、自签证书
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
#req生成证书签署请求 news新请求 x509专门用于生成自签署证书,days有效天数
3、初始化环境(只有第一次创建CA时才执行此步骤)
cd /etc/pki/CA/
touch index.txt
echo 00 >> serial 指定序列号从哪个数字开始
4、web节点申请证书,为私钥请求证书创建单独的目录便于存放
mkdir -p /etc/httpd/conf.d/ssl
cd /etc/httpd/conf.d/ssl
umask 077;openssl genrsa -out httpd.key 4096
5、生成证书签署请求
cd /etc/httpd/conf.d/ssl
openssl req -new -key httpd.key -out httpd.csr
6、将签署的请求文件发送给CA服务器
cp /etc/httpd/conf.d/ssl/httpd.csr /etc//pki/CA
7、CA签署证书(/etc/pki/CA/)
openssl ca -in httpd.csr -out httpd.crt -days 365
8、将签署好的证书发送回给(/etc/pki/CA)
cp httpd.crt /etc/httpd/conf.d/ssl/
cp cacert.pem /etc/httpd/conf.d/ssl/
9、web节点配置httpd支持使用ssl及使用证书
yum install httpd mod_ssl -y
vim /etc/httpd/conf.d/ssl.conf 修改ssl
SSLCertificateFile /etc/httpd/conf.d/ssl/httpd.crt
SSLCertificateKeyFile /etc/httpd/conf.d/ssl/httpd.key
SSLCACertificateFile /etc/httpd/conf.d/ssl/cacert.pem
在文件最后面添加:
DocumentRoot “/var/www/html”
ServerName gt.com :443
AllowOverride All
Option None
require all granted
systemctl restart httpd 重新启动httpd服务
10、将/etc/pki/CA/ 下的文件cacert.pem 拷贝至客户端
进行证书安装(将文件后缀名改为crt)选择受信任的颁发机构
安装好后在客户端访问https://ip地址
但是一般情况是访问域名所以首先在客户端找到C/windos/system32/drivers/etc/hosts将其移至桌面并在最后一行添加
IP 域名然后保存至原文目录中然后访问https://域名
显示证书正确没有问题即可