一.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,

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

1万+

被折叠的 条评论
为什么被折叠?



