shell指令碼概念和yum倉庫的搭建
1./service/scripts 固定放指令碼的檔案;寫指令碼固定以.sh結尾;用bash執行指令碼(也可用sh去執行指令碼)
2.chmod +x(許可權) test.sh 加許可權以後可以用絕對路徑執行指令碼;/service/scripts/ test.sh
3.在linux中,沒有指定直譯器,會預設用bash直譯器;#!/bin/bash (宣告指定用bash直譯器)
指令碼必須要寫宣告,指令碼第一行固定有
4.理論上給指令碼加上邏輯,變成程式設計;(echo "123123" | passwd -stdin yunjisuan)5.在腳本里,[ ]是邏輯符號,&&是邏輯語(左邊是假動作,右邊不執行);|| 邏輯或(左邊是假,右邊才執行)邏輯或只能用一次,只能出現在最右邊,用一個結束。
echo 111 && echo 222 || echo 333
(真) (真) (不執行)
6.[空格 內容 空格] 進行真或假判斷的
[ 1=1 ] && echo 真 || echo 假
在計算機裡面兩個==是判斷(x==3);一個=是複製,把右邊的給左邊
[ 1==3 ] && echo 真 || echo 假
在腳本里 -gt代表大於;-eq代表等於;-lt代表小於;-ge大於等於;-le小於等於;-ne是不等於
7./etc/init.d/sshd start 啟動ssh服務
8.腳本里可以傳引數 sh /service/scripts/test.sh 1 2 3 4 5
$0取得是檔案的執行路徑;$*[email protected]把引數羅列出來;$# 引數的個數
9.shell計算 (1)expr $x+$y
(2) echo "$((a+b))"
10.輸入重定向 cat << FOF 讓cat輸出內容到螢幕上遇到FOF停止輸出
cat >test.txt<< FOF 鍵盤輸入內容到test.txt裡,輸入FOF終止輸入
exit 強行終止指令碼
11.read 把螢幕輸出的內容,輸入到後面的變數裡
read -p 把後面引號裡的東西,存到後面變數裡,然後再輸出(邏輯或只能用一次,只能出現在最右邊,用一個結束)
12.[ -d /service/scripts ] && echo 1 || echo 2 ; 判斷/service/scripts是不是目錄
[ -d /service/scripts ] || mkdir -p /service/scripts; 不是目錄就建立它
13.-e 判斷目標是否存在;-f 判斷檔案;-d判斷目錄;-r 判斷可讀;-w 判斷可寫;-x 判斷可執行;-z 判斷是不是空
[ -z " " ] && echo 空 || echo 不空
14.${#x}求變數有多少個字元;x=“123123” echo ${#x} 6
15.程式語言:(1)基本指令碼命令 (2)基本邏輯語法
if語句:(1)if (條件) (2)then 幹啥 (3)fi (結尾符號);elfi 否則
16.用縮排(tab)來體現shell的優先集,條件判斷只要成功一次,後面就不執行了
17.在shell腳本里搭建yum倉庫
#!/bin/bash
umount /dev/sr0
[ -d / media/cdrom ] || mkdir -p /media/cdrom
mount /dev/sr0 /media/cdrom
if [ $? -ne 0 ];then
echo "請檢視光碟是否插入“
exit
fi
[ -d /etc/yum.repos.d ] || mkdir -p /etc/yum.repos.d
cd /etc/yum.repos.d && \
mv * /tmp/
cat > /etc/yum.repos.d/local.repo <<FOF
[local]
name=local
baseurl=file:///media/cdrom
gpgcheck=0
enabled=1
FOF
yum -y clean all && echo "yum clean"
yum makecache && echo "huan cun success"