合肥網絡科技有限公司做網站短視頻推廣渠道
git
文件版本控制
?安裝git
yum -y install git
創(chuàng)建倉庫
將文件提交到暫存
git add .
#將暫存區(qū)域的文件提交倉庫
git commit -m "說明"
#推送到遠程倉庫
git push
#獲取遠程倉庫的更新
git pull
#克隆遠程倉庫
git clone
#分支,提高代碼的靈活性
#檢查分支
git branch
#*所在的行為當前分支
#創(chuàng)建新分支
git branch 新分支名稱
#跳轉分支
git checkout 分支名稱
#在跳轉分支的同時建立新分支
git checkout -b 新分支名稱
#刪除分支
git checkout -d|D 分支名稱
#合并分支
#跳轉到主合并分支
git checkout a
git merge? a
#合并沖突
手動解決
shell
概念
可以用過shell命令來操作和控制操作系統(tǒng)(是操作系統(tǒng)的外殼)
shell腳本是由shell命令組成的執(zhí)行文件,將一些命令整合到一個文件中,進行處理
編寫一個簡單的腳本,并運行
[root@a1 ~]# vim helloworld.sh
[root@a1 ~]# bash helloworld.sh
hello world!
執(zhí)行方式
也可以通過以下方式來執(zhí)行腳本:
安裝nginx腳本的編寫
vim nginx.sh
在里面寫入內容,復制相應的文件路徑
判斷是否安裝的腳本
#!/bin/bash
rpm -qa|grep nginx
echo $?
文件/目錄操作符
[root@shell ~]# touch abc[root@shell ~]# ls -lh abc-rw-r--r--. 1 root root 0 7月 26 11:26 abc[root@shell ~]# [ -e "abc" ][root@shell ~]# echo $?0[root@shell ~]# [ -e "lllll" ][root@shell ~]# echo $?1[root@shell ~]# [ -w "lllll" ][root@shell ~]# echo $?1[root@shell ~]# [ -w "abc" ][root@shell ~]# echo $?0[root@shell ~]# [ -x "abc" ][root@shell ~]# echo $?1[root@shell ~]# ls -l abc-rw-r--r--. 1 root root 0 7月 26 11:26 abc[root@shell ~]# chmod +x abc[root@shell ~]# [ -x "abc" ][root@shell ~]# echo $?0[root@shell ~]# [ -z "abc" ][root@shell ~]# echo $?1[root@shell ~]#
變量
環(huán)境變量
由系統(tǒng)維護,用于設置工作環(huán)境
$PWD
$SHELL
$USER
腳本案例
[root@a1 ~]# vim test001.sh
[root@a1 ~]# bash test001.sh 1 2 3 4 5
1
2
3
4
5
[root@a1 ~]# bash test001.sh ni yao gan ma
ni
yao
gan
ma[root@a1 ~]# cat test001.sh
#!/bin/bashecho $1
echo $2
echo $3
echo $4
echo $5
腳本案例
[root@a1 ~]# vim created.sh
[root@a1 ~]# bash created.sh xx yy
更改用戶 xx 的密碼 。
passwd:所有的身份驗證令牌已經成功更新。
[root@a1 ~]# cat created.sh
#!/bin/bashuseradd $1
echo $2|passwd --stdin $1
if條件 ,腳本
[root@a1 ~]# vim munu.sh
[root@a1 ~]# bash munu.sh
1新增文件 2刪除文件 3查找文件 4修改文件
請輸入序號選擇:3
其他功能正在開發(fā)
[root@a1 ~]# bash munu.sh
1新增文件 2刪除文件 3查找文件 4修改文件
請輸入序號選擇:1
[root@a1 ~]# cat munu.sh
#!/bin/bashecho "1新增文件 2刪除文件 3查找文件 4修改文件"
read -p "請輸入序號選擇:" m
if [ $m == 1 ];thentouch aaaaa.txt
elif [ $m == 2 ];thenrm -rf aaaaa.txt
elseecho "其他功能正在開發(fā)"
fi
用戶輸入
read命令
read用來從標準輸入中讀取數據并賦值給變量
格式
read [-選項] [變量賦值]
[root@a1 ~]# read -p "輸入一個數據" s
輸入一個數據aabbcc
[root@a1 ~]# echo $s
aabbcc
[root@a1 ~]# read -p "輸入一個數據" -s s
輸入一個數據[root@a1 ~]# echo $s
weishenm
可以給多個變量賦值
[root@a1 ~]# read -p "3個變量" a b c
3個變量12 18 20
[root@a1 ~]# echo $a
12
[root@a1 ~]# echo $b
18
[root@a1 ~]# echo $c
20
輸入密碼
[root@a1 ~]# vim register.sh
[root@a1 ~]# bash register.sh
username:abc
password:abc
更改用戶 abc 的密碼 。
passwd:所有的身份驗證令牌已經成功更新。
賬戶abc注冊成功
[root@a1 ~]# su abc
[abc@a1 root]$ su
密碼:
[root@a1 ~]# cat register.sh
#!/bin/bashread -p "username:" username
read -p "password:" password
useradd $username
echo $password|passwd --stdin $username
if [ $? -eq 0 ];thenecho "賬戶$username注冊成功"
fi
循環(huán)語法
[root@a1 ~]# mkdir /abc
[root@a1 ~]# nohup inotifywait -mr /abc/
nohup: 忽略輸入并把輸出追加到"nohup.out"
腳本案例
[root@a1 ~]# vim city.sh
[root@a1 ~]# bash city.sh
青島這是個好地方
上海這是個好地方
泉州這是個好地方
[root@a1 ~]# cat city.sh
#!/bin/bash
for city in 青島 上海 泉州
do echo "$city這是個好地方"
done
腳本案例
[root@a1 ~]# vim ping.sh
[root@a1 ~]# cat ping.sh
#!/bin/bash
for IP in $(echo 192.168.1.{10..254})
doping -c 2 -i 0.1 $ip &> /dev/nullif [ $? -eq 0 ];thenecho "$ipisup"
fi
done
腳本案例
vim gushi.sh
床前明月光
疑是地上霜
舉頭望明月
低頭思故鄉(xiāng)
awk的使用
[root@shell ~]# awk -F ":" '{print $1}' /etc/passwdrootbindaemonadmlpsyncshutdownhaltmailoperatorgamesftpnobodysystemd-networkdbuspolkitdsshdpostfixchronyuser3user4mysqlhahahaabc
sed
概念
一次處理一行,處理時把待處理的行放到緩沖區(qū),成為”模式空間“。接著sed命令處理緩沖區(qū)的
數據,處理完之后把緩沖區(qū)的內容送往屏幕展示,這樣不斷重復直到文件末尾,文件內容并沒有
被改變,除非使用重定向存儲文件,文件內容會被修改。
語法格式
sed? 選項? (定位符) 指令? 文件名? (定位符) 指令 --想對文件的哪一步進行操作
選項
-n? ?屏蔽默認輸出
-r? ?支持擴展正則
練習
? ?配置一個自動設置靜態(tài)IP以及關閉seliux服務 關閉防火墻服務 關閉networkmanager,
修改主機名稱的腳本,ip和主機名稱使用read輸入,這個操作只能在root下執(zhí)行
腳本如下:
[root@shell ~]#vim net.sh# !/bin/bash# 備份cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33.bakread -p "請輸入指定ip地址:" ip# 替換dhcp 為 nonesed -i '/dhcp/s/dhcp/none/g' /etc/sysconfig/network-scripts/ifcfg-ens33# 在文檔最后添加5行# IPADDRsed -i '$aIPADDR='"$ip"'' /etc/sysconfig/network-scripts/ifcfg-ens33# NETMASTsed -i '$aNETMASK=255.255.255.0' /etc/sysconfig/network-scripts/ifcfg-ens33# GATEWAYsed -i '$aGATEWAY=10.1.1.2' /etc/sysconfig/network-scripts/ifcfg-ens33# DNS1sed -i '$aDNS1=8.8.8.8' /etc/sysconfig/network-scripts/ifcfg-ens33# DNS2sed -i '$aDNS2=114.114.114.114' /etc/sysconfig/network-scripts/ifcfg-ens33# 修改uuid# 修該主機名稱read -p "請輸入主機名稱" hn
hostnamectl set-hostname $hn# 停用selinuxsetenforce 0
sed -i '/SELINUX=enforcing/cSELINUX=disabled' /etc/selinux/config# 停用防火墻systemctl stop firewalld
systemctl disable firewalld# 停用NetworkManagesystemctl stop NetworkManager
systemctl disable NetworkManager# 重啟網絡服務systemctl restart netword