日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

shell编程基础-简述

發布時間:2024/4/17 编程问答 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 shell编程基础-简述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.1?前言

1.1.1?為什么學Shell

Shell腳本語言是實現Linux/UNIX系統管理及自動化運維所必備的重要工具,?Linux/UNIX系統的底層及基礎應用軟件的核心大都涉及Shell腳本的內容。每一個合格?的Linux系統管理員或運維工程師,都需要能夠熟練地編寫Shell腳本語言,并能夠閱?讀系統及各類軟件附帶的Shell腳本內容。只有這樣才能提升運維人員的工作效率,適?應曰益復雜的工作環境,減少不必要的重復工作,從而為個人的職場發展奠定較好的基礎

1.1.2?什么是shell

Shell是一個命令解釋器,它在操作系統的最外層,負責直接與用戶對話,把用戶的輸入解釋給操作系統,并處理各種各樣的操作系統的輸出結果,輸出屏幕返回給用戶。

這種對話方式可以是:

交互的方式:從鍵盤輸入命令,通過/bin/bash的解析,可以立即得到Shell的回應

[root@clsn ~]# ls anaconda-ks.cfg [root@clsn ~]# echo ls |bash anaconda-ks.cfg

非交互的方式:?腳本

1.1.3?什么是Shell腳本

? 命令、變量和流程控制語句等有機的結合起來

???????? shell腳本擅長處理純文本類型的數據,而linux中,幾乎所有的配置文件,日志,都是純文本類型文件

1.1.4?腳本語言的種類

一、編譯型語言

定義:指用專用的編譯器,針對特定的操作平臺(操作系統)將某種高級語言源代碼一次性翻譯成可被硬件平臺直接運行的二進制機器碼(具有操作數,指令、及相應的格式),這個過程叫做編譯(./configure? make makeinstall?);編譯好的可執行性文件(.exe),可在相對應的平臺上運行(移植性差,但運行效率高)。。

典型的編譯型語言有,?C語言、C++等。

另外,Java語言是一門很特殊的語言,Java程序需要進行編譯步驟,但并不會生成特定平臺的二進制機器碼,它編譯后生成的是一種與平臺無關的字節碼文件(*.class)(移植性好的原因),這種字節碼自然不能被平臺直接執行,運行時需要由解釋器解釋成相應平臺的二進制機器碼文件;大多數人認為Java是一種編譯型語言,但我們說Java即是編譯型語言,也是解釋型語言也并沒有錯。

二、解釋型語言

定義:指用專門解釋器對源程序逐行解釋成特定平臺的機器碼并立即執行的語言;相當于把編譯型語言的編譯鏈接過程混到一起同時完成的。

解釋型語言執行效率較低,且不能脫離解釋器運行,但它的跨平臺型比較容易,只需提供特定解釋器即可。

常見的解釋型語言有,?Python(同時是腳本語言)與Ruby等。

三、腳本語言

定義:為了縮短傳統的編寫-編譯-鏈接-運行(edit-compile-link-run)過程而創建的計算機編程語言。

特點:程序代碼即是最終的執行文件,只是這個過程需要解釋器的參與,所以說腳本語言與解釋型語言有很大的聯系。腳本語言通常是被解釋執行的,而且程序是文本文件。

典型的腳本語言有,JavaScript,Python,shell等。

其他常用的腳本語句種類

PHP是網頁程序,也是腳本語言。是一款更專注于web頁面開發(前端展示)的腳本語言,例如:Dedecms,discuz。PHP程序也可以處理系統日志,配置文件等,php也可以調用系統命令。

Perl腳本語言。比shell腳本強大很多,語法靈活、復雜,實現方式很多,不易讀,團隊協作困難,但仍不失為很好的腳本語言,存世大量的程序軟件。MHA高可用Perl寫的

Python,不但可以做腳本程序開發,也可以實現web程序以及軟件的開發。近兩年越來越多的公司都會要求會Python。

Shell腳本與php/perl/python語言的區別和優勢?

shell腳本的優勢在于處理操作系統底層的業務?(linux系統內部的應用都是shell腳本完成)因為有大量的linux系統命令為它做支撐。2000多個命令都是shell腳本編程的有力支撐,特別是grep、awk、sed等。例如:一鍵軟件安裝、優化、監控報警腳本,常規的業務應用,shell開發更簡單快速,符合運維的簡單、易用、高效原則.

  PHP、Python優勢在于開發運維工具以及web界面的管理工具,web業務的開發等。處理一鍵軟件安裝、優化,報警腳本。常規業務的應用等php/python也是能夠做到的。但是開發效率和復雜比用shell就差很多了。

系統環境說明

[root@clsn scripts]# cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) [root@clsn scripts]# uname -r 3.10.0-693.el7.x86_64 [root@clsn scripts]# getenforce Disabled [root@clsn scripts]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: man:firewalld(1)

1.1.5?系統中的shell

查看系統中的命解釋器

[root@clsn ~]# cat /etc/shells /bin/sh /bin/bash /sbin/nologin /usr/bin/sh /usr/bin/bash /usr/sbin/nologin

常用操作系統的默認shell

1.Linux是Bourne Again shell(bash)

2.Solaris和FreeBSD缺省的是Bourne shell(sh)

3.AIX下是Korn Shell(ksh)

4.HP-UX缺省的是POSIX shell(sh)

[root@clsn ~]# echo $SHELL /bin/bash

bash版本

[root@clsn scripts]# bash -version GNU bash, 版本 4.2.46(2)-release (x86_64-redhat-linux-gnu) Copyright (C) 2011 Free Software Foundation, Inc. 許可證 GPLv3+: GNU GPL 許可證版本3或者更高 <http://gnu.org/licenses/gpl.html>這是自由軟件,您可以自由地更改和重新發布。 在法律允許的范圍內沒有擔保.?

bash?破殼漏洞

使用 命令 env x='() { :;}; echo be careful' bash -c "echo this is a test" 如果返回結果為一行,則為正常,[root@clsn ~]# env x='() { :;}; echo be careful' bash -c "echo this is a test"this is a test#解決辦法 升級當前的bash版本yum install update bash

sh與bash?的關系

[root@clsn ~]# ll /bin/sh lrwxrwxrwx. 1 root root 4 11月 13 11:15 /bin/sh -> bash

/bin與?/user/bin?的關系

[root@clsn ~]# ll /bin -d lrwxrwxrwx. 1 root root 7 11月 13 11:15 /bin -> usr/bin

1.2?腳本書寫規范

1.2.1?腳本統一存放目錄

[root@clsn ~]# mkdir -p /server/scripts/ [root@clsn ~]# cd /server/scripts/

1.2.2?選擇解釋器

注意格式?↓

其中開頭的"#!"字符又稱為幻數,在執行bash腳本的時候,內核會根據"#!"后的解釋器來確定該用那個程序解釋這個腳本中的內容。

[root@clsn scripts]# head -1 /etc/init.d/* ==> /etc/init.d/functions <== # -*-Shell-script-*-==> /etc/init.d/netconsole <== #!/bin/bash==> /etc/init.d/network <== #! /bin/bash

1.2.3?編輯腳本使用vim

使用?.vimrc?文件,能夠快速的生成開頭的注釋信息

[root@clsn scripts]# cat ~/.vimrc autocmd BufNewFile *.py,*.cc,*.sh,*.java exec ":call SetTitle()"func SetTitle()if expand("%:e") == 'sh'call setline(1,"#!/bin/bash")call setline(2, "##############################################################")call setline(3, "# File Name: ".expand("%"))call setline(4, "# Version: V1.0")call setline(5, "# Author: clsn")call setline(6, "# Organization: http://blog.znix.top")call setline(7, "# Created Time : ".strftime("%F %T"))call setline(8, "# Description:")call setline(9, "##############################################################")call setline(10, "")endif endfunc

使用后的效果

[root@clsn scripts]# cat scripts_test.sh #!/bin/bash ############################################################## # File Name: scripts_test.sh # Version: V1.0 # Author: clsn # Organization: http://blog.znix.top # Created Time : 2017-12-04 11:39:57 # Description: First scripts file ##############################################################

在Shell腳本中,跟在#后面的內容表示注釋。注釋部分不會被執行,僅給人看。注釋可以自成一行,也可以跟在命令后面,與命令同行。要養成寫注釋的習慣,方便自己與他人。

最好不用中文注釋,因為在不同字符集的系統會出現亂碼。(字符集為zh_CN.UTF-8,為中文)。

1.2.4?文件名規范

?????????名字要有意義,并且結尾以?.sh?結束

1.2.5?開發的規范和習慣小結

