老男孩思想:
1、自身形象
A、穿着
B、行为举止(一举一动,言谈,声音语气语调)
2、背景(背书)
学历、能力、态度、特长、人品、名企、口碑(身边的人、领导)
3、实际的让人认可的数据。
人生四行:
1、自己要行。
2、要有人认为你行。
3、认为你行的人也要行。
4、身体要行。
能力很重要:搞定有决策能力的人。
技术能力、(沟通表达能力、思想思维、人品态度)
Shell编程基础
集群架构会用到
1、为什么要学习shell编程?
Linux系统中会大量的使用shell,工作中我们也需要自动化实现业务,
例如:自动备份、监控、自动安装服务。
Shell编程是Linux运维人员必须要会的编程语言。最简单的编程语言。没有之一
编程也是运维人员必须具备的本领:shell、Python
2、什么是Shell?
Shell就是一个解释器(翻译官),命令行的命令以及脚本都会通过shell解释,
传给操作系统,处理后在输出给用户。
tail -l /etc/passwd
oldboy:x:1001:1001::/home/oldboy:/bin/bash#<==创建用户时,系统指定的翻译官
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脚本?
程序、命令放入文件里执行,这个文件称之为Shell脚本文件
工作中最多的编程写脚本,存放在文件里。
6、shell变量
A.全局变量(环境变量)
在整个系统中生效、一般是大写、系统中默认就存在一些这样的变量,
满足系统和程序运行的需求。
[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
自定义环境变量:
方法一:
Export OLDBOY=“I am oldboy”
方法二:
OLDBOY=“I am oldboy。”
/etc/profile===>~/.bash_profile==>~/.bashrc==>/etc/bashrc
推荐以后把环境变量放入/etc/bashrc
安装java服务时就会配置环境变量。
B. 局部变量(普通变量)
是编写shell脚本最长用的变量
变量名=值
例如:a=1
变量名:数字、字母、下划线,不能是数字开头。
Oldboy、123a、_abc
=等号:赋值符,把什么东西给谁。赋值符号两边不能有空格。
值:东西,变量内容
引用内容的符号:单引号、双引号、反引号、不加引号
[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
整数表达式
> -gt
<= -le
>= -ge
< -lt
= -eq
不等于-ne
整数表达式符两端要有空格
中括号里面两端必须要有空格
变量和比较的内容,不需要加引号。
字符表达式
-z变量内容长度为0时为 真(不对)。就是括号里面输出的内容没有时
-n变量内容长度【不】为0时,为真。not zero括号里面输出的内容有东西时
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
书写脚本习惯
1. 以.sh结尾
2.脚本开头第一行#!/bin/bash 脚本内容由谁解释。
由于Linux下默认是bash,所以也可以不写第一行
[root@centOS7.guohaoxiang~]# vim test.sh
boy="潜力股"
if [ "$boy" == "潜力股" ]
then
echo "先和你谈谈朋友"
else
echo "白白"
fi
~
"test.sh"
8L, 111C written
[root@centOS7.guohaoxiang~]#
[root@centOS7.guohaoxiang~]#
[root@centOS7.guohaoxiang~]# sh test.sh
先和你谈谈朋友
[root@centOS7.guohaoxiang~]# vim test.sh
boy="潜力股"
if [ "$boy" == "潜力股" ]
then
echo "先和你谈谈朋友"
else
echo "白白"
Fi
如果想设置多的就一直用elif then
Read命令 读取用户输入
-p“提醒”
-t“多长时间内等待输入”
[root@centOS7.guohaoxiang~]# read -t 3 -p "请输入一句话:"
请输入一句话:[root@centOS7.guohaoxiang~]#
两个整数比大小
[root@oldboyedu ~]# cat com_
num.sh#!/bin/shread -p "请输入两个整数:" a bif [ $a -gt $b ]then echo "$a>$b"elif [ $a -eq $b ]then echo "$a=$b"else echo "$a<$b"fi特殊位置变量:
$1脚本文件的第一个参数
$2脚本文件的第二个参数
[if !supportLists]8、[endif]for循环
fro n in取值列表
do
执行命令
done