中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

無錫網(wǎng)站制作的公司小紅書推廣怎么收費

無錫網(wǎng)站制作的公司,小紅書推廣怎么收費,wordpress友鏈圖標,網(wǎng)站開發(fā)發(fā)布Linux 之 shell 腳本 1、腳本的格式要求2、shell 腳本常用執(zhí)行方式2.1、絕對路徑或相對路徑方式2.2、sh腳本方式(不推薦) 3、shell 的變量3.1、定義 shell 變量3.2、將命令返回值賦值給變量 (重點)3.3、設(shè)置環(huán)境變量3.4、位置參數(shù)…

Linux 之 shell 腳本

  • 1、腳本的格式要求
  • 2、shell 腳本常用執(zhí)行方式
    • 2.1、絕對路徑或相對路徑方式
    • 2.2、sh+腳本方式(不推薦)
  • 3、shell 的變量
    • 3.1、定義 shell 變量
    • 3.2、將命令返回值賦值給變量 (重點)
    • 3.3、設(shè)置環(huán)境變量
    • 3.4、位置參數(shù)變量
    • 3.5、預(yù)定義變量
  • 4、運算符
  • 5、條件判斷
  • 6、流程控制
    • 6.1、if 判斷
    • 6.2、case 語句
    • 6.3、for 循環(huán)
    • 6.4、while 循環(huán)
  • 7、read 讀取控制臺輸入
  • 8、函數(shù)
    • 8.1、常用系統(tǒng)函數(shù) basename
    • 8.2、常用系統(tǒng)函數(shù) dirname
    • 8.3、自定義函數(shù)
  • 9、shell 綜合案例

?
???????shell 是一個命令行解釋器,它為用戶提供了一個向 linux 內(nèi)核發(fā)送請求,以便運行程序的界面系統(tǒng)級程序。用戶可以使用 shell 來啟動、掛起、停止甚至編寫一些程序。

?

1、腳本的格式要求

  • ①、腳本以 #!/bin/bash 開頭。

  • ②、腳本需要有可執(zhí)行權(quán)限。

?

2、shell 腳本常用執(zhí)行方式

?

2.1、絕對路徑或相對路徑方式

?

# 輸入shell 腳本的絕對路徑或相對路徑的方式,執(zhí)行shell腳本# 首先 需要對 shell 腳本 賦執(zhí)行權(quán)限
chmod 744 test_shell.sh
# 相對路徑的方式執(zhí)行
./test_shell.sh
# 絕對路徑的方式執(zhí)行
/usr/myshell/test_shell.sh

?

2.2、sh+腳本方式(不推薦)

?
使用該方式不需要 賦予shell腳本執(zhí)行權(quán)限,直接執(zhí)行即可。

sh ./test_shell2.sh

?

3、shell 的變量

?
shell 的變量分為:系統(tǒng)變量 和 用戶自定義變量。

  • 系統(tǒng)變量: H O M E 、 HOME、 HOME、PWD、 S H E L L 、 SHELL、 SHELLUSER 等

    # 輸出系統(tǒng)變量
    echo "path = $PATH"
    echo "user = $USER"
    

3.1、定義 shell 變量

?

# 定義變量:  變量=值,示例:
A=100
# 撤銷變量:  unset 變量, 示例:
unset A
# 聲明靜態(tài)變量:readonly 變量。注意:靜態(tài)變量不能 unset。示例:
readonly B=101
# 把變量提升為全局環(huán)境變量,可供其他shell程序使用。

?

定義變量的規(guī)則

  • ① 變量名稱可以由字母、數(shù)字和下劃線組成,但不能以數(shù)字開頭。
  • 等號兩側(cè)不能有空格。
  • 變量名稱一般習(xí)慣為大寫。

?

3.2、將命令返回值賦值給變量 (重點)

?

# 兩種方式
# 方式一:反引號,運行里面的命令,并把結(jié)果返回給變量。示例:
A=`ls -la`
# 方式二:等同于反引號。示例:
A=$(ls -la)

?