1)?放在統一的目錄

2)?腳本以.sh為擴展名

3)?開頭指定腳本解釋器。

4)?開頭加版本版權等信息,可配置~/.vimrc文件自動添加。

5)?腳本不要用中文注釋,盡量用英文注釋。

6)?代碼書寫優秀習慣

? a、成對的內容一次性寫出來,防止遺漏,如[? ]、' '、" "等

? b、[? ]兩端要有空格,先輸入[? ],退格,輸入2個空格,再退格寫。

? c、流程控制語句一次書寫完,再添加內容。(if?條件?; then ?內容;fi)ddd

? d、通過縮進讓代碼易讀。

? f、腳本中的引號都是英文狀態下的引號,其他字符也是英文狀態。

1.3 shell腳本的執行

1.3.1?執行腳本的辦法

sh/bash scripts.sh chown +x ./scripts.sh && ./scripts.sh source scripts.sh . (空格) scripts.sh cat oldboyedu.sh |bash # 效率較低

source?與?.?(點)?的作用

soucre命令

[root@clsn ~]# help source |head -2 source: source 文件名 [參數]在當前 shell 中執行一個文件中的命令。

. (點)

[root@clsn scripts]# help . |head -2 .: . 文件名 [參數]在當前 shell 中執行一個文件中的命令。

1.3.2 sh?于?source的區別

[root@clsn scripts]# sh clsn_test.sh Hello World! [root@clsn scripts]# echo $clsn # sh 新建一個Shell窗口(新建一個進程)執行一個文件中的命令。[root@clsn scripts]# source clsn_test.sh Hello World! [root@clsn scripts]# echo $clsn Hello World!

面試題:

問sh test.sh后echo $user返回的結果__空_??

[root@oldboy scripts]# cat test.sh #!/bin/bash user=`whoami`

1.4 Shell的變量

1.4.1?什么是變量

變量可以分為兩類:環境變量(全局變量)和普通變量(局部變量)

  環境變量也可稱為全局變量,可以在創建他們的Shell及其派生出來的任意子進程shell中使用,環境變量又可分為自定義環境變量和Bash內置的環境變量

  普通變量也可稱為局部變量,只能在創建他們的Shell函數或Shell腳本中使用。普通變量一般是由開發者用戶開發腳本程序時創建的。

?????????特殊變量

1.4.2?環境變量

使用?env/declare/set/export -p?命令查看系統中的環境變量,這三個命令的的輸出方式稍有不同。

[root@clsn scripts]# env XDG_SESSION_ID=1 HOSTNAME=clsn TERM=linux SHELL=/bin/bash HISTSIZE=1000 SSH_CLIENT=10.0.0.1 5537 22 SSH_TTY=/dev/pts/0 USER=root ~~~

?????????輸出一個系統中的?環境變量

[root@clsn ~]# echo $LANG zh_CN.UTF-8

1.4.3?普通變量

本地變量在用戶當前的Shell生存期的腳本中使用。例如,本地變量OLDBOY取值為bingbing,這個值在用戶當前Shell生存期中有意義。如果在Shell中啟動另一個進程或退出,本地變量值將無效???????

定義普通變量實踐

[root@clsn ~]# a=1 [root@clsn ~]# b='2' [root@clsn ~]# c="3" [root@clsn ~]# echo "$a" 1 [root@clsn ~]# echo "$b" 2 [root@clsn ~]# echo "${c}"

提示:$變量名表示輸出變量,可以用$c和${c}兩種用法

小結:連續普通字符串內容賦值給變量,不管用什么引號或者不用引號,它的內容是什么,打印變量就輸出什么

1.4.4 export命令

[root@clsn ~]# help export export: export [-fn] [名稱[=值] ...] 或 export -p 為 shell 變量設定導出屬性。標記每個 NAME 名稱為自動導出到后續命令執行的環境。如果提供了 VALUE 則導出前將 VALUE 作為賦值。

export命令的說明

當前shell窗口及子shell窗口生效

在新開的shell窗口不會生效,生效需要寫入配置文件

#?定義變量

[root@clsn scripts]# CSLN=clsn [root@clsn scripts]# export CSLN1=1

#?當前窗口查看

[root@clsn scripts]# echo $CSLN clsn [root@clsn scripts]# echo $CSLN1 1

#?編寫測試腳本

[root@clsn scripts]# vim quanju.sh #!/bin/bash echo $CSLN echo $CSLN1

#?使用sh執行

[root@clsn scripts]# sh quanju.sh 1

#?使用source?執行

[root@clsn scripts]# source quanju.sh clsn 1

1.4.5?環境變量相關配置文件

/etc/proflie

/etc/bashrc

~/.bashrc

~/.bash_profile

/etc/proflie.d/? #?目錄

四文件讀取順序(CentOS6和7都一樣)

①?/etc/profile

②?~/.bash_profile

③?~/.bashrc

④?/etc/bashrc

文件讀取過程示意圖

驗證四文件讀取順序的方法

sed -i '1a echo "$(date +%T-%s) /etc/profile1" >>/tmp/clsn' /etc/profile sed -i '$a echo "$(date +%T-%s) /etc/profile2" >>/tmp/clsn' /etc/profile sed -i '1a echo "$(date +%T-%s) /etc/bashrc1" >>/tmp/clsn' /etc/bashrc sed -i '$a echo "$(date +%T-%s) /etc/bashrc2" >>/tmp/clsn' /etc/bashrc sed -i '1a echo "$(date +%T-%s) ~/.bashrc1" >>/tmp/clsn' ~/.bashrc sed -i '$a echo "$(date +%T-%s) ~/.bashrc2" >>/tmp/clsn' ~/.bashrc sed -i '1a echo "$(date +%T-%s) ~/.bash_profile1" >>/tmp/clsn' ~/.bash_profile sed -i '$a echo "$(date +%T-%s) ~/.bash_profile2" >>/tmp/clsn' ~/.bash_profile

1.4.6?環境變量的知識小結

ü?變量名通常要大寫。

ü?變量可以在自身的Shell及子Shell中使用。

ü?常用export來定義環境變量。

ü?執行env默認可以顯示所有的環境變量名稱及對應的值。

ü?輸出時用“$變量名”,取消時用“unset變量名”。

ü?書寫crond定時任務時要注意,腳本要用到的環境變量最好先在所執行的Shell腳本中重新定義。

ü?如果希望環境變量永久生效,則可以將其放在用戶環境變量文件或全局環境變量文件里。

1.4.7?變量中引號的使用

只有在變量的值中有空格的時候,會使用引號。

單引號與雙引號的區別在于,是否能夠解析特殊符號。

[root@clsn ~]# name=znix [root@clsn ~]# name2='clsn' [root@clsn ~]# name3="http://blog.znix.top" [root@clsn ~]# echo $name znix [root@clsn ~]# echo $name2 clsn [root@clsn ~]# echo $name3 http://blog.znix.top [root@clsn ~]# name4='cl sn' [root@clsn ~]# echo $name4 cl sn [root@clsn ~]# name5="cl sn" [root@clsn ~]# echo $name5 cl sn [root@clsn ~]# name6='cl sn $PWD' [root@clsn ~]# echo $name6 cl sn $PWD [root@clsn ~]# name6="cl sn $PWD" [root@clsn ~]# echo $name6 cl sn /root

1.4.8?普通變量的要求

1)?????內容是純數字、簡單的連續字符(內容中不帶任何空格)時,定義時可以不加任何引號,例如:

a.ClsnAge=22

b.NETWORKING=yes

2)?????沒有特殊情況時,字符串一律用雙引號定義賦值,特別是多個字符串中間有空格時,例如:

a.NFSD_MODULE="no load"

b.MyName="Oldboy is a handsome boy."

3)?????當變量里的內容需要原樣輸出時,要用單引號(M),這樣的需求極少,例如:

a.OLDBOY_NAME='OLDBOY'

變量使用反引號賦值

[root@clsn scripts]# time=`date` [root@clsn scripts]# echo $time 2017年 12月 05日 星期二 09:02:06 CST[root@clsn scripts]# file=`ls` [root@clsn scripts]# echo $file clsn_test.sh panduan.sh quanju.sh yhk.sh

使用${}

打印變量的時候防止出現“金庸新著”的問題

[root@clsn scripts]# time=`date` [root@clsn scripts]# echo $time_day[root@clsn scripts]# echo ${time}_day 2017年 12月 05日 星期二 09:02:06 CST_day [root@clsn scripts]# echo $time-day 2017年 12月 05日 星期二 09:02:06 CST-day

編寫腳本測試${}

