shell脚本基础学习
一.shell的解释:
- shell具备编程的能力
- shell是一种解释型语言(不需要提前编译,一边执行一边解释,每种解释性语言都有解释器)
- shell语言支持大部分编程语言都具备的功能(if判断,for循环,变量,数组,函数,加减乘除,逻辑运算)
二.shell脚本的规范模板
tips:
- shell脚本的本质上其实是命令的堆积。(把多个命令写入到一个文件里面)
- shell脚本对于运维来说,可以边写一些运维工具。
1.shell脚本的组成:
vim user.sh
#!/bin/bash #指定解释器(环境声明)
#注释信息
可执行代码.....
2.写shell脚本的步骤
- 明确任务需求
- 按需求整理好每一个步骤,先做什么,后做什么
- 运行脚本,并根据运行结果,排除错误
- 优化脚本并达到最终效果
三.编写脚本
1.通过shell脚本在屏幕输出一句hello word
vim hello.sh
#!/bin/bash
echo hello word
chmod u+x hello.sh
./hello.sh
2.编写一个创建用户的脚本
vim user.sh
#!/bin/bash
useradd studnet
echo 123|passwd --stdin student
chmod u+x
./user.sh
脚本其中一个失败不会影响接下来的命令,会继续执行下面的命令(除非卡住,那就不会继续执行)
3.编写一个查看网卡,内核,内存,磁盘的使用情况 的信息
uptime(显示top命令的第一行)
vim cat.sh
#!/bin/bash
hostname
uname -rs
ifconfig ens32|head -n 2
free -h
df -h
uptime
chmod u+x
./cat.sh
4.编写一个搭建本地yum源的脚本
vim yum.sh
#!/bin/bash
echo '正在搭建本地yum源'
mount /dev/cdrom /media
echo '[redhat]#回车
name=redhat#回车
baseurl=file:///mdedia#回车
gpgcheck=0#回车
enabled=1#回车' > /etc/yum.repos.d/yum.repo
yum clean all &> /dev/null#不管正确错误都收集结果到黑洞文件
yum repoist|tail -1
shell脚本的执行方式
1.赋予文件执行权限后,可以用当前路径和绝对路径执行
2.调用解释器执行脚本文件
bash hello.sh (只要能tab补全就是对的)
echo常用特殊符号补充:
- "" 双引号,引用整体
- ''引用整体并取消所有特殊字符的含义
- $[] 四则运算(+-*/%取余数)
- $() 将命令的输出结果作为参数
- #反撇 `` 将命令的输出结果作为参数
重定向操作
解释:
重定向操作:将前面命令的输出结果,写入到其他的文本文件中
重定向的表示符号
- > 重定向输出(覆盖)
- >>重定向输出(追加)
- <输入重定向(覆盖)
- <<输入重定向(追加)
- >只收集正确的输出结果
- 2>只收集错误的输出结果
- &>正确错误都收集