shell脚本基础学习

发布时间 2023-12-12 11:28:50作者: 代码你敲我不敲

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>只收集错误的输出结果
  • &>正确错误都收集