# 使用腳本測試[root@clsn scripts]# vim bianliang.sh #!/bin/bash############################################################## File Name: bianliang.sh# Version: V1.0# Author: clsn# Organization: http://blog.znix.top# Created Time : 2017-12-05 09:10:29# Description:#############################################################time=`date`echo $timedayecho ${time}day[root@clsn scripts]# sh bianliang.sh 2017年 12月 05日 星期二 09:11:19 CSTday

1.4.9?定義變量名技巧

1.?變量名只能為字母、數字或下劃線,只能以字母或下劃線開頭。

2.?變量名的定義要有一定的規范,并且要見名知意。

示例:

ClsnAge=22?? ????#<==每個單詞的首字母大寫的寫法

clsn_age=22????? #<==單詞之間用"_"的寫法

clsnAgeSex=man? ?#<==駝峰語法:首個單詞的首字母小寫,其余單詞首字母大寫

CLSNAGE=22?????? #<==單詞全大寫的寫法

3.?一般的變量定義、賦值常用雙引號;簡單連續的字符串可以不加引號;希望原樣輸出時使用單引號。

4.?希望變量的內容是命令的解析結果時,要用反引號'',或者用$()把命令括起來再賦值。

1.5?特殊變量

1.5.1?位置變量

常用的特殊位置參數說明

位置變量

作用說明

$0

獲取當前執行的shell腳本的文件名,如果執行腳本帶路徑那么就包括腳本路徑。

$n

獲取當前執行的shell腳本的第n個參數值,n=1..9,當n為0時表示腳本的文件名,如果n大于9用大括號括起來{10},參數以空格隔開。

$#

獲取當前執行的shell腳本后面接的參數的總個數

$*

獲取當前shell的所有傳參的參數,不加引號同$@;如果給$*加上雙引號,例如:?“$*”,則表示將所有的參數視為單個字符串,相當于“112$3”。

$@

獲取當前shell的所有傳參的參數,不加引號同$*;如果給$@加上雙引號,例如:?“$@”,則表示將所有參數視為不同的獨立字符串,相當于“$1”?“$2”?“$3”?“……”,這是將參數傳遞給其他程序的最佳方式,因為他會保留所有內嵌在每個參數里的任何空白。

當“$*”和“$@”都加雙引號時,兩者有區別,都不加雙引號時,兩者無區別。

0,0,1.$2 ~?參數實踐

[root@clsn scripts]# vim chanshu.sh #!/bin/bash ############################################################# # File Name: chanshu.sh # Version: V1.0 # Author: clsn # Organization: http://blog.znix.top # Created Time : 2017-12-05 09:39:16 # Description: ############################################################# echo $0 echo "第一個參數:" $1 echo "第二個參數:" $2 echo "第11個參數:" ${11} [root@clsn scripts]# sh chanshu.sh chanshu.sh 第一個參數: 第二個參數: 第11個參數: [root@clsn scripts]# sh chanshu.sh 1 2 3 4 5 6 7 8 9 10 11 chanshu.sh 第一個參數: 1 第二個參數: 2 第11個參數: 11

$#?參數實踐

[root@clsn scripts]# vim chanshu.sh ############################################################# # File Name: chanshu.sh # Version: V1.0 # Author: clsn # Organization: http://blog.znix.top # Created Time : 2017-12-05 09:39:16 # Description: #############################################################echo $0 echo "第一個參數:" $1 echo "第二個參數:" $2 echo "第10個參數:" ${10} echo "第11個參數:" ${11} echo "參數個數:" $#[root@clsn scripts]# sh chanshu.sh 55 2 3 4 5 6 7 8 9 10 11 112 chanshu.sh 第一個參數: 55 第二個參數: 2 第10個參數: 10 第11個參數: 11 參數個數: 12

$*?參數實踐

[root@clsn scripts]# vim chanshu.sh ############################################################# # File Name: chanshu.sh # Version: V1.0 # Author: clsn # Organization: http://blog.znix.top # Created Time : 2017-12-05 09:39:16 # Description: #############################################################echo $0 echo "第一個參數:" $1 echo "第二個參數:" $2 echo "第10個參數:" ${10} echo "第11個參數:" ${11} echo "參數個數:" $# echo "參數:" $* "chanshu.sh" 18L, 456C 已寫入 [root@clsn scripts]# sh chanshu.sh 55 2 3 4 5 6 7 8 9 10 11 112 chanshu.sh 第一個參數: 55 第二個參數: 2 第10個參數: 10 第11個參數: 11 參數個數: 12 參數: 55 2 3 4 5 6 7 8 9 10 11 112

$*?與?$@?對比實踐

[root@clsn scripts]# set -- "I am" handsome boy.. [root@clsn scripts]# echo $1 I am [root@clsn scripts]# echo $2 handsome [root@clsn scripts]# echo $3 boy.. [root@clsn scripts]# echo $* I am handsome boy.. [root@clsn scripts]# echo $@ I am handsome boy..[root@clsn scripts]# for i in $*;do echo $i ;done I am handsome boy.. [root@clsn scripts]# for i in $@;do echo $i ;done I am handsome boy.. [root@clsn scripts]# for i in "$@";do echo $i ;done I am handsome boy.. [root@clsn scripts]# for i in "$*";do echo $i ;done I am handsome boy..

1.5.2?進程狀態變量

Shell進程的特殊狀態變量說明

位置變量

作用說明

$?

獲取執行上一個指令的執行狀態返回值(0為成功,非零為失敗),這個變量最常用

$$

獲取當前執行的Shell腳本的進程號(PID),這個變量不常用,了解即可

$!

獲取上一個在后臺工作的進程的進程號(PID),這個變量不常用,了解即可

$_

獲取在此之前執行的命令或腳本的最后一個參數,這個變量不常用,了解即可

進程參數實踐

[root@clsn scripts]# echo $? 0 [root@clsn scripts]# echo $$ 1368 [root@clsn scripts]# echo $![root@clsn scripts]# echo $_ echo

1.5.3 echo參數說明

參數

參數說明

-n

不要追加換行

-e

啟用下列反斜杠轉義的解釋

-E

顯式地抑制對于反斜杠轉義的解釋