3.3、設(shè)置環(huán)境變量

?
環(huán)境變量所在文件:

1.系統(tǒng)級:

  • ① /etc/profile:該文件是用戶登錄時,操作系統(tǒng)定制用戶環(huán)境時使用的第一個文件,應(yīng)用于登錄到系統(tǒng)的每一個用戶。該文件一般是調(diào)用/etc/bash.bashrc文件。
    /etc/bash.bashrc:系統(tǒng)級的bashrc文件。
  • ② /etc/environment:在登錄時操作系統(tǒng)使用的第二個文件,系統(tǒng)在讀取你自己的profile前,設(shè)置環(huán)境文件的環(huán)境變量。

2.用戶級(這些文件處于家目錄下):

  • ① ~/.profile:每個用戶都可使用該文件輸入專用于自己使用的shell信息,當(dāng)用戶登錄時,該文件僅僅執(zhí)行一次!默認情況下,他設(shè)置一些環(huán)境變量,執(zhí)行用戶的.bashrc文件。這里是推薦放置個人設(shè)置的地方
  • ② ~/.bashrc:該文件包含專用于你的bash shell的bash信息,當(dāng)?shù)卿洉r以及每次打開新的shell時,該該文件被讀取。不推薦放到這兒,因為每開一個shell,這個文件會讀取一次,效率肯定有影響。
    ~/.bash_profile or ~./bash_login:這里沒有引用作者的,下面會提到
    ~/.pam_environment:用戶級的環(huán)境變量設(shè)置文件,沒有做測試,不知道管不管用。

?

# 基本語法
# 將 shell 變量輸出為環(huán)境變量
export 變量名=變量值
# 讓修改后的配置信息立即生效
source 配置文件
# 查詢環(huán)境變量的值
echo $變量名# 示例:
export TOMCAT_HOME=/opt/tomcat
# 生效
source /etc/profile

?

3.4、位置參數(shù)變量

?
當(dāng)我們執(zhí)行一個 shell 腳本時,某些場景需要獲取到執(zhí)行 shell腳本的命令行參數(shù)信息,那么就可以使用位置參數(shù)變量。

基本語法:

命令功能說明
$nn 為數(shù)字,$0 代表命令本身,$1- 9 代表第一個到第九個參數(shù),十以上的參數(shù)需要用大括號包含,例: 9 代表第一個到第九個參數(shù),十以上的參數(shù)需要用大括號包含,例: 9代表第一個到第九個參數(shù),十以上的參數(shù)需要用大括號包含,例:{10}
$*代表命令行中所有的參數(shù),$*把所有的參數(shù)看成一個整體
$@ @ 也代表命令行中所有的參數(shù),不過 @也代表命令行中所有的參數(shù),不過 @也代表命令行中所有的參數(shù),不過@把每個參數(shù)區(qū)分對待
$#代表命令行中所有參數(shù)的個數(shù)

?

[root@myCentos6 zim]# vim test.sh#!/bin/bash
echo "獲取并打印命令行參數(shù)"
echo "$0 $1 $2"
echo "打印全部參數(shù): $*"
echo "打印全部參數(shù)-> $@"
echo "參數(shù)個數(shù) = $#"[root@myCentos6 zim]# ls -l
總用量 4
-rw-r--r--. 1 root root 154 828 11:45 test.sh
[root@myCentos6 zim]# chmod 744 test.sh
[root@myCentos6 zim]# ls -l
總用量 4
-rwxr--r--. 1 root root 154 828 11:45 test.sh
[root@myCentos6 zim]# ./test.sh aa 100
獲取并打印命令行參數(shù)
./test.sh aa 100
打印全部參數(shù): aa 100
打印全部參數(shù)-> aa 100
參數(shù)個數(shù) = 2
[root@myCentos6 zim]# 

?

3.5、預(yù)定義變量

?
???????預(yù)定義變量,就是 shell 腳本設(shè)計者事先已經(jīng)定義好的變量,可以直接在shell腳本中使用。預(yù)定義變量是一開始執(zhí)行Script腳本時就會設(shè)定,且不能被修改,預(yù)定義變量當(dāng)一執(zhí)行程序時就有了。

