国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁(yè) > 學(xué)院 > 操作系統(tǒng) > 正文

shell 編程簡(jiǎn)介

2024-06-28 16:03:32
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

1、編程語(yǔ)言有兩類:靜態(tài)語(yǔ)言(編譯型語(yǔ)言,如c、c++、java等);動(dòng)態(tài)語(yǔ)言(解釋型語(yǔ)言,如shell、pytho、shell、perl)。靜態(tài)語(yǔ)言是強(qiáng)類型的語(yǔ)言需要編譯在運(yùn)行(需要編譯器),而動(dòng)態(tài)語(yǔ)言是弱類型的語(yǔ)言需要解釋執(zhí)行(需要解釋器)。shell分類很多各個(gè)unix、linux系統(tǒng)上的都有不同的支持,這里以bash為例。

cmd:cat /etc/shells     com:查看當(dāng)前系統(tǒng)  支持的shell類型

cmd:echo $SHELL     com:查看當(dāng)前正在使用的shell

重要:bash的配置文件

全局配置(對(duì)所有用戶都生效):/etc/PRofile,/etc/profile.d/*.sh, /etc/bashrc

個(gè)人配置(對(duì)你自己生效,會(huì)覆蓋全局配置):~/.bash_profile, ~/.bashrc

 profile類的文件:設(shè)定環(huán)境變量、  運(yùn)行命令或腳本

  bashrc類的文件:設(shè)定本地變量、  定義命令別名

附加:

主要使用/etc/profile 和 ~/.bashrc 就夠了。

shell讀取配置文件的順序

       登陸式shell:/etc/profile-->/etc/profile.d/*.sh-->~/.bash_profile-->~/.bashrc-->/etc/bashrc

      非登陸式shell:~/.bashrc-->/etc/bashrc-->/etc/profile.d/*.sh

登陸式shell和非登陸式shell

        登陸式shell:正常通過(guò)某終端登陸、su - USERNAME、 su -l USERNAME切換的用戶都是登陸式shell

       非登陸式shell:su USERNAME切換的、圖形終端打開(kāi)的shell、自動(dòng)執(zhí)行的shell腳本子shell

建議:

如何將shell腳本執(zhí)行起來(lái)也是很重要的,手動(dòng)當(dāng)然最簡(jiǎn)單,自動(dòng)執(zhí)行腳本更為重要。所以需要了解liunx操作系統(tǒng)的啟動(dòng)流程是很有必要的,了解crontab命令的使用,了解at命令的使用是很有必要的。當(dāng)然還有很多其他的機(jī)制,重在積累。

常用的自動(dòng)化執(zhí)行腳本方式:1、crontab命令(自查,或在本人文章中搜索)2、linux系統(tǒng)的/etc/rc.local文件中3、at命令定時(shí)執(zhí)行  4、成為linux的服務(wù)開(kāi)機(jī)自動(dòng)啟動(dòng),有腳本chkconfig 添加,沒(méi)有腳本自己寫(xiě)完后chkconfig添加。

python是很好的自動(dòng)化運(yùn)維工具,同時(shí)在爬蟲(chóng)和數(shù)據(jù)分析甚至開(kāi)發(fā)中都表現(xiàn)出色。強(qiáng)烈建議一定要學(xué)好,好的武器可不是哪都能找到的--工欲善其事,必先利其器。

        

2、shell屬于動(dòng)態(tài)語(yǔ)言,在linux上多用來(lái)進(jìn)行自動(dòng)化執(zhí)行繁復(fù)的操作。運(yùn)維的好助手

3、shell語(yǔ)法:

各種語(yǔ)言的學(xué)習(xí)大致都一樣,變量、函數(shù)、對(duì)象、條件語(yǔ)句、循環(huán)語(yǔ)句、輸出語(yǔ)句

變量類型:

本地變量:

VARNAME=VALUE 作用于當(dāng)前shell,子shell不能。

局部變量:

local VARIABLE=VALUE 作用于當(dāng)前代碼塊,類似于函數(shù)中的變量

環(huán)境變量:

export VARIABLE=VALUE    作用于當(dāng)前shell和子shell

VARIABLE=VALUE export VARIABLE

位置變量:

./test.sh   arg1  arg2

$1 => arg1

$2=>arg2

$0=>test.sh

特殊變量:

$? 上個(gè)命令執(zhí)行的狀態(tài)結(jié)果,成功為0

$#  參數(shù)的個(gè)數(shù)

$*  參數(shù)列表

$@ 參數(shù)列表

"$*" 會(huì)將所有的參數(shù)作為一個(gè)整體,以"$1 $2 … $n"的形式輸出所有參數(shù);"$@" 會(huì)將各個(gè)參數(shù)分開(kāi),以"$1" "$2" … "$n" 的形式輸出所有參數(shù)。

變量聲明賦值使用:

ANIMAL=pig

echo “There are some $ANIMAL”

echo “There are some ${ANIMAL}s.”//雙引號(hào)若引用進(jìn)行變量替換

echo ‘There are some ${ANIMAL}s.’ //單引號(hào)強(qiáng)引用不進(jìn)行變量替換

ANIMAL=$ANIMAL:goat //冒號(hào)不作為變量名不用加{}

export PATH=$PATH:/usr/local/apache/bin//臨時(shí)生效

${parameter:-Word}:如果parameter為空或未定義,則變量展開(kāi)為“word”;否則,展開(kāi)為parameter的值;

${parameter:+word}:如果parameter為空或未定義,不做任何操作;否則,則展開(kāi)為“word”值;

${parameter:=word}:如果parameter為空或未定義,則變量展開(kāi)為“word”,并將展開(kāi)后的值賦值給parameter;

${parameter:offset}

${parameter:offset:length}:取子串,從offset處的后一個(gè)字符開(kāi)始,取lenth長(zhǎng)的子串;

shell做運(yùn)算:

A=3

B=6

let C=$A*$B 或者 C=$[$A+$B] 或者C=$(($A+$B))

echo $C

條件測(cè)試類型:

整數(shù)測(cè)試:

-eq  測(cè)試兩個(gè)整數(shù)是否相等

-ne  測(cè)試兩個(gè)整數(shù)是否不等

-gt  測(cè)試一個(gè)是否大于另一個(gè)

-lt  測(cè)試一個(gè)是否小于另一個(gè)

-ge  測(cè)試一個(gè)是否大于等于另一個(gè)

-le  測(cè)試一個(gè)是否小于等于另一個(gè)

.e.g  注意 [] 格式和空格,否則報(bào)錯(cuò) 。條件測(cè)試的表達(dá)式一般[ expression ] 還有[[ expression ]] 、test expression

[ `wc -l /etc/inittab | cut -d ‘ ’ -f1` -gt 100 ] && echo “l(fā)arge file” //行數(shù)大于100打印

 

[ 100 -gt 101 ] && echo “big file.” || echo “small file.” //兩個(gè)必須執(zhí)行一個(gè)

if [ $variable -eq 0 ];then

echo "#####"

echo "####"

else

echo "####"

echo "####"

fi

字符測(cè)試:

[ $A == $B ] //=號(hào)兩邊必須加空格,否則識(shí)別為賦值

[ $A != $B ] //測(cè)試兩個(gè)字符串是否不等,注意空格

[ -n $C ] //測(cè)試字符串是否為空

[ -z $D ] //測(cè)試字符串是否不為空

文件測(cè)試:

[ -e /etc/initab ] //文件是否存在

[ -x /etc/rc.d/rc.sysinit ] //是否有可執(zhí)行權(quán)限

組合條件測(cè)試:

-a: 與條件

-o:或條件

!: 非關(guān)系

if [ $a -gt 1 -a $b -le 2 ]

if [ $a -gt 1 ] && [ $b -gt 2 ]

FOR 循環(huán):

語(yǔ)法:for 變量 in 列表; do

循環(huán)體

done

.e.g

for a in `ls ./`;do echo $a; done

for a in 1 2 3 4 5 6;do

echo $a

done

for a in {1..100}; do

echo $a

done

for a in `seq 1 10`;do

echo $a

done

while循環(huán)

while [ 條件 ] do

循環(huán)體

done

while true;doecho "#######"sleep 5done

read -p "Your command: " CMD

until [ $CMD == 'q' ]; do   ! which $CMD && echo "Wrong command" && read -p "Input again:" CMD && continue  COMMAND=` which $CMD | grep -v "^alias" | grep -o "[^[:space:]]/{1,/}"`  echo $COMMAND  read -p "Continue: " CMDdone

case 語(yǔ)句:

case $1 in[0-9])  echo "A digit." ;;[a-z])  echo "Lower" ;;[A-Z])  echo "Upper" ;;*)  echo "Special character." ;;esac

函數(shù):

bincp() {

cmdpath=${1%/*} #這個(gè)是命令的目錄路徑,很有用的

echo $1 #第一個(gè)參數(shù)

echo "#######"

}

#調(diào)用

bincp argument1 argument2

數(shù)組聲明賦值使用循環(huán):這篇總結(jié)的相當(dāng)不錯(cuò)。這里為加快速度直接引用。

http://blog.sina.com.cn/s/blog_43c625f10101f1hy.html

shell中使用選項(xiàng):

http://blog.csdn.net/xluren/article/details/17489667

while getopts "a:bc" arg  do        case $arg in             a)                #參數(shù)存在$OPTARG中                  echo "a's arg:$OPTARG" ;;             b)                echo "b" ;;             c)                echo "c" ;;             ?)                #當(dāng)有不認(rèn)識(shí)的選項(xiàng)的時(shí)候arg為?                  echo "unkonw argument" exit 1 ;;         esacdone#使用./test.sh -a hello -b -c

文件重定向:

標(biāo)準(zhǔn)輸出:顯示器 STDOUT 1

標(biāo)準(zhǔn)輸入:鍵盤 STDIN 0

標(biāo)準(zhǔn)錯(cuò)誤:STDERR 2

覆蓋重定向 >  追加重定向 >>

.e.g. 

ls  /var   >  /tmp/var.txt  輸出重定向

ls  /var   &>  /tmp/var.txt   同時(shí)重定向標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤

tr ‘a(chǎn)-z’  ‘A-Z’  < /etc/fstab  輸入重定向,將文件模擬成鍵盤

#追加內(nèi)容到文件cat >>/tmp/myfile.txt<<EOF

111

2222

EOF

echo  ‘Hello,World.’ | tee /tmp/hello.out  //輸出到屏幕一份保存到文件一份

包含文件

./script.sh #可在里邊聲明變量或者寫(xiě)函數(shù)

source filename


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产毛片毛片毛片| 一本久久精品| 国产美女在线观看| 国产精品天堂| 国产精品免费视频二三区| 国产对白叫床清晰在线播放| 国产黄色免费在线观看| 伊人免费视频| 国产乱精品一区二区三区| 2021天堂中文幕一二区在线观| 国产高清免费在线播放| free性亚洲| 国产丝袜在线| 欧美a免费在线| 在线中文免费视频| 亚洲人av在线| 国产日本在线| 青青草观看免费视频在线| 中文字幕av中文字幕| 伊人资源视频在线| 国产视频福利| 九色视频网站| 三级小说一区| 在线午夜视频| 18被视频免费观看视频| 久久亚洲资源| 六月天色婷婷| 亚洲人av在线| 精品日韩av| 国产视频福利| 久热免费视频| 亚洲精品国自产拍在线观看| 国产丝袜在线观看视频| 国产精品一品| 中文字幕在线资源| 国产嫩草在线视频| 国产女王在线**视频| 激情四房婷婷| 羞羞视频在线观看免费| 国产超碰在线观看| 国产精品18久久久久久久久久| 最近中文字幕在线中文视频 | 国产字幕在线看| 国产aa视频| 91视频久色| av大片在线播放| 中文岛国精品亚洲一区| 91精品国产91久久久久久青草| 国产人成在线视频| 69久久久久| 欧美日韩性视频一区二区三区| 青娱乐在线视频观看| 国内精品不卡| 国产精品伦一区二区三区级视频频| 国产原创精品视频| 1区2区3区在线| 国产视频青青| av网站大全在线| 在线观看电影av| 美女av在线播放| 国产日韩精品在线看| 精品一区二区三区免费站| 伊人免费在线| 福利资源在线久| 2018中文字幕在线| 黄色av电影在线播放| 五月伊人六月| 99免费视频| 天天操天天是| 精品国产高清自在线一区二区三区| 日韩国产成人| 国产黄色免费网站| 美女免费视频黄| 91xxx在线观看| av丝袜在线| 国产精品久久久久一区二区国产| 亚洲网站视频在线观看| 国产一二区在线| 日韩在线天堂| 在线免费黄色毛片| 国产日韩欧美精品一区二区三区| av在线二区| 99热免费在线观看| 国产一二三区在线观看| 免费看成年人视频在线观看| 国产福利微拍精品一区二区| 久久久久久久久久久久网站| 精品电影在线| 国产精品视频h| 天堂资源最新在线| 高清av中文在线字幕观看1| eeuss影院在线观看| 精品国产高清自在线一区二区三区 | 国产嫩草在线视频| 热99在线观看| 国产超碰97| 国产a级网站| 精品推荐蜜桃传媒| 在线国产一级| 欧美日韩一区二区三区视视频| 永久免费av片在线观看全网站| 国产99在线|亚洲| 96久久久久久| 18成年在线观看| 中文字幕4区| 色吊丝av中文字幕| 欧美精品se| 国产麻豆视频网站| 二区中文字幕| 国产丝袜在线| 国产国语**毛片高清视频| 国产第一页在线| 在线观看的av网站| 浪潮av一区| 国产午夜视频在线观看| 91久久麻豆| а√最新版在线天堂| 国产在线观看av| 国产99在线|亚洲| 人人干在线视频| 国产精品自产拍在线观看2019| 国产乱视频在线观看| 136福利第一导航国产在线| 亚洲成人电视网| 中文字幕中文字幕在线中高清免费版| 国产美女性感在线观看懂色av| 国产三级在线播放| 欧美一级久久久久久久久大| 中文字幕人成高视频| 在线激情小视频| 91超碰国产在线| 日韩黄色成人| 97视频免费| 午夜av在线免费观看| 日本一级理论片在线大全| 尤物在线视频| 操操操综合网| 国产a级网站| 福利视频在线看| av资源网站在线观看| 午夜视频在线| 免费黄网站在线观看| 精品一区二区三区在线观看l| 九九热免费在线视频| 在线国产91| 伊人网在线视频| 国产精品伦理一区二区三区 | 国产日韩欧美第一页| 欧美a免费在线| 四虎国产精品永久在线| √天堂资源中文www| 国产又色又爽又黄刺激在线视频| 色综合久久五月天| 性网站在线播放| 99re在线视频| 亚洲精品乱码电影在线观看| 国产成人久久精品77777| 国产视频三级在线观看播放| 丁香花在线电影小说观看| 超碰在线网址| 国内外激情在线| 国产小视频在线观看| 国产精品免费麻豆入口| 国产三级在线播放| 国产精品视频h| 伊人网在线免费观看| 国产精品被窝福利一区 | 国产一起色一起爱| 久草在线视频网| 综合激情丁香| 精品久久久久一区二区三区| 精品无人乱码| 开心婷婷激情五月| 国产精品作爱| 国产成人综合美国十次| 中文av资源在线| 美女av在线播放| 国产视频精品久久| 69精品视频| 欧美日韩国产亚洲沙发| 国产免费自拍视频| 国产三级自拍| 日本高清不卡中文字幕| 最新av免费看| 在线中文免费视频| 超碰国产在线观看| 国产黄色免费看| 青青草免费在线视频| 国产视频福利| 蜜桃视频中文字幕| 国产95在线|亚洲| 成人精品福利| 午夜在线不卡| 国产国产国产国产国产国产 | av男人的天堂网| 天堂在线中文资源| 中文av资源在线| 99热在线观看免费| 免费在线黄色av| 国产变态拳头交视频一区二区|