云计算学习日志-第七周-1-shell脚本

本文详细介绍了Linux Shell的基本概念和操作,包括通配符置换、shell脚本编写以及变量的设置和使用。通过示例展示了如何创建和执行shell脚本,以及如何利用环境变量和自定义变量。此外,还讲解了读取用户输入、浮点运算、随机数生成等高级特性,并提供了多个实用脚本示例,如获取主机信息、判断条件、执行网络测试等。

一.shell介绍

Shell 也是一种程序设计语言,它有变量,关键字,各种控制语句,有自己的语法结构,利用shell程序设计语 言可以编写功能很强、代码简短的程序。
shell是外壳的意思,就是系统的外壳,我们可以通过shell的命令来控制和操作操作系统,比如linux中的shell命令就包括ls、cd、pwd等等,总结来说shell就是一个命令解释器,他通过接收用户输入的shell命令来启动、停止程序的运行或者对计算机进行控制。

1.通配符置换

[root@linux-server tmp]# rm -rf ./*
[root@linux-server tmp]# touch aabcb axyzb a012b ab acb
[root@linux-server tmp]# ls
a012b  aabcb  ab  acb  axyzb
[root@linux-server tmp]# ls a*b
a012b  aabcb  ab  acb  axyzb
[root@linux-server tmp]# ls a?b
acb

[root@linux-server tmp]# rm -rf ./*
[root@linux-server tmp]# touch axb ayb azb axyb
[root@linux-server tmp]# ls
axb  axyb  ayb  azb
[root@linux-server tmp]# ls a[xy]b
axb  ayb
[root@linux-server tmp]# ls a[!xy]b
azb
[root@linux-server tmp]# ls a[!x]b
ayb  azb

[root@linux-server tmp]# rm -rf ./*
[root@linux-server tmp]# touch a0b a1b a9b
[root@linux-server tmp]# ls a[0-9]b
a0b  a1b  a9b

[root@linux-server tmp]# rm -rf ./*
[root@linux-server tmp]# touch aabcb axyzb a012b ab
[root@linux-server tmp]# ls a{abc}b
ls: cannot access a{abc}b: No such file or directory
[root@linux-server tmp]# ls a{abc,xyz}b
aabcb  axyzb
[root@linux-server tmp]# ls a{abc,xyz,012}b
a012b  aabcb  axyzb

2.shell脚本编写
脚本一 vim fxr.sh
在这里插入图片描述
脚本二 vim fxr02.sh
在这里插入图片描述

[root@linux-server ~]# chmod +x fxr02.sh #对文件进行授权
[root@linux-server ~]# bash fxr02.sh # 执行脚本
hello world

脚本测试
1.这将执行该脚本并显示所有变量的值

[root@linux-server ~]# sh -x /root/fxr02.sh 
+ printf 'hello world\n'
hello world

2.不执行脚本只是检查语法模式,将返回所有错误语法

[root@linux-server ~]# sh -n /root/fxr02.sh

3.执行脚本前把脚本内容显示在屏幕上

[root@linux-server ~]# sh -v /root/fxr02.sh
#!/bin/bash
printf "hello world\n"
hello world

二·.变量介绍
1.自定义变量设置

[root@linux-server ~]# a=123
[root@linux-server ~]# echo $a
123

此为临时变量当重新设定新的shell时临时变量消失

[root@linux-server ~]# bash
[root@linux-server ~]# echo $a

2.环境变量

[root@linux-server ~]# export a=100
[root@linux-server ~]# echo $a
100
[root@linux-server ~]# bash
[root@linux-server ~]# echo $a
100
# 重新生成shell则不消失

3.修改配置文件

[root@linux-server ~]# vim /etc/profile
加入export a=100

练习1
编写执行主机信息的脚本
编写一个shell脚本,用于搜集其执行主机的信息,打印结果如下:
[root@linux-server ~]# mkdir /opt/test/script
[root@linux-server ~]# cd /opt/test/script
[root@linux-server script]# vim test.sh
[root@linux-server script]# chmod +x test.sh
[root@linux-server script]# ./test.sh
现在的时间是: 2020-08-22-17:34:03
当前的用户是: root
当前的用户标识: 0
当前的主机名称是: linux-server
当前可用网卡IP是: 192.168.246.148/24

##脚本源码如下
#!/usr/bin/bash

获取主机基本信息

time=date +%F-%T
ip=ip a | grep ens33 | awk 'NR==2 {print $2}'
echo “现在的时间是:” $time
echo “当前的用户是:” $USER
echo “当前的用户标识:” $UID
echo “当前的主机名称是:” $HOSTNAME
echo “当前可用网卡IP是:” $ip

 [root@linux-server script]# source test2.sh
现在的时间是: 2022-07-05-19:02:36
当前的用户是: root
当前的用户标识: 0
当前的主机名称是: linux-server
当前可用网卡IP是: 192.168.21.130/24
[root@linux-server ~]# df -Th | awk 'NR==6 {print $5}'
[root@linux-server ~]# echo  现在cpu的`uptime | cut -d, -f3- `
现在cpu的 load average: 0.08, 0.14, 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值