当前位置: 首页 > news >正文

SHELL 编程正则表达式

一、自动磁盘分区与挂载

核心工具fdisk(分区)、mkfs(格式化)、mount(挂载),结合expect实现自动化交互。
脚本关键点

  • 使用expect脚本模拟交互式输入(如n创建分区、p主分区、wq保存)。
  • 示例命令:
expect << EOF  
spawn fdisk /dev/sdc  
expect "命令*" {send "n\r"}  
# 后续依次响应分区类型、大小等提示  
expect eof  
EOF  

二、批量用户创建与管理

场景:通过expect远程批量创建用户到多台主机。
脚本核心

  • 使用ssh远程连接,useradd创建用户,passwd --stdin设置密码。
  • 示例片段:
expect << EOF  
spawn ssh root@10.0.0.12  
expect "password" {send "123456\n"}  
expect "]#" {send "useradd jack\n"}  
expect "]#" {send "echo 123456 | passwd --stdin jack\n"}  
EOF  

三、正则表达式基础
1. 字符匹配
  • 单字符匹配
    • .:任意单个字符(如st..e匹配state)。
    • []:指定范围内字符(如[a-z]匹配小写字母)。
    • [^]:范围外字符(如[^0-9]匹配非数字)。
  • 示例
grep '[s-t]' file  # 匹配包含s到t之间字母的行  

2. 锚定匹配
  • 位置限定
    • ^:行首(如^user匹配以 user 开头的行)。
    • $:行尾(如\.conf$匹配以.conf 结尾的行)。
    • \</\>:单词首尾(如\<root\>匹配独立单词 root)。
  • 示例
grep '^[a-z]' file  # 匹配以小写字母开头的行  
3. 分组与限定
  • 分组:用()提取匹配内容,\1引用第一组,\2引用第二组。
egrep '(server\.[0-9])' config  # 提取server.x格式内容  
  • 次数限定
    • *:任意次(如ab*c匹配 ac、abc、abbbc)。
    • +:至少 1 次(如ab+c匹配 abc、abbbc)。
    • {m,n}:m 到 n 次(如ab{2,4}c匹配 abbbc)。

四、扩展正则与应用
1. 特殊字符集
  • 预定义字符集
    • [:alnum:]:字母 + 数字,[:digit:]:数字,[:lower:]:小写字母。
  • 示例
grep "[[:digit:]]{3}" file  # 匹配3位数字  
2. 实际应用场景
  • IP 地址验证
    egrep '^([0-9]{1,3}\.){3}[0-9]{1,3}$' ip.txt  # 简单IP格式匹配  
    
  • 网址验证
    egrep '^http(s)?://[a-z0-9]+\.[a-z]{2,5}$' url.txt  
    
  • 手机号 / 邮箱验证
    egrep '^1[3-9][0-9]{9}$' phone.txt  # 手机号格式  
    egrep '^[a-z]+@[a-z]+\.[a-z]{2,5}$' email.txt  # 邮箱格式  
    

    五、自动化检测脚本

    核心逻辑

  • 定义正则表达式验证输入格式(IP、网址、手机号等)。
  • 使用expectshell命令(如pingcurl)检测目标存活。
  • 示例功能:
    • 主机存活检测:ping -c1 -W1 IP
    • 网站可用性检测:curl -s -o /dev/null URL

相关文章:

  • NY230NY233美光固态闪存NY237NY246
  • 社区养老模式:现状、困境与破局之道
  • 准确--CentOS 7.9在线安装docker
  • 8.4.1简单选择排序
  • idea maven打包很慢,怎么提速-多线程
  • 中级统计师-经济学基础知识-第二章 企业生产理论
  • ES6+核心特性
  • 电商运营公司排名
  • 挑战杯应用赛道
  • xss注入遇到转义,html编码绕过了解一哈
  • 基于 SpaCy DependencyMatcher 编写复杂依存关系规则实战指南
  • 【浅谈】Agent 的存在具有什么意义
  • java集合(九) ---- Stack 类
  • 基于飞凌嵌入式i.MX9352嵌入式开发板M核的FreeRTOS设计例程
  • 算法题(168):逆序对
  • 牛客小白月赛118
  • DMC-E 系列总线控制卡----雷赛板卡介绍(六)
  • XPath 注入与修复
  • 前端面经整理【2】
  • 12V,24V降5V,12V,输出大电流15A电源解决方案的理想选择WD5030A
  • 辽 icp 大连 网站建设/百度免费seo
  • 湖南网站建设的公司排名/关键词seo排名优化推荐
  • openwrt安装wordpress/万词优化
  • 网站建设内容工作总结/北京软件培训机构前十名
  • 网站设计)/提升seo排名
  • 西安免费自助建站模板/中国局势最新消息今天