Shell基础-11
Tutorial: Shell基础
Category: Shell
Published: 2026-04-07 13:58:25
Views: 21
Likes: 0
Comments: 0
Shell 基础-11
- 打印事件格式
#!/bin/bash
echo "显示星期简称(如:Sun)"
date +%a
echo "显示星期全称(如:Sunday)"
date +%A
echo "显示月份简称(如:Jan)"
date +%b
echo "显示月份全称(如:January)"
date +%B
echo "显示数字月份(如:12)"
date +%m
echo "显示数字日期(如:01 号)"
date +%d
echo "显示数字年(如:01 号)"
date +%Y
echo "显示年-月-日"
date +%F
echo "显示小时(24 小时制)"
date +%H
echo "显示分钟(00..59)"
date +%M
echo "显示秒"
date +%S
echo "显示纳秒"
date +%N
echo "组合显示"
date +"%Y%m%d %H:%M:%S"
- 过滤 MAC 地址
#!/bin/bash
egrep "[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}" $1
MAC地址, 也就是网卡MAC码.网卡MAC码是由IEEE的注册管理机构固定分配的,因此每一个主机会有一个MAC地址, 具有全球唯一性.
需求分析
因为业务需求需要用验证MAC地址是否合法, 因而想到用正则进行匹配.
原正则表达式为:
([A-Fa-f0-9]{2}-){5}[A-Fa-f0-9]{2}
因为考虑到MAC地址一般有两种格式, 使用-连接或是:连接, 于是我稍作改动, 改动结果如下:
/(([a-f0-9]{2}:)|([a-f0-9]{2}-)){5}[a-f0-9]{2}/gi
以上正则表达式就是最终版的MAC地址验证表达式, 如果不清楚具体原理可以接着往下看.
拆解分析
1. [a-f0-9]
匹配a到f或0到9中的任意一位字符.
匹配的结果例如2或d.
2. [a-f0-9]{2}
匹配连续两位的括号中任意字符.
匹配的结果例如d2或ac.
3. [a-f0-9]{2}:
连续两位的括号中任意字符再拼接一个:(冒号).
匹配的结果例如b2:或23:
4. ([a-f0-9]{2}:)|([a-f0-9]{2}-)
在第三步的基础上可以将冒号替换为横杠.
匹配的结果例如f3:或79-
5. (([a-f0-9]{2}:)|([a-f0-9]{2}-)){5}
将第四步的结果重复5次.
匹配的结果例如00-01-6C-06-A6-或00:01:6C:06:A6:
6. (([a-f0-9]{2}:)|([a-f0-9]{2}-)){5}[a-f0-9]{2}
在第五步的结果上再拼接两个[A-F0-Z]范围内的两个字符
匹配的结果例如00-01-6C-06-A6-29或00:01:6C:06:A6:29
7. 设置大小写不敏感与全局匹配
在正则最后加上/ig.
完整的正则表达式也就是:
/(([a-f0-9]{2}:)|([a-f0-9]{2}-)){5}[a-f0-9]{2}/gi
- 生成私钥和证书
#!/bin/bash
read -p "请输入存放证书的目录:" dir
if [ ! -d $dir ]; then
echo "该目录不存在"
exit
fi
read -p "请输入密钥名称:" name
openssl genrsa -out ${dir}/${name}.key
openssl req -new -x509 -key ${dir}/${name}.key -subj "/CN=common" -out ${dir}/${name}.crt