例:
arrt=(1 2 3 4 )
arrt1=(1,2,3,4) ,為乙個這
echo $arrt #預設列印第乙個下標的變數
echo $ 列印第三個元素
echo $ 右邊開始數的第二個元素
echo $arrt1 列印出所有的
1,2,3,4
普通陣列,自定義索引位置
arrt2[1]=1
arrt2[2]=2
arrt2[3]=3
arrt2[4]=4
echo $列印出所有的值 (也可用@)
1 2 3 4
echo $ 列印下標變數長度
echo $ 顯示陣列中的元素個數(只統計值不為空的元素)也可用@
關聯陣列 :關聯陣列支援字串作為陣列索引,使用關聯陣列前必須先使用declare -a宣告
declare -a arrt3=([name1]=westfile [name2]=linkpark)
echo $
wesfile
echo $
linkpark
arrt3[name3]=2 #分開賦值
arrt3[name4]=coldplay
echo $
westfile linkpark 2 coldplay
陣列的擷取和替換
arrt4=(1 2 3 4 5 6)
echo $ #擷取第二個元素往後的2個元素
3 4
arrt41=$#擷取並賦值
echo $arrt41 3 4
arrt42=$ 陣列中的5 替換為6
echo $arrt42 1 2 3 4 6 6
迴圈遍歷陣列
#!/bin/bash
arrt5=(one toe three four five)
for a in $;do
echo $a
done
onetoe
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
應用在我們訪問一些金融等安全性較高**時,都不再是普通的
連線,而是
連線,這個
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節點申請證書,為私鑰請求證書建立單獨的目錄便於存放
5、生成證書簽署請求
6、將簽署的請求檔案傳送給ca伺服器
7、ca簽署證書(/etc/pki/ca/)
8、將簽署好的證書傳送回給(/etc/pki/ca)
9、web節點配置httpd支援使用ssl及使用證書
vim /etc/httpd/conf.d/ssl.conf 修改ssl
在檔案最後面新增:
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://網域名稱
顯示證書正確沒有問題即可
bash陣列定義
如果用標準的 nix shell將不能使用bash的陣列特性。雖然在perl,python,php及其他高階語言中陣列已經不是乙個強大的功能,但陣列使用還是相當廣泛。bash只支援一維陣列,但引數個數沒有限制。宣告乙個陣列 declare a array 如果沒有宣告,按陣列方式直接賦值給變數,ba...
Shell指令碼陣列詳解
陣列包括的資料型別 獲取陣列的長度 陣列的遍歷 陣列的切片 陣列的替換 向函式傳陣列引數 從函式中返回陣列 陣列中的元素 30 20 10 60 50 40 陣列中的索引 0 1 2 3 4 5 方法一陣列名 value0 value1 value2 方法二陣列名 0 value 1 value 2...
整型陣列宣告與定義
當宣告陣列int arr 9 定義陣列,輸入資料截止到下標arr 6 系統自動給arr 7 arr 8 賦值為 任意值 int x 輸入資料 int i 0 記錄位數 int a 5 儲存逆序 int temp printf 輸入資料x scanf d x while x 100000 x 0 輸出...