基本用法:

  • $$ :當(dāng)前進程的進程號PID。

  • $! :后臺運行的最后一個進程的進程號pid。

  • $? :最后一次執(zhí)行的命令的返回狀態(tài)。如果這個變量的值為0,證明上一個命令正確執(zhí)行;如果這個變量的值為非0(具體是哪個數(shù)字,由命令自己決定),則證明上一個命令執(zhí)行錯誤。

?

4、運算符

?

# 基本語法
# 方式一:  $((運算式)) 示例:
RESULT=$((2+3)*4)
echo "result=$RESULT"
# 方式二:   $[運算式]  示例:
RESULT=$[(2+3)*4]
echo "result=$RESULT"
# 求兩個參數(shù)的和
SUM=$[$PARAM1+$PARAM2]
# 方式三:   expr m+n  注意:expr 運算符間要有空格
# expr \*,/,%  分別代表 乘,除,取余
TEMP=`expr 2 + 3`
RESULT=`expr $TEMP \* 4`
echo "result=RESULT"

?

5、條件判斷

?

# 判斷語句,基本語法. 注意:condition 前后要有空格
# 非空返回 true,可使用 $? 驗證(0 為 true, >1 為 false)
[ condition ]
# 應(yīng)用實例: [ test_condition ]  返回true
[ test_condition ] 
# [] 返回false
[]
# 條件滿足,執(zhí)行后面的語句
[ condition ] && echo "ok" || echo "not ok"# 案例:"ok 是否等于 ok"
if [ "ok100" = "ok" ]
then echo "equal"
fi# 案例:/root/install.log 目錄中的文件是否存在
if [ -e /root/install.log ]
then echo "文件存在"
fi    

?
常用判斷條件

  • 兩個整數(shù)的比較
    • = 字符串比較
    • -lt 小于
    • -le 小于等于
    • -eq 等于
    • -gt 大于
    • -ge 大于等于
    • -ne 不等于
  • 按照文件權(quán)限進行判斷
    • -r 有讀的權(quán)限 [ -r 文件 ] (注意前后有空格)
    • -w 有寫權(quán)限
    • -x 有執(zhí)行權(quán)限
  • 按照文件類型進行判斷
    • -f 文件存在并且是一個常規(guī)的文件
    • -e 文件存在
    • -d 文件存在并是一個目錄

?

6、流程控制

?

6.1、if 判斷

?

# 基本語法
if [ 條件判斷式 ];then程序
fi
# 或者 基本語法  (推薦使用)
if [ 條件判斷式 ]then程序elif [ 條件判斷式 ]then 程序fi  

注意事項:[ 條件判斷式 ] ,中括號和條件判斷式之間必須有空格。

?

6.2、case 語句

?

# 基本語法
case $變量名 in
"值1")如果變量的值等于值1,則執(zhí)行程序1;;
"值2")  如果變量的值等于值2,則執(zhí)行程序2;;… 省略其他分支 …
*)如果變量的值都不是以上的值,則執(zhí)行此程序;;
esac# 應(yīng)用示例:命令行參數(shù)是 1時,輸出"周一",是2時輸出"周二",其他情況輸出"other"
#!/bin/bash
case $1 in 
"1")echo "周一";;
"2")echo "周二";;
*)echo "other";;
esac  

?

6.3、for 循環(huán)

?

# 基本語法1
for 變量 in 值1 值2 值3…do 程序done# 示例: 打印命令行輸入的參數(shù)
#!/bin/bash
for i in "$*"
doecho "the param is $i"
done
# 或
for j in "$@"doecho "the num is $j"
done     # 基本語法2
for ((初始值;循環(huán)控制條件;變量變化))do 程序
done# 示例:從1加到100 的值,輸出顯示
#!/bin/bash
SUM=0
for((i=1.i<=100;i++))
do SUM=$[$SUM+$i]
done
echo "sum=$SUM"

