老男孩思想
[图片上传失败...(image-156922-1555256899630)]
信念就是在潜意识层面相信自己能行,其实就是强烈的自信心
今天的课堂内容是shell编程基础
为什么要学shell编程
Linux系统中会大量的使用shell,工作中我们也需要自动化实现业务。
例如:自动备份 。监控。自动安装服务。
shell编程是Linux运维人员必须要会的编程语言。最简单的编程语言。
编程是运维人员必须具备的本领:
shell .python是运维人员的必须具备本领
shell什么是shell
shell 编程3小时光速入门
shell 就是一个解释器,命令行的命令以及脚本都会通过shell解释器,传给操作系统,处理后在输出给系统,处理后在输出给用户。
tailf -1 /etc/passwd
centos 7所支持的shell
[图片上传失败...(image-ad92c4-1555256899630)]
[图片上传失败...(image-ee9fd7-1555256899630)]
C shell
C shell 有包括csh tchsh
centos 7 默认的shell 可以用echo $SHELL
默认的shell /bin/bash
5.什么是shell 脚本?
程序。命令放入文件里执行,这个文件我们成为shell脚本文件。
工作中最多的编程写脚本,存放在文件里。
6.shell 的变量:
a.全局变量(环境变量)
在整个系统中生效,一般都大写,系统中会默认就存在这样的一些变量,就满足系统和程序运行的需求举例:echo $PS1,
[图片上传失败...(image-25fb29-1555256899630)]
自定义环境变量:
1.export OLDBOY="I am oldboy"
2.OLDBOY =I am oldboy
export
在当前用户生效,的临时变量,去其他用户下就不生效了。
如果想让他永久生效就要加到/etc/profile==>/.bash_profile==>/.bashrc==>/etc/bashrc
环境变量推荐写到etc/bashrc。把要加的变量放在bashrc的里面最下一行。然后可以用tail -1 /etc/bashrc查看
安装Java服务时就会需要环境变量
b.(局部变量)
是编写shell脚本最常用的变量。
变量名=值
a=1
变量名:数字,字母,下划线,不能是数字开头。
oldboy , 123a , _abc
=等号:赋值符,把什么东西给谁
值:东西,变量内容。
引用内容的符号:单引号,双引号,反引号,不加引号。
先赋值什么等于什么,a=1
然后用echo $a
[图片上传失败...(image-a79bcf-1555256899630)]
[图片上传失败...(image-48dad6-1555256899630)]
学习要学会反推。
let 让 let 让实现加法
7.表达式
[表达式] 中括号表达式,中括号两边必须有空格
[图片上传失败...(image-71056-1555256899630)]
[图片上传失败...(image-f3aa19-1555256899630)]
[图片上传失败...(image-25b324-1555256899630)]
[图片上传失败...(image-934f13-1555256899630)]
证书表达式
[图片上传失败...(image-e33129-1555256899630)]
man test里面查记忆方法
[图片上传失败...(image-1060f5-1555256899630)]
正整数表达式符 两面要有空格
中括号两端要有空格
变量和比较的内容,不加引号
字符表达式:
-z 变量为空 字符串长度为0,时为真(表达式正确)。zero
-n 变量内的长度不为0时,为真(表达式正确)。not zero
a == a双等号是相同的意思,单等号是赋值。
1)字符串要加双引号
字符串和不是正数要加双引号
[图片上传失败...(image-d9084a-1555256899630)]
[图片上传失败...(image-766823-1555256899630)]
[图片上传失败...(image-3109b4-1555256899630)]
[图片上传失败...(image-fd2c12-1555256899630)]
书写脚本习惯
1.以.sh结尾。
2.脚本开头第一行#!/bin/bash 脚本内容由谁解释。
由于Linux下默认是bash,所以也可以不写这一行。
[图片上传失败...(image-b6406a-1555256899630)]
交互式写法:先读入 交互式
[图片上传失败...(image-a7a14d-1555256899630)]
[图片上传失败...(image-4cb90a-1555256899630)]
$1脚本文件的第一个参数
$2脚本文件的第二个参数
9.for 循环
for n in 取值列表
do
执行命令
done
[图片上传失败...(image-7f4b01-1555256899630)]
[图片上传失败...(image-a48d8f-1555256899630)]
[图片上传失败...(image-d4f5ea-1555256899630)]
就会报这样的错
[图片上传失败...(image-3e26f7-1555256899630)]
[图片上传失败...(image-2e8181-1555256899630)]
1、比较整数大小。
2、判断日期,每周六日去旅游,其它时间上课。
3、取出当前系统Ip地址,判断是否为10.0.0.31,如果是提示正确,如果不是给出提示。
4、打印10.0.0.1--10.0.0.254个Ip地址,当IP地址为系统IP地址时,给出某IP是系统IP的提示。
-gt
= -ge
< -lt
<= -le
= -eq
不等于 -ne