老男孩思想:
1李剖、自身形象
A俺叭、穿著
B、行為舉止(一舉一動,言談姻僧,聲音語氣語調(diào))
2、背景(背書)
學(xué)歷垛耳、能力涩赢、態(tài)度、特長馆里、人品隘世、名企、口碑(身邊的人鸠踪、領(lǐng)導(dǎo))
3丙者、實際的讓人認可的數(shù)據(jù)。
人生四行:
1营密、自己要行械媒。
2、要有人認為你行评汰。
3纷捞、認為你行的人也要行。
4被去、身體要行主儡。
能力很重要:搞定有決策能力的人。
技術(shù)能力惨缆、(溝通表達能力糜值、思想思維丰捷、人品態(tài)度)
Shell編程基礎(chǔ)
集群架構(gòu)會用到
1、為什么要學(xué)習(xí)shell編程臀玄?
Linux系統(tǒng)中會大量的使用shell瓢阴,工作中我們也需要自動化實現(xiàn)業(yè)務(wù),
例如:自動備份健无、監(jiān)控荣恐、自動安裝服務(wù)。
Shell編程是Linux運維人員必須要會的編程語言累贤。最簡單的編程語言叠穆。沒有之一
編程也是運維人員必須具備的本領(lǐng):shell、Python
2臼膏、什么是Shell硼被?
Shell就是一個解釋器(翻譯官),命令行的命令以及腳本都會通過shell解釋渗磅,
傳給操作系統(tǒng)嚷硫,處理后在輸出給用戶。
tail -l /etc/passwd
oldboy:x:1001:1001::/home/oldboy:/bin/bash#<==創(chuàng)建用戶時始鱼,系統(tǒng)指定的翻譯官
3仔掸、Shell的分類
Bourne ?shell又包括Bourne shell (sh)、Korn shell(ksh)医清、Bourne Again shell
??[root@centOS7.guohaoxiang~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
4起暮、C7的默認shell
[root@centOS7.guohaoxiang~]# echo $SHELL
/bin/bash
5、什么是Shell腳本会烙?
程序负懦、命令放入文件里執(zhí)行,這個文件稱之為Shell腳本文件
工作中最多的編程寫腳本柏腻,存放在文件里纸厉。
6、shell變量
A.全局變量(環(huán)境變量)
在整個系統(tǒng)中生效五嫂、一般是大寫残腌、系統(tǒng)中默認就存在一些這樣的變量,
滿足系統(tǒng)和程序運行的需求贫导。
[root@centOS7.guohaoxiang~]# echo $PS1
[\[\e[34;1m\]\u@\[\e[0m\]\[\e[32;1m\]\H\[\e[0m\]\[\e[31;1m\]\w\[\e[0m\]]\$
[root@centOS7.guohaoxiang~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@centOS7.guohaoxiang~]# echo $HOME
/root
[root@centOS7.guohaoxiang~]# echo $SHELL
/bin/bash
[root@centOS7.guohaoxiang~]# echo $UID
0
自定義環(huán)境變量:
方法一:
Export ?OLDBOY=“I ?am ?oldboy”
方法二:
OLDBOY=“I ???am ??oldboy◇№铮”
/etc/profile===>~/.bash_profile==>~/.bashrc==>/etc/bashrc
推薦以后把環(huán)境變量放入/etc/bashrc
安裝java服務(wù)時就會配置環(huán)境變量孩灯。
B. 局部變量(普通變量)
是編寫shell腳本最長用的變量
變量名=值
例如:a=1
變量名:數(shù)字、字母逾滥、下劃線峰档,不能是數(shù)字開頭败匹。
Oldboy、123a讥巡、_abc
=等號:賦值符掀亩,把什么東西給誰。賦值符號兩邊不能有空格欢顷。
值:東西槽棍,變量內(nèi)容
引用內(nèi)容的符號:單引號、雙引號抬驴、反引號炼七、不加引號
[root@centOS7.guohaoxiang~]# a=1
[root@centOS7.guohaoxiang~]# echo $a
1
[root@centOS7.guohaoxiang~]# a=2
[root@centOS7.guohaoxiang~]# echo ${a}b
2b
7、表達式
{}中括號表達式布持,中括號里面兩端必須要有空格豌拙。可以有多個或者一個
字符串要加雙引號
[root@centOS7.guohaoxiang~]# [ "a"="b" ] && echo 1||ehco 0
如果表達式成立题暖,打印1按傅,否則打印0
整數(shù)表達式
> ?-gt
<= -le
>= ?-ge
< ?-lt
= ?-eq
不等于-ne
整數(shù)表達式符兩端要有空格
中括號里面兩端必須要有空格
變量和比較的內(nèi)容,不需要加引號胧卤。
字符表達式
-z變量內(nèi)容長度為0時為 ?真(不對)唯绍。就是括號里面輸出的內(nèi)容沒有時
-n變量內(nèi)容長度【不】為0時,為真灌侣。not zero括號里面輸出的內(nèi)容有東西時
a == a字符串是否相同
[if !supportLists]1)[endif]字符串要加雙引號
例子:
[root@oldboyedu ~]# oldboy="I am oldboy"
[root@oldboyedu ~]# [ -z "$oldboy" ] && echo 1 || echo 0
0
[root@oldboyedu ~]# oldboy=""
[root@oldboyedu ~]# [ -z "$oldboy" ] && echo 1 || echo 0
1
判斷句:
如果.....那么
如果【你是潛力股】
那么
就和你談朋友推捐。
否則
拜拜
Shell里面“如果”就用“if”表示
?then ????????????????
命令
fi
書寫腳本習(xí)慣
1. 以.sh結(jié)尾
2.腳本開頭第一行#!/bin/bash 腳本內(nèi)容由誰解釋侧啼。
由于Linux下默認是bash牛柒,所以也可以不寫第一行
???[root@centOS7.guohaoxiang~]# vim test.sh
boy="潛力股"
if [ "$boy" == ?"潛力股" ]
then
echo "先和你談?wù)勁笥?
else
echo "白白"
fi
~ ?????????????????????????????????????????????????????????????????????????????
"test.sh" ???????????????????????????????????????????????????
?8L, 111C written
[root@centOS7.guohaoxiang~]#
[root@centOS7.guohaoxiang~]#
[root@centOS7.guohaoxiang~]# sh test.sh
先和你談?wù)勁笥?/p>
[root@centOS7.guohaoxiang~]# vim test.sh
boy="潛力股"
if [ "$boy" == ?"潛力股" ]
then
echo "先和你談?wù)勁笥?
else
echo "白白"
Fi
如果想設(shè)置多的就一直用elif ??then
Read命令 讀取用戶輸入
-p“提醒”
-t“多長時間內(nèi)等待輸入”
[root@centOS7.guohaoxiang~]# read -t 3 -p "請輸入一句話:"
請輸入一句話:[root@centOS7.guohaoxiang~]#
兩個整數(shù)比大小
[root@oldboyedu?~]#?cat?com_
num.sh#!/bin/shread?-p?"請輸入兩個整數(shù):"?a?bif?[?$a?-gt?$b?]then????echo?"$a>$b"elif?[?$a?-eq?$b?]then????echo?"$a=$b"else????echo?"$a<$b"fi特殊位置變量:
$1腳本文件的第一個參數(shù)
$2腳本文件的第二個參數(shù)
[if !supportLists]8、[endif]for循環(huán)
fro ?n ?in取值列表
do
執(zhí)行命令
done