`echo'?對下列反斜杠字符進行轉義:

\n

換行

\r

回車

\t

橫向制表符

\b

退格

\v

縱向制表符

\c

抑制更多的輸出

1.6?定義變量的方式

1.6.1?三種定義變量的方式

??1、直接賦值

? 2、傳參?(傳遞參數)

? 3、交互式設置變量,使用read命令

1.6.2 read命令說明

在命令行中使用

[root@clsn scripts]# read 132 [root@clsn scripts]# echo $REPLY 132 [root@clsn scripts]# read clsn 456 [root@clsn scripts]# echo $clsn 456 [root@clsn scripts]# echo $REPLY 132

在腳本中使用

[root@clsn scripts]# vim clsn_test.sh #!/bin/bash read -p '請輸入:' clsnecho $clsn

執行結果

[root@clsn scripts]# sh clsn_test.sh 請輸入:clsn_znix clsn_znix

read命令的幫助說明

[root@clsn scripts]# read --help -bash: read: --: 無效選項 read: 用法:read [-ers] [-a 數組] [-d 分隔符] [-i 緩沖區文字] [-n 讀取字符數] [-N 讀取字符數] [-p 提示符] [-t 超時] [-u 文件描述符] [-s不顯示終端的任何輸入] [名稱 ...]

1.6.3?定義方法實踐

直接賦值方法

[root@clsn scripts]# vim bianliang.sh # File Name: bianliang.sh # Version: V1.0 # Author: clsn # Organization: http://blog.znix.top # Created Time : 2017-12-05 09:10:29 # Description: ############################################################## name=CLSN age=22 sex=Man hobby=`ls` ethFile=/etc/sysconfig/network-scripts/ifcfg-eth0echo $hobby ls $ethFile [root@clsn scripts]# sh bianliang.sh bianliang.sh chanshu.sh clsn.sh clsn_test.sh panduan.sh quanju.sh xiugaizhuji.sh yhk.sh /etc/sysconfig/network-scripts/ifcfg-eth0

傳參?(傳遞參數)

[root@clsn scripts]# vim bianliang.sh ############################################################## # File Name: bianliang.sh # Version: V1.0 # Author: clsn # Organization: http://blog.znix.top # Created Time : 2017-12-05 09:10:29 # Description: ############################################################## name=CLSN age=22 sex=Man hobby=$1 ethFile=$2echo $hobby ls $ethFile [root@clsn scripts]# sh bianliang.sh clsn /etc/hostname clsn /etc/hostname

交互式設置變量?read

[root@clsn scripts]# vim yhk.sh #!/bin/bash ############################################################## # File Name: yhk.sh # Version: V1.0 # Author: clsn # Organization: http://blog.znix.top # Created Time : 2017-12-04 17:01:44 # Description: ############################################################## read -p "請輸入你的銀行卡號:" Yhk read -s -p "請輸入密碼:" miMa echo echo "你的銀行卡號:" $Yhk echo "你的密碼為:" $miMa # 測試結果 [root@clsn scripts]# sh yhk.sh 請輸入你的銀行卡號:123456 請輸入密碼: 你的銀行卡號: 123456 你的密碼為: 123456

1.6.4?寫一個交互腳本,實現能夠定義主機名及IP地址

腳本內容

[root@clsn scripts]# cat xiugaizhuji.sh #!/bin/bash ############################################################# # File Name: jiaohu.sh # Version: V1.0 # Author: clsn # Organization: http://blog.znix.top # Created Time : 2017-12-05 10:55:42 # Description: #############################################################ethFile=/etc/sysconfig/network-scripts/ifcfg-eth[01] Now_eth=`hostname -I|awk -F "[. ]+" '{print $4}'`read -p "請輸入主機名:" Hostname read -p "請輸入IP地址的主機位:" HostIPhostnamectl set-hostname $Hostnamesed -i "s#${Now_eth}#${HostIP}#g" $ethFile read -p "是否重啟服務器:{yes/no}" REbootif [ $REboot == yes ] then echo "系統將在10秒后重啟!"shutdown -r 10 elseecho "請稍后手動重啟系統!" fi

腳本測試結果

[root@clsn scripts]# sh xiugaizhuji.sh 請輸入主機名:clsn 請輸入IP地址的主機位:180 是否重啟服務器:{yes/no}yes 系統將在10秒后重啟! [root@clsn scripts]# sh xiugaizhuji.sh 請輸入主機名:clsn 請輸入IP地址的主機位:180 是否重啟服務器:{yes/no}no 請稍后手動重啟!

1.7?變量的子串

1.7.1?變量子串說明

表達式

說明

${parameter}

返回變量$parameter的內容

${#parameter}

返回變內容的長度(按字符),也適用于特殊變量

${parameterioffset}

在變量${parameter}中,從位置offset之后開始提取子串到結尾

${parameter:offset:length}

在變量${parameter}中,從位置offset之后開始提取長度為length的子串

${parameter#word}

從變量${parameter}開頭開始刪除最短匹配的word子串

${parameter##word}

從變量${parameter}開頭開始刪除最長匹配的word子串

${parameter%word}

從變量${parameter}結尾開始刪除最短匹配的word子串

${parameter%%word}

從變量${parameter}結尾開始刪除最長匹配的word子串

${parameter/pattem/string}

使用string代替第一個匹配的pattern

${parameter//pattem/string}

使用string代替所有匹配的pattern

計算變賦值的長度

[root@clsn scripts]# clsn=http://blog.znix.top [root@clsn scripts]# echo ${clsn} |wc -L 20 [root@clsn scripts]# echo ${#clsn} 20 [root@clsn scripts]# time echo ${clsn} |wc -L 20real 0m0.002s user 0m0.002s sys 0m0.000s [root@clsn scripts]# time echo ${#clsn} 20real 0m0.000s user 0m0.000s sys 0m0.000s

截取變量中的字符

[root@clsn scripts]# clsn=abcABC123ABCabc [root@clsn scripts]# echo ${clsn#abc} ABC123ABCabc [root@clsn scripts]# echo ${clsn##abc} ABC123ABCabc [root@clsn scripts]# echo ${clsn%abc} abcABC123ABC [root@clsn scripts]# echo ${clsn%%abc} abcABC123ABC [root@clsn scripts]# echo ${clsn#a*c} ABC123ABCabc [root@clsn scripts]# echo ${clsn##a*c}[root@clsn scripts]# echo ${clsn%a*c} abcABC123ABC [root@clsn scripts]# echo ${clsn%%a*c}[root@clsn scripts]# echo ${clsn#a*C} 123ABCabc [root@clsn scripts]# echo ${clsn#a*C} 123ABCabc [root@clsn scripts]# echo ${clsn##a*C} abc [root@clsn scripts]# echo ${clsn%a*c} abcABC123ABC [root@clsn scripts]# echo ${clsn%A*c} abcABC123 [root@clsn scripts]# echo ${clsn%%A*c} abc

替換變量內容

[root@clsn scripts]# echo $clsn abcABC123ABCabc [root@clsn scripts]# echo ${clsn/abc/clsn} clsnABC123ABCabc [root@clsn scripts]# echo ${clsn//abc/clsn} clsnABC123ABCclsn

有關上述匹配刪除的小結

#表示從幵頭刪除匹配最短。

##表示從開頭刪除匹配最長。

%表示從結尾刪除匹配最短。

%%表示從結尾刪除匹配最長。

a*c表示匹配的突符串,*表示匹配所有,a*c匹配開頭為a、中間為任意多個字符、結尾為c的字符串。

a*C表示匹配的字符串,*表示匹配所有,a*C匹配開頭為a、中間為任意多個字符、結尾為C的字符串。

有關替換的小結

一個“/”表示替換匹配的第-個字符串。

兩個“/”表示替換匹配的所有字符串。

1.7.2 Shell的特殊擴展變量說明

表達式

${parameter:-word}

如果parameter的變量值為空或未賦值,則會返回word字符串并替代變量的值用途.如果變量未定義,則返回備用的值,防止變量為空值或因未定義而導致異常

${parameter:=word}

如果parameter的變量值為空或未賦值,則設置這個變量值為word,并返回其值。位置變量和特殊變量不適用用途:基本同上一個${parameter>word},但該變量又額外給parameter變量賦值了

${parameter:?word}

如果parameter變量值為空或未賦值,那么word字符串將被作為標準錯誤輸出,否則輸出變量的值。用途:用于捕捉由于變量未定義而導致的錯誤,并退出程序

${parameter:+word}

如果parameter變量值為空或未賦值,則什么都不做,否則word字符串將替代變量的值

特殊變量實踐

腳本內容

[root@clsn scripts]# cat clsn.sh #!/bin/bash ############################################################# # File Name: clsn.sh # Version: V1.0 # Author: clsn # Organization: http://blog.znix.top # Created Time : 2017-12-05 12:13:38 # Description: ############################################################# dir= echo ${dir:-/tmp} echo ${dir} echo ${dir:=/mnt} echo ${dir} dir2= (空格) echo ${dir2-/tmp} echo ${dir2} echo ${dir2:-/tmp} echo ${dir2} echo ${dir2=/mnt} echo ${dir2}

測試結果

[root@clsn scripts]# sh clsn.sh /tmp/mnt /mnt/tmp

至此shell中的變量就都介紹完了

1.8?變量的數值計算

1.8.1?僅支持整數的運算

echo $((數學運算表達式))

# 形式一 [root@clsn scripts]# echo $((1 + 1)) 2 [root@clsn scripts]# echo $((2*7-3/6+5)) 19 # 形式二 [root@clsn scripts]# ((clsn=2*8)) [root@clsn scripts]# echo $clsn 16 # 形式三 [root@clsn scripts]# znix=$((2*7-3/6+5)) [root@clsn scripts]# echo $znix 19

延伸產物(重要)

i++?自增1

i--?自減1

++i

--i

?????????示例:

[root@clsn scripts]# i=1 [root@clsn scripts]# echo $((i++)) 1 [root@clsn scripts]# echo $((i++)) 2 [root@clsn scripts]# echo $((i--)) 3 [root@clsn scripts]# echo $((i--)) 2 [root@clsn scripts]# echo $((i--)) 1 [root@clsn scripts]# echo $((++i)) 1 [root@clsn scripts]# echo $((++i)) 2 [root@clsn scripts]# echo $((++i)) 3 [root@clsn scripts]# echo $((--i)) 2 [root@clsn scripts]# echo $((--i)) 1 [root@clsn scripts]# echo $((--i)) 0

記憶方法:++,--

變量a在前,表達式的值為a,然后a自增或自減,變量a在符號后,表達式值自增或自減,然后a值自增或自減。

let命令

[root@clsn scripts]# i=1 [root@clsn scripts]# i=i+1 [root@clsn scripts]# echo $i i+1[root@clsn scripts]# i=1 [root@clsn scripts]# let i=i+1 [root@clsn scripts]# echo $i 2

expr?命令

1.整數計算

2.判斷擴展名

3.判斷輸入是否為整數,非整數返回值為2

4.計算變量的長度

[root@clsn scripts]# expr 1+1 1+1 [root@clsn scripts]# expr 1 + 1 2 [root@clsn scripts]# expr 1 * 1 expr: 語法錯誤 [root@clsn scripts]# expr 1 \* 1 1

非整數返回值為2?示例:

[root@clsn scripts]# expr 1 + 1 2 [root@clsn scripts]# echo $? 0 [root@clsn scripts]# expr -1 + 1 0 [root@clsn scripts]# echo $? 1 [root@clsn scripts]# expr a + 1 expr: 非整數參數 [root@clsn scripts]# echo $? 2

$[]運算符

[root@clsn scripts]# echo $[1+2] 3 [root@clsn scripts]# echo $[1-2] -1 [root@clsn scripts]# echo $[1*2] 2 [root@clsn scripts]# echo $[1/2] 0

typeset命令進行運算

[root@clsn scripts]# typeset -i A=2017 B=2018 [root@clsn scripts]# A=A+B [root@clsn scripts]# echo $A 4035

1.8.2?可以進行小數運算的命令

bc????命令

# 安裝 bc 依賴于base源 [root@clsn scripts]# yum -y install bc

??交互模式測試bc命令

[root@clsn scripts]# bc bc 1.06.95 Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. 1+1 2 [root@clsn scripts]# echo 1+1.1|bc 2.1

免交互模式測試bc命令

[root@clsn scripts]# echo 'scale=6;1/3'|bc .333333

python?命令

[root@clsn scripts]# file `which yum ` /usr/bin/yum: Python script, ASCII text executable [root@clsn scripts]# python >>> import os >>> os.system('df -h') >>> 1+1.1 2.1 >>>exit()

awk?命令

[root@clsn ~]# echo "7.7 3.8"|awk '{print ($1-$2)}' 3.9 [root@clsn ~]# echo "358 113"|awk '{print ($1-3)/$2}' 3.14159 [root@clsn ~]# echo "3 9"|awk '{print ($1+3)*$2}' 54 [root@backup scripts]# awk BEGIN'{print 1.2+3.3}' 4.5

1.8.3?運算相關練習題

1.8.3.1?【練習題】實現一個加減乘除等功能的計算器

實現腳本:

[root@clsn scripts]# cat jishuanqi.sh #!/bin/bash ############################################################# # File Name: jishuanqi.sh # Version: V1.0 # Author: clsn # Organization: http://blog.znix.top # Created Time : 2017-12-06 08:57:13 # Description: #############################################################read -p "請輸入第一個整數:" a read -p "請輸入第二個整數:" becho $a + $b =$(($a+$b)) echo $a - $b =$(($a-$b)) echo $a \* $b =$(($a*$b)) echo $a / $b =$(($a/$b))

?????????腳本執行過程:

[root@clsn scripts]# sh jishuanqi.sh 請輸入第一個整數:12 請輸入第二個整數:12 12 + 12 =24 12 - 12 =0 12 * 12 =144 12 / 12 =1

精簡方法

[root@clsn scripts]# vim jishuanqi2.sh #!/bin/bash ############################################################# # File Name: jishuanqi2.sh # Version: V1.0 # Author: clsn # Organization: http://blog.znix.top # Created Time : 2017-12-06 15:02:41 # Description: ############################################################# echo $(($1))

?????????腳本執行過程:

[root@clsn scripts]# sh jishuanqi2.sh 1+1 2 [root@clsn scripts]# sh jishuanqi2.sh 1*9 9

1.8.3.2?【練習題】打印結果1+2+3+4+5+6+7+8+9+10=55

腳本內容

[root@clsn scripts]# vim yunshuan.sh #!/bin/bash ############################################################# # File Name: yunshuan.sh # Version: V1.0 # Author: clsn # Organization: http://blog.znix.top # Created Time : 2017-12-06 09:40:31 # Description: #############################################################Num=`seq -s + 1 10` echo $Num=$(($Num))

腳本執行結果

[root@clsn scripts]# sh yunshuan.sh 1+2+3+4+5+6+7+8+9+10=55

1.9?補充說明

shell腳本中批量注釋的方法

<<'EOF' 文件內容 EOF或使用 exit可以注釋其之后的所有內容(類似注釋,實質為不執行后面的內容)

1.9.1?參考文獻

http://blog.csdn.net/lansesl2008/article/details/20558369

https://www.abcdocker.com/abcdocker/269

http://blog.51cto.com/life2death/1657133

轉載于:https://www.cnblogs.com/coolpale/p/8413367.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的shell编程基础-简述的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久久电影日韩 | 性色av免费观看 | 精品999在线观看 | 天天干天天看 | 亚洲综合五月天 | 色综合久久久久久久 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 激情婷婷av | 99爱视频 | 国产网站在线免费观看 | 久久国产精品久久w女人spa | 久久精品女人毛片国产 | 婷婷在线网 | 久久精品视频99 | 国产视频导航 | 在线激情av电影 | 丁香资源影视免费观看 | 黄色三级网站在线观看 | 国产少妇在线观看 | 美女网站在线播放 | 久久久久久久av | 波多野结衣一区 | 天天添夜夜操 | 免费观看av | 日本公妇在线观看高清 | 色亚洲激情 | 日韩中字在线 | 高清一区二区 | 综合影视| 亚洲国产剧情 | 亚洲人成人天堂h久久 | 欧美精品一区二区在线观看 | 欧洲精品视频一区二区 | 国产精品福利在线播放 | 久久论理 | 国产美腿白丝袜足在线av | 天天干,天天操 | 欧美日韩有码 | 99精品视频免费 | 国产午夜精品一区二区三区欧美 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 亚洲三级精品 | 久久久久久久久久影视 | 亚洲精品91天天久久人人 | 免费在线观看午夜视频 | 韩国在线视频一区 | 色婷婷婷| 国产精品白丝jk白祙 | 色婷婷狠狠五月综合天色拍 | 久久精品最新 | 国产999精品久久久影片官网 | 91超国产| 国产成人久久精品 | 国产精品永久在线 | 国产精品69久久久久 | 国产电影黄色av | 成人午夜剧场在线观看 | 中文字幕黄色网 | av888.com | 黄色一级动作片 | 亚洲色图 校园春色 | 中文字幕乱偷在线 | 2018亚洲男人天堂 | aaa免费毛片 | 四月婷婷在线观看 | www.97视频 | 久久精品视频免费观看 | 精品91久久久久 | 一级黄色免费 | 国产三级精品在线 | 国产黄色资源 | 青青草国产精品视频 | 国际精品网 | 久操伊人 | 久久小视频 | 亚洲九九| 五月天激情综合 | 又色又爽又激情的59视频 | 丁香婷婷网 | 日韩大片在线免费观看 | 亚洲爽爽网 | 手机av在线网站 | 天天综合网 天天 | 最近免费中文字幕大全高清10 | a在线观看视频 | 亚洲欧美乱综合图片区小说区 | 国产在线视频导航 | 中文字幕有码在线播放 | 在线观看中文字幕av | 亚洲综合视频在线播放 | 五月婷婷激情综合 | 91精品在线免费视频 | 久久精品国产一区二区电影 | 久久久网站 | 欧美一级特黄高清视频 | 在线 国产 日韩 | 成年人电影毛片 | 久久在草| 久久国产精品第一页 | 五月婷婷色丁香 | 国产成免费视频 | 麻豆视频在线看 | 一区二区三区四区在线免费观看 | 国产又粗又猛又黄又爽的视频 | 日韩在线观看的 | 国产热re99久久6国产精品 | 精品视频中文字幕 | 91大神精品视频在线观看 | 黄色免费观看视频 | 四虎8848免费高清在线观看 | 一级性视频 | 黄网站www | 欧美一级性生活 | 国产精品成人国产乱 | 一区二区三区免费播放 | 手机在线日韩视频 | av韩国在线| 亚洲人精品午夜 | 精品国产乱码久久久久久三级人 | 91精品国产综合久久久久久久 | 久久综合五月婷婷 | 欧美日韩在线观看一区二区三区 | 国产精品理论片在线观看 | 奇米影音四色 | 免费在线观看成人av | 久久久久久久久久久精 | 国产视频97 | 色婷婷综合久久久久中文字幕1 | 又黄又刺激视频 | 91中文字幕一区 | 黄色国产在线 | 国产一级淫片免费看 | 天天操狠狠操网站 | 五月天天在线 | 久久久亚洲麻豆日韩精品一区三区 | 色欧美视频 | 97色视频在线 | 丁香综合网 | 91日韩免费 | 大型av综合网站 | 成人欧美一区二区三区在线观看 | 特级毛片网站 | 免费在线观看成人 | 手机成人免费视频 | av网站免费线看精品 | 日韩艹| 久久草草影视免费网 | 久久久99精品免费观看乱色 | 99久久99热这里只有精品 | 激情大尺度视频 | 97在线公开视频 | 精品国内自产拍在线观看视频 | 国产中文字幕免费 | 91久久国产精品 | 成人黄色国产 | 91av视频导航| 在线看片中文字幕 | 日日操天天操夜夜操 | 91在线观看高清 | 中文字幕免费一区 | 日韩在线 一区二区 | a'aaa级片在线观看 | 午夜久久久久久久 | 中文字幕在线一区观看 | 91精品网站 | 视频在线观看国产 | 国产成人精品一二三区 | 国产黑丝一区二区三区 | 99热这里只有精品免费 | 99久久精品免费看国产四区 | 草莓视频在线观看免费观看 | 91人人视频在线观看 | 亚洲国产成人久久综合 | 在线国产日韩 | 国产青草视频在线观看 | 久久综合偷偷噜噜噜色 | 国产精品免费麻豆入口 | 亚洲视频 在线观看 | 久久国产精品一区二区三区四区 | 午夜精品久久久久久中宇69 | 精品毛片久久久久久 | av综合网址| 亚洲激情校园春色 | 99久久这里只有精品 | 天天综合操 | 天天色天天色 | 国产激情电影综合在线看 | 日韩a在线观看 | 精品国产1区2区3区 国产欧美精品在线观看 | 亚洲成av人影片在线观看 | 天天综合网入口 | 99性视频 | 六月丁香在线观看 | 99久久精品网| 99精品视频在线 | 91麻豆传媒| 国产成人香蕉 | 国产精品18久久久久久首页狼 | 人成午夜视频 | 免费在线成人 | 日本动漫做毛片一区二区 | 91九色最新地址 | 人人澡人人爱 | 欧美性做爰猛烈叫床潮 | 麻豆 91 在线 | 欧美一区二区伦理片 | 1000部国产精品成人观看 | 亚洲jizzjizz日本少妇 | 五月婷婷六月丁香激情 | 国产精品一区二区果冻传媒 | 精品日本视频 | 日韩精品1区2区 | 国产成人精品一区二区三区在线观看 | 99精品视频免费观看视频 | 成人欧美亚洲 | 国产久草在线观看 | 欧美做受高潮 | 中文字幕在线观看视频一区 | 久久久久黄 | 超碰97免费在线 | 天天艹天天 | 韩国三级av在线 | 热久久免费视频精品 | 欧美高清视频不卡网 | 国产偷国产偷亚洲清高 | 国产人成一区二区三区影院 | 天天搞天天干 | 五月天婷亚洲天综合网精品偷 | 国产精品久久久久久久久久妇女 | 国产在线日韩 | 中文不卡视频 | 亚洲美女免费精品视频在线观看 | www.久久免费视频 | 久久av影院| 欧美日韩国产一区二区在线观看 | 亚洲激情在线观看 | 六月丁香久久 | 久久99久久99精品免观看软件 | 中文字幕免费不卡视频 | 国产精品日韩在线播放 | 免费观看一级 | av观看久久久 | 亚洲男女精品 | 天堂激情网 | www.狠狠插.com | 深夜免费福利网站 | 波多野结衣在线观看一区 | 丁香九月婷婷综合 | 人人舔人人爱 | 国产在线资源 | av观看在线观看 | 免费看成人 | 日韩有码网站 | 国产精品一区二区三区视频免费 | 人人要人人澡人人爽人人dvd | 日本一区二区三区免费看 | 色噜噜色噜噜 | 99精品视频一区 | 欧美另类老妇 | 欧美色图东方 | 亚洲午夜久久久久久久久电影网 | 91成人免费 | 婷婷四房综合激情五月 | 激情一区二区三区欧美 | 欧美少妇bbwhd | 婷婷六月中文字幕 | 亚洲视频免费视频 | 婷婷六月综合亚洲 | 中文字幕一区二区在线观看 | 97成人精品视频在线播放 | 色婷丁香 | 又黄又爽又刺激 | 在线视频1卡二卡三卡 | 亚洲国产激情 | 亚洲闷骚少妇在线观看网站 | 亚洲精品小区久久久久久 | 97超碰人人澡人人 | 日韩天天综合 | 最近中文字幕大全中文字幕免费 | 国产精品热视频 | 毛片www | 国产人成在线视频 | 国产成人在线精品 | 99中文在线 | 免费看高清毛片 | 国产精品成人一区二区三区 | 高清久久久久久 | 亚洲精品成人在线 | 欧美综合国产 | 色综合天天做天天爱 | 久久电影中文字幕视频 | 欧美激情综合色综合啪啪五月 | 综合黄色网 | 亚洲精品黄 | 亚洲一区网站 | 免费91麻豆精品国产自产在线观看 | 成人午夜电影网站 | 欧美狠狠操 | www.com在线观看 | 精品一区二区免费 | 日韩天堂在线观看 | 亚洲va综合va国产va中文 | 日韩av中文字幕在线免费观看 | av资源免费看 | 在线视频福利 | 国产精品国产亚洲精品看不卡 | 国产一级在线观看视频 | 亚洲精品成人在线 | 亚洲国产天堂av | 成人福利av | 超碰97人人在线 | 亚洲成人一区 | 国产成人黄色片 | 亚洲激情网站免费观看 | 808电影免费观看三年 | 精品国模一区二区 | 久久一区国产 | 精品福利网 | 久久国产一二区 | 999久久精品| 91精品办公室少妇高潮对白 | 最近中文字幕免费 | 婷婷六月天天 | 国产无限资源在线观看 | 亚洲激情五月 | 午夜视频不卡 | 国产69精品久久久久99尤 | 亚洲a资源 | 青青草在久久免费久久免费 | a久久久久久 | 午夜成人免费影院 | 国产一区二区精 | av电影免费看| 黄色片软件网站 | 免费视频一区 | 五月激情久久久 | av在线电影免费观看 | 久久理论电影网 | 日韩av免费在线看 | 91福利社区在线观看 | 久久久免费播放 | 久久超碰99 | 国产精品美女久久久免费 | 亚洲免费av在线播放 | 天天天天色综合 | 香蕉视频网站在线观看 | 久久久久久久国产精品 | 日韩经典一区二区三区 | 久久日韩精品 | 麻豆91在线看 | 啪啪免费观看网站 | 亚洲第一伊人 | av一级在线观看 | 国产精品手机在线播放 | 五月香视频在线观看 | av电影免费在线看 | 色婷婷啪啪免费在线电影观看 | 久久伦理影院 | 国产精品美女免费视频 | 91网址在线| 久久深夜福利免费观看 | 午夜a区 | av韩国在线 | 波多野结衣在线视频免费观看 | 丁香婷婷综合网 | 2019天天干天天色 | 久久手机免费视频 | 国产在线视频一区二区 | 国产最新视频在线 | 午夜在线观看 | 99 色| 日韩精品一区二区三区免费观看 | 久久黄色片 | 成人av免费播放 | 91在线看黄| 日韩1级片 | av三级av | 亚洲成人免费观看 | 综合在线亚洲 | 国产精品一区二区中文字幕 | 伊人激情综合 | 日韩在线视频播放 | 日韩av资源站 | 久久狠狠亚洲综合 | 国产精品久久久久一区二区 | 国产精品美女www爽爽爽视频 | 成年人在线免费看视频 | 日韩精品亚洲专区在线观看 | 狠狠88综合久久久久综合网 | 91欧美精品| 色综合久久久久久中文网 | 国产黄| 在线观看中文字幕第一页 | 亚洲 欧美变态 另类 综合 | 一区二区在线影院 | 久久精品综合一区 | 久久国产热视频 | 亚洲高清国产视频 | 亚洲美女视频在线观看 | 天堂资源在线观看视频 | 808电影免费观看三年 | 色哟哟国产精品 | 特级西西444www高清大视频 | 国产韩国精品一区二区三区 | 91丨九色丨首页 | 久久成人资源 | 草久在线| 天天操人人干 | 五月婷婷电影网 | 久久精品99久久 | 日韩av成人免费看 | 成人网看片| 中文字幕精品www乱入免费视频 | 国产福利在线免费 | 成人免费视频网站 | 超碰人人在线观看 | 国产精品久久一区二区三区不卡 | 亚洲成人精品av | 丁香六月av | 色综合久久天天 | 在线三级中文 | 国产在线毛片 | 中文字幕精品一区 | 久草在线免 | 亚洲精品高清在线观看 | 日韩综合一区二区三区 | 美女免费视频一区二区 | 亚洲精品成人av在线 | 色在线最新 | 日韩免 | 日本精品视频一区 | 久草热久草视频 | 亚洲一区网 | 国产精品 日韩精品 | 天天综合色网 | 欧美视频99 | 免费在线观看不卡av | 狠狠躁夜夜躁人人爽超碰91 | 丁香花五月 | 四虎免费在线观看 | 伊人久久精品久久亚洲一区 | 天天综合视频在线观看 | av片在线观看 | 久久久久亚洲精品 | 国产精品免费视频网站 | av福利在线免费观看 | www国产亚洲 | 免费在线观看91 | 天天爱天天操 | 久久精品韩国 | 免费网站看v片在线a | 天天射天天操天天干 | 国产精品女主播一区二区三区 | 毛片www| 91网免费看 | 成年人视频在线免费 | 97精品国自产拍在线观看 | 久久久久久蜜桃一区二区 | 亚洲小视频在线观看 | 美国人与动物xxxx | 国产一区二区在线视频观看 | 久久久久久久久久免费 | 天天色天天干天天 | 最近中文字幕国语免费av | 99久久这里只有精品 | 免费在线色电影 | 成人试看120秒 | 久草资源在线观看 | 91一区一区三区 | 99麻豆视频| 亚洲精品资源 | 欧美大片大全 | 人人插人人艹 | 国产精品久久久久久久久久久杏吧 | 欧美性受极品xxxx喷水 | 国产小视频国产精品 | 国产一区二区三区在线 | 午夜私人影院 | 国产成人久久久久 | 亚洲精品国偷拍自产在线观看 | 在线观看韩日电影免费 | 9草在线| 天天综合视频在线观看 | 91麻豆精品国产自产在线 | 片黄色毛片黄色毛片 | 国产精品国产自产拍高清av | 中文字幕在线观看免费观看 | 久久99精品国产99久久6尤 | 国产精品久久久久久吹潮天美传媒 | 九色自拍视频 | 最新的av网站 | 久久人人爽人人人人片 | 91精品国产欧美一区二区 | 日韩欧美在线综合网 | 国产精品久久久毛片 | 久久亚洲欧美 | 国产无套精品久久久久久 | 国产精品色婷婷 | 久久久精品小视频 | 丁香花中文在线免费观看 | 99999精品视频 | 丁香六月天婷婷 | 日韩综合在线观看 | 国产伦精品一区二区三区无广告 | 久久一区精品 | 91激情视频在线 | 国产精品久久免费看 | 国产96av | 精品在线视频播放 | 五月天堂色 | 97精品国产aⅴ | 国产很黄很色的视频 | 美女av电影 | 天天色综合久久 | 在线观看成人国产 | 欧美国产日韩一区 | 一二三区视频在线 | 香蕉视频国产在线观看 | 国产成人精品综合久久久久99 | 欧美aaa大片 | 最近日本中文字幕 | 国产精品乱码久久久 | 天堂激情网 | 天天干天天操天天拍 | 日日操夜 | 国产色女人| 天天天色综合a | 九九九九精品 | 日韩精品不卡在线 | 黄色毛片一级 | 久久精品视频观看 | 69久久99精品久久久久婷婷 | 国产精品自产拍在线观看网站 | 久久免费久久 | www久久99 | av导航福利 | 国产91全国探花系列在线播放 | 天天五月天色 | 免费a网 | 久久精品视频播放 | 国产精品 国产精品 | 亚洲国产播放 | 亚洲视频一区二区三区在线观看 | 国产精品99久久久精品免费观看 | 欧美精品国产综合久久 | 欧美aaa视频 | 天天看天天干天天操 | 日韩在线免费 | 午夜 久久 tv | 91日韩精品一区 | 一本—道久久a久久精品蜜桃 | 欧美 日韩 性 | 欧美综合久久久 | 免费成人在线视频网站 | 中文字幕视频一区 | 欧美日韩xxx | 五月天久久激情 | 色91av | 免费av观看网站 | 亚洲理论电影网 | 色综合久久综合中文综合网 | 激情久久小说 | 成人av在线直播 | 久久99久久精品国产 | 激情综合婷婷 | 欧美另类亚洲 | 在线观看中文 | 久久免费看a级毛毛片 | 在线观看黄色av | 亚洲女同ⅹxx女同tv | av大全在线观看 | 久青草视频在线观看 | 97操操| va视频在线观看 | 97在线视频免费 | 最新动作电影 | 亚洲精品久久久久中文字幕二区 | 91在线免费视频 | 日韩午夜小视频 | 国产高清一级 | 日韩三级.com | 国语自产偷拍精品视频偷 | 亚洲久在线 | 91在线看黄 | va视频在线观看 | 亚洲影视九九影院在线观看 | 首页中文字幕 | 婷婷在线色 | 久久av影视 | 亚洲美女精品视频 | 在线中文字幕网站 | 日韩色在线观看 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 精品v亚洲v欧美v高清v | 麻豆视频在线免费观看 | 国产一区二区精品91 | 国产精国产精品 | 少妇性bbb搡bbb爽爽爽欧美 | av大全在线| 国产精品免费大片视频 | 黄色av网站在线观看免费 | 91手机在线看片 | 天天玩天天操天天射 | 又黄又爽又刺激视频 | 超碰免费观看 | 日韩在线观看免费 | 操少妇视频 | 色香蕉网 | 国产精品美女久久久免费 | 五月婷婷激情 | 97视频网站 | 日韩乱码中文字幕 | 亚洲国产成人av网 | 久久成年人视频 | 免费在线观看不卡av | 欧美最猛性xxxxx(亚洲精品) | 五月婷婷在线视频观看 | 欧美日韩国产一区二区在线观看 | 国产日韩欧美视频在线观看 | 久久久久久高潮国产精品视 | 国产精品自产拍在线观看蜜 | 国产麻豆电影 | 国产精品网站 | 欧洲精品一区二区 | 国产精品美乳一区二区免费 | 99色免费视频 | 在线观看第一页 | 欧美成人精品欧美一级乱黄 | 天天操天天干天天综合网 | 欧美巨乳波霸 | 国产日韩欧美视频在线观看 | 国产精品岛国久久久久久久久红粉 | 激情偷乱人伦小说视频在线观看 | 成人av网址大全 | 丁香综合av | 国产精品免费观看在线 | 三上悠亚一区二区在线观看 | 2023国产精品自产拍在线观看 | 国产精品一区在线 | 视频在线观看一区 | 日本韩国欧美在线观看 | 在线之家免费在线观看电影 | 久久久久亚洲国产 | 久久综合精品一区 | 欧美日韩在线第一页 | 正在播放国产91 | 久久99精品久久久久蜜臀 | 成人在线视频观看 | 色福利网站 | 国产精品久久久久久久久久久免费看 | 天天综合在线观看 | 青青草在久久免费久久免费 | 久久久久久国产精品亚洲78 | 久久精品电影院 | 色综合久久久久久中文网 | 国产99久久久欧美黑人 | 国产欧美在线一区 | 国产一级视频免费看 | 亚洲精选国产 | 国产 视频 高清 免费 | 久久国产精品99久久久久久丝袜 | 日韩精品在线视频免费观看 | 依人成人综合网 | 久久久成人精品 | 九九久久精品 | 久久高清 | 麻豆影视网站 | 97精品超碰一区二区三区 | 国产一区麻豆 | 日韩3区| 韩日精品中文字幕 | 国产精品综合久久久久 | 国产一级免费电影 | 国产精品久99 | 成人香蕉视频 | 久久第四色 | 国产精品免费成人 | 欧美日韩国产综合网 | 91免费观看 | 一级片免费在线 | 国产专区在线 | 国产97色在线 | 人人干狠狠操 | 色黄久久久久久 | 国产视频资源 | 国内久久久久 | 国产欧美精品在线观看 | 精品久久久久一区二区国产 | 韩国三级在线一区 | 成人免费一区二区三区在线观看 | 黄色视屏在线免费观看 | 狠狠88综合久久久久综合网 | 久久99热国产 | 在线免费观看视频一区 | 丁香一区二区 | 在线看片日韩 | 97成人精品视频在线播放 | 亚洲免费小视频 | 国产精品欧美在线 | 久久免费福利视频 | 久久综合一本 | 欧美一区二区在线刺激视频 | 手机在线中文字幕 | 欧美性大战 | 欧美日韩在线视频观看 | 中文字幕乱码在线播放 | 日韩一区二区免费在线观看 | 国产色一区 | 国产精品 9999| av中文字幕在线免费观看 | 日日久视频 | 久久久国产99久久国产一 | 久久久久久久久久久久久久电影 | 久久黄色免费观看 | 日韩色综合网 | 久久久久久久久久久国产精品 | 久久福利| 999久久久久 | 夜夜躁狠狠躁日日躁视频黑人 | 欧美精品天堂 | 日日激情 | 久久这里只有精品首页 | 最近2019年日本中文免费字幕 | 国产在线视频一区 | 午夜手机电影 | 在线日韩精品视频 | 欧美日韩高清一区二区 国产亚洲免费看 | 亚洲三级国产 | 久久成人午夜视频 | 成人一级影视 | 亚洲欧洲精品在线 | 91av小视频 | 美女福利视频在线 | 97色婷婷成人综合在线观看 | 天天躁日日躁狠狠躁 | 欧美在线99| 久久免费高清视频 | 91福利视频久久久久 | 成人小视频在线播放 | 这里只有精品视频在线 | 日本久久电影 | 91探花系列在线播放 | 99这里都是精品 | 精品国产伦一区二区三区观看方式 | 免费特级黄色片 | 九九精品久久久 | 国产色网| 国产精品激情 | 欧美日韩高清一区 | 久久a视频 | 国产色区 | 在线观看爱爱视频 | 人人看人人草 | 在线国产一区二区三区 | 中文字幕一区二区在线播放 | 精品超碰 | 亚洲精品午夜aaa久久久 | 人成在线免费视频 | 国产剧情一区二区在线观看 | 免费麻豆 | 日韩中文字幕视频在线观看 | 黄色在线观看免费 | 99久久精品国产亚洲 | 欧美日韩精品综合 | 精品自拍av | 成人h在线播放 | 亚洲久草在线 | 91精品国产欧美一区二区成人 | 免费看片亚洲 | 又爽又黄在线观看 | 天天综合区| 久草免费电影 | 在线网址你懂得 | av无限看 | 麻豆超碰 | 久久精品久久久久电影 | 日本夜夜草视频网站 | 欧美男男激情videos | 日韩精品不卡在线观看 | 麻豆视频www | 亚洲性少妇性猛交wwww乱大交 | 国产免费一区二区三区网站免费 | a在线观看免费视频 | 亚洲少妇激情 | 日韩av一区二区三区 | 中文字幕一区二区三区在线视频 | 欧美日韩精品在线播放 | 亚洲精品综合在线观看 | 日日久视频 | 日韩视频中文 | www.大网伊人 | 精品视频资源站 | 特级a毛片 | 国产视频导航 | 久久久国内精品 | 日韩一级电影在线 | 久久久免费精品国产一区二区 | 色av资源网| 亚洲精品国产综合久久 | 99草视频 | 五月在线视频 | 亚洲 综合 国产 精品 | 国产中年夫妇高潮精品视频 | 九九九九热精品免费视频点播观看 | 国产精品1区2区 | 国产福利精品在线观看 | 日韩精品视频免费专区在线播放 | 国产裸体视频bbbbb | 免费在线黄 | 爱爱av在线 | 国产一二区在线观看 | 国产精品国产三级在线专区 | 久久久黄色av | 久久久99国产精品免费 | 91精品啪在线观看国产 | 黄色网址在线播放 | 日日操天天操狠狠操 | 精品久久一二三区 | 国产69精品久久久久99 | 999国内精品永久免费视频 | 久久网址 | 国产精品嫩草69影院 | 天天射射天天 | 色噜噜狠狠色综合中国 | 天天干夜夜夜操天 | 国产99久久久久 | 日韩在线免费 | free. 性欧美.com | 国内精品视频免费 | 西西4444www大胆无视频 | 天天爱天天色 | 色婷婷国产精品 | 黄色小说视频网站 | 中文字幕日本在线观看 | 狠狠狠色狠狠色综合 | 草莓视频在线观看免费观看 | 免费观看黄色av | 亚洲日本国产精品 | 成 人 黄 色 视频播放1 | 亚洲不卡av一区二区三区 | 蜜臀av免费一区二区三区 | 国产精品 亚洲精品 | 国产 日韩 欧美 在线 | 在线99视频 | 97超碰在线人人 | 91av色 | 日韩在线视频线视频免费网站 | 成人精品999 | 欧美伦理电影一区二区 | 日韩免费高清在线 | 视频 天天草| 天天操天天射天天插 | 日韩毛片在线播放 | av在线一级 | 狠狠色丁香婷婷综合久久片 | www.香蕉视频在线观看 | 欧美日韩免费在线观看视频 | 日韩精品 在线视频 | 亚洲欧美va| 国产中文字幕一区 | 视频1区2区 | 国产精品视频久久 | 91一区二区在线 | 亚洲人成在线观看 | 日韩一级黄色片 | 热久久精品在线 | 国产在线一区观看 | 欧美一二在线 | 亚洲精品小视频 | 2023国产精品自产拍在线观看 | 精品伦理一区二区三区 | 999久久久久久久久6666 | 久久综合九色综合久99 | 在线 国产一区 | 久久精品视频一 | 国产va在线 | 亚洲第一香蕉视频 | 天天做天天爱天天综合网 | 超碰人在线 | 国产福利免费在线观看 | 国产精品久久久久久久7电影 | 久久久污| 手机在线日韩视频 | 亚洲午夜在线视频 | 在线中文字幕网站 | 91精品区 | 欧美精品一区在线 | 日韩在线三区 | 成人av电影在线 | 久久99亚洲网美利坚合众国 | 国产又粗又猛又黄又爽视频 | 色吊丝在线永久观看最新版本 | 最近日韩免费视频 | 国产高清在线免费观看 | 欧美 日韩 国产 中文字幕 | av不卡在线看 | 婷婷色综合网 | 狠狠躁夜夜躁人人爽视频 | 国产成人专区 | 成人精品久久久 | 精品国产a | 性色av免费在线观看 | 国产精品免费在线 | 欧美少妇18p| 成人av在线亚洲 | 国产精品一区二区麻豆 | 成年人电影免费在线观看 | 婷婷色中文字幕 | 一区二区三区视频网站 | 97热视频 | 精品美女视频 | av中文字幕网 | 国产色综合天天综合网 | 免费久久网| 最新久久久 | 日韩毛片在线一区二区毛片 | 国产成人精品一区二区三区在线观看 | 99热这里只有精品免费 | 黄色毛片视频 | 97在线免费观看视频 | 国产高清视频在线 | 黄色免费网站下载 | 综合网久久 | 久久艹艹 | 日韩欧美在线高清 | 亚洲首页 | 黄色的网站在线 | 91在线看视频免费 | 在线观看av中文字幕 | 国产成人精品aaa | 日韩av专区 | 中文字幕亚洲在线观看 | 久久色视频 | 91精品老司机久久一区啪 | 人成在线免费视频 | 日韩一区二区免费播放 | 久久影视中文字幕 | 日韩色在线观看 | www.黄色| 国内少妇自拍视频一区 | 久久九九精品 | 亚洲aⅴ免费在线观看 | 日韩免费b | 国产一级在线观看视频 | 国产精品99精品久久免费 | 西西444www| 国产成人福利在线观看 | 欧美性生活小视频 | www.夜夜爽 | 夜夜夜草| 欧美高清视频不卡网 | 五月天激情在线 | 91在线网址 | a级国产乱理伦片在线观看 亚洲3级 | 亚洲天堂香蕉 | www天天操| www.夜夜干.com | 18做爰免费视频网站 | 色婷婷国产 | 精品国产电影 | 国产视频一区二区在线播放 | 欧美精选一区二区三区 | 伊人夜夜 | 免费国产在线精品 | 天天操操 | 人人射网站 | 免费黄色网址网站 | 国产污视频在线观看 | 国产小视频在线看 | 国产精品久久久久久久久久了 | 一区免费视频 | 国产一线天在线观看 | 成人欧美在线 | 国产日韩欧美网站 | 国产在线播放一区二区 | aaawww| 久久久久成人精品亚洲国产 | 成人激情开心网 | 精品国产1区二区 | 日韩精品一区二区三区外面 | 久久精品一区二区三 | 国产在线欧美在线 | 香蕉网在线播放 | 亚洲精品美女 | 欧美-第1页-屁屁影院 | 欧美激情视频一二区 | 免费日韩一区二区三区 | 在线观看av中文字幕 | 在线观看成人毛片 | 国产你懂的在线 | 精品你懂的 | 国产第一页精品 | 九九免费在线观看 | 久久久久久免费毛片精品 | 伊甸园永久入口www 99热 精品在线 | 黄色av一级| 欧美日韩免费一区二区三区 | 五月天九九 |