<meta charset="utf-8">
老男孩思想
[圖片上傳失敗...(image-156922-1555256899630)]
信念就是在潛意識(shí)層面相信自己能行卤橄,其實(shí)就是強(qiáng)烈的自信心
今天的課堂內(nèi)容是shell編程基礎(chǔ)
為什么要學(xué)shell編程
Linux系統(tǒng)中會(huì)大量的使用shell,工作中我們也需要自動(dòng)化實(shí)現(xiàn)業(yè)務(wù)护糖。
例如:自動(dòng)備份 。監(jiān)控谭确。自動(dòng)安裝服務(wù)朦促。
shell編程是Linux運(yùn)維人員必須要會(huì)的編程語言。最簡單的編程語言。
編程是運(yùn)維人員必須具備的本領(lǐng):
shell .python是運(yùn)維人員的必須具備本領(lǐng)
shell什么是shell
shell 編程3小時(shí)光速入門
shell 就是一個(gè)解釋器惜傲,命令行的命令以及腳本都會(huì)通過shell解釋器,傳給操作系統(tǒng)贝攒,處理后在輸出給系統(tǒng)盗誊,處理后在輸出給用戶。
tailf -1 /etc/passwd
centos 7所支持的shell
[圖片上傳失敗...(image-ad92c4-1555256899630)]
[圖片上傳失敗...(image-ee9fd7-1555256899630)]
C shell
C shell 有包括csh tchsh
centos 7 默認(rèn)的shell 可以用echo $SHELL
默認(rèn)的shell /bin/bash
5.什么是shell 腳本隘弊?
程序哈踱。命令放入文件里執(zhí)行,這個(gè)文件我們成為shell腳本文件梨熙。
工作中最多的編程寫腳本开镣,存放在文件里。
6.shell 的變量:
a.全局變量(環(huán)境變量)
在整個(gè)系統(tǒng)中生效咽扇,一般都大寫邪财,系統(tǒng)中會(huì)默認(rèn)就存在這樣的一些變量舅列,就滿足系統(tǒng)和程序運(yùn)行的需求舉例:echo $PS1,
[圖片上傳失敗...(image-25fb29-1555256899630)]
自定義環(huán)境變量:
1.export OLDBOY="I am oldboy"
2.OLDBOY =I am oldboy
export
在當(dāng)前用戶生效,的臨時(shí)變量卧蜓,去其他用戶下就不生效了帐要。
如果想讓他永久生效就要加到/etc/profile==>/.bash_profile==>/.bashrc==>/etc/bashrc
環(huán)境變量推薦寫到etc/bashrc。把要加的變量放在bashrc的里面最下一行弥奸。然后可以用tail -1 /etc/bashrc查看
安裝Java服務(wù)時(shí)就會(huì)需要環(huán)境變量
b.(局部變量)
是編寫shell腳本最常用的變量榨惠。
變量名=值
a=1
變量名:數(shù)字,字母盛霎,下劃線赠橙,不能是數(shù)字開頭。
oldboy , 123a , _abc
=等號(hào):賦值符愤炸,把什么東西給誰
值:東西期揪,變量內(nèi)容。
引用內(nèi)容的符號(hào):單引號(hào)规个,雙引號(hào)凤薛,反引號(hào),不加引號(hào)诞仓。
先賦值什么等于什么缤苫,a=1
然后用echo $a
[圖片上傳失敗...(image-a79bcf-1555256899630)]
[圖片上傳失敗...(image-48dad6-1555256899630)]
學(xué)習(xí)要學(xué)會(huì)反推。
let 讓 let 讓實(shí)現(xiàn)加法
7.表達(dá)式
[表達(dá)式] 中括號(hào)表達(dá)式墅拭,中括號(hào)兩邊必須有空格
[圖片上傳失敗...(image-71056-1555256899630)]
[圖片上傳失敗...(image-f3aa19-1555256899630)]
[圖片上傳失敗...(image-25b324-1555256899630)]
[圖片上傳失敗...(image-934f13-1555256899630)]
證書表達(dá)式
[圖片上傳失敗...(image-e33129-1555256899630)]
man test里面查記憶方法
[圖片上傳失敗...(image-1060f5-1555256899630)]
正整數(shù)表達(dá)式符 兩面要有空格
中括號(hào)兩端要有空格
變量和比較的內(nèi)容活玲,不加引號(hào)
字符表達(dá)式:
-z 變量為空 字符串長度為0,時(shí)為真(表達(dá)式正確)谍婉。zero
-n 變量內(nèi)的長度不為0時(shí)舒憾,為真(表達(dá)式正確)。not zero
a == a雙等號(hào)是相同的意思穗熬,單等號(hào)是賦值镀迂。
1)字符串要加雙引號(hào)
字符串和不是正數(shù)要加雙引號(hào)
[圖片上傳失敗...(image-d9084a-1555256899630)]
[圖片上傳失敗...(image-766823-1555256899630)]
[圖片上傳失敗...(image-3109b4-1555256899630)]
[圖片上傳失敗...(image-fd2c12-1555256899630)]
書寫腳本習(xí)慣
1.以.sh結(jié)尾。
2.腳本開頭第一行#!/bin/bash 腳本內(nèi)容由誰解釋死陆。
由于Linux下默認(rèn)是bash,所以也可以不寫這一行招拙。
[圖片上傳失敗...(image-b6406a-1555256899630)]
交互式寫法:先讀入 交互式
[圖片上傳失敗...(image-a7a14d-1555256899630)]
[圖片上傳失敗...(image-4cb90a-1555256899630)]
$1腳本文件的第一個(gè)參數(shù)
$2腳本文件的第二個(gè)參數(shù)
9.for 循環(huán)
for n in 取值列表
do
執(zhí)行命令
done
[圖片上傳失敗...(image-7f4b01-1555256899630)]
[圖片上傳失敗...(image-a48d8f-1555256899630)]
[圖片上傳失敗...(image-d4f5ea-1555256899630)]
就會(huì)報(bào)這樣的錯(cuò)
[圖片上傳失敗...(image-3e26f7-1555256899630)]
[圖片上傳失敗...(image-2e8181-1555256899630)]
1、比較整數(shù)大小措译。
2、判斷日期饰序,每周六日去旅游领虹,其它時(shí)間上課。
3求豫、取出當(dāng)前系統(tǒng)Ip地址塌衰,判斷是否為10.0.0.31诉稍,如果是提示正確,如果不是給出提示最疆。
4杯巨、打印10.0.0.1--10.0.0.254個(gè)Ip地址,當(dāng)IP地址為系統(tǒng)IP地址時(shí)努酸,給出某IP是系統(tǒng)IP的提示服爷。
-gt
= -ge
< -lt
<= -le
= -eq
不等于 -ne