?

6.4、while 循環(huán)

?

# 基本語法1
while[ 條件判斷式 ]
do 程序
done
# 應(yīng)用示例:從命令行輸入一個數(shù)n,統(tǒng)計從1+…+ n 的值是多少
#!/bin/bash
SUM=0
i=0
while[ $i -le $1 ]
doSUM=$[$SUM+$i]i=$[$i+1]
done
echo "sum= $SUM"

?

7、read 讀取控制臺輸入

?

# 基本語法
read [選項] [參數(shù)]
# 常用選項-p : 指定讀取值時的提示符-t : 指定讀取值時等待的時間(秒),如果沒有在指定的時間內(nèi)輸入,就不等待
# 常用參數(shù)變量:指定讀取值的變量名# 應(yīng)用實例1: 讀取控制臺輸入的 num 值 并打印
#!/bin/bash
read -p "請輸入一個數(shù)num1=" NUM1
echo "您輸入的值時num1=$NUM1"# 應(yīng)用實例2: 讀取控制臺輸入的 num 值,在10秒內(nèi)輸入,并打印
#!/bin/bash
read -t 10 -p "請輸入一個數(shù)num2=" NUM2
echo "您輸入的值時num2=$NUM2"

?

8、函數(shù)

?
shell 編程和其他編程語言一樣,有系統(tǒng)函數(shù),也可以自定義函數(shù)。

8.1、常用系統(tǒng)函數(shù) basename

?

# basename 函數(shù)功能:返回完整路徑最后 / 的部分,常用于獲取文件名
# suffix為后綴,如果suffix被指定了,basename會將pathname或string中的suffix去掉
basename [pathname] [suffix]
# 應(yīng)用示例: 返回/home/aaa/test.txt 的 "test"部分
basename /home/aaa/test.txt  .txt
# 應(yīng)用示例: 返回/home/aaa/test.txt 的 "test.txt"部分
basename /home/aaa/test.txt

?

8.2、常用系統(tǒng)函數(shù) dirname

?

# dirname 函數(shù)功能:返回完整路徑最后 / 的前面部分,常用于返回路勁部分
# 從給定的包含絕對路徑的文件名中去除文件名(非目錄的部分),然后返回目錄部分。
dirname 文件絕對路徑# 應(yīng)用實例: 返回 /home/aaa/test.txt 的 /home/aaa
dirname /home/aaa/test.txt

?

8.3、自定義函數(shù)

?

# 基本語法
[ function ] funname[()]
{Action;[return int;]
}
# 調(diào)用直接寫函數(shù)名: funname [值]# 應(yīng)用實例:計算輸入兩個參數(shù)的和 (read),getSum
#!/bin/bash
function getSum() {SUM=$[$n1+$n2]echo "sum=$SUM"
}read -p "請輸入第一個數(shù)n1" n1
read -p "請輸入第二個數(shù)n2" n2getSum $n1 $n2

?

9、shell 綜合案例

?
需求:

  • ① 每天凌晨 2:10 備份數(shù)據(jù)庫 myDb 到 /data/backup/db

  • ② 備份開始和備份結(jié)束,能夠給出相應(yīng)的提示信息

  • ③ 備份后的文件要求以備份時間為文件名,并打包成 .tar.gz 的形式,比如:2023-08-28_230201.tar.gz

  • ④ 在備份的同時,檢查是否有10天前備份的數(shù)據(jù)庫文件,如果有就將其刪除。

在 /usr/sbin 目錄下創(chuàng)建 mysql_db_backup.sh 腳本

vim /usr/sbin/mysql_db_backup.sh

編寫 mysql_db_backup.sh 腳本

#!/bin/bash
# 備份的路徑
BACKUP=/data/backup/db
# 當(dāng)前的時間作為文件名
DATETIME=$(date +%Y_%m_%d_%H%M%S)
echo "==開始備份數(shù)據(jù)庫myDb=="
echo "==備份的路徑是 $BACKUP/$DATETIME.tar.gz=="
# 主機
HOST=localhost
# 用戶名
DB_USER=root
# 密碼
DB_PWD=root
# 備份數(shù)據(jù)庫名稱
DATABASE=myDB
# 創(chuàng)建備份的路徑
# 如果備份的路徑文件夾存在就直接使用,否則就創(chuàng)建
[ ! -d "$BACKUP/$DATETIME" ] &&  mkdir -p "$BACKUP/$DATETIME"
# 執(zhí)行 mysql 的備份數(shù)據(jù)庫的指令
mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST  $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz
# 打包備份文件
cd $BACKUP
tar -zcvf $DATETIME.tar.gz $DATETIME
# 刪除臨時目錄
rm -rf $BACKUP/$DATETIME
# 刪除10天前的備份文件
find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;
echo "==備份文件成功=="

crontab 設(shè)置定時任務(wù)

10 2 * * * /usr/sbin/mysql_db_backup.sh

?
?
?
?
?
?
?
.

http://www.risenshineclean.com/news/46534.html

相關(guān)文章:

  • 怎么開網(wǎng)站做網(wǎng)紅怎么提高百度搜索排名
  • 做視頻網(wǎng)站賺做視頻網(wǎng)站賺百度服務(wù)中心投訴
  • 大港油田建設(shè)官方網(wǎng)站谷歌google地圖
  • 京東網(wǎng)站怎么做seo是什么縮寫
  • 做兼職的網(wǎng)站貼吧網(wǎng)絡(luò)怎么推廣自己的產(chǎn)品
  • 長清治做網(wǎng)站b站推廣渠道
  • 網(wǎng)站做多長時間才會成功舉例一個成功的網(wǎng)絡(luò)營銷案例
  • 東莞住建局投訴電話是多少南寧seo平臺標準
  • 做網(wǎng)站 需要工信部備案嗎網(wǎng)站開發(fā)公司排名
  • 自己的電腦做服務(wù)器 并建網(wǎng)站東莞做網(wǎng)站推廣公司
  • 虛擬機做的網(wǎng)站怎么讓外網(wǎng)訪問不了個人博客網(wǎng)站怎么做
  • wordpress主題存放微博關(guān)鍵詞排名優(yōu)化
  • 做刷網(wǎng)站怎么賺錢杭州上城區(qū)抖音seo如何
  • 網(wǎng)站開發(fā)設(shè)計師薪資個人網(wǎng)頁制作
  • 怎樣做免費網(wǎng)站建設(shè)google推廣有效果嗎
  • 做國際網(wǎng)站花錢嗎內(nèi)蒙古seo
  • 企業(yè)做網(wǎng)站需要租服務(wù)器嗎培訓(xùn)seo哪家學(xué)校好
  • 網(wǎng)站建設(shè)與網(wǎng)頁制作盒子模型360優(yōu)化大師官方最新
  • 海南新聞中心網(wǎng)站seo批量查詢工具
  • 南陽網(wǎng)站推廣外包電商平臺排行榜
  • 網(wǎng)站建設(shè)自學(xué) 優(yōu)幫云比較好的網(wǎng)絡(luò)優(yōu)化公司
  • 專門做ppt的網(wǎng)站名稱北京百度公司地址在哪里
  • 深圳 網(wǎng)站開發(fā)公司電話seo導(dǎo)航
  • 大連市營商環(huán)境建設(shè)監(jiān)督局網(wǎng)站徐州網(wǎng)頁關(guān)鍵詞優(yōu)化
  • 公司門戶網(wǎng)站該怎么做ciliba最佳磁力搜索引擎
  • java公司網(wǎng)站怎么做電商網(wǎng)址
  • 網(wǎng)站開發(fā)項目案例百度一下網(wǎng)頁首頁
  • 做視頻類網(wǎng)站需要哪些許可證網(wǎng)絡(luò)運營seo是什么
  • 深圳市建設(shè)信息網(wǎng)官網(wǎng)寧波seo怎么推廣
  • 電子商務(wù)網(wǎng)站分析搜索引擎營銷的過程