IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 1. 系统符号与正则符号 -> 正文阅读

[开发工具]1. 系统符号与正则符号

系统符号

系统基础符号

美元符号:$

	  · 用于取出变量中的内容
	  · 表示用户命令提示符号
		普通用户为 $ (超级用户为 #)
	  · 表示一行的结尾 vim中快捷键$,到一行的结尾
	  · 用于取出指定列的信息(awk)
	    例:echo {01..999}|xargs -n7|awk '{print $1}'输出1-999,按7列显示,选取第一列打印

叹号符号:!

     · 用于表示取反或者排除意思
     · 命令行中表示取出最近命令   
       但是建议使用 ctrl + r 调取历史命令/history |grep xxx  
       history -c清除历史记录 history -w保存历史命令到家目录的.bash_history里
     · 用于表示强制操作处理
   	   vim底行模式保存 退出 wq! q!

管道符号:|

	  表示管道符号,管道前面命令执行完结果,交给管道后面执行 经常配合xargs命令使用
	  例:
	  查找指定数据信息进行删除
	  find /oldboy -type f -name "oldboy*.txt"|xargs rm
	  find /oldboy -type f -name "oldboy*.txt" -exec rm -rf {} \;
	  find /oldboy -type f -name "oldboy*.txt" -delete
	  查找指定数据信息进行复制
	  find /oldboy -type f -name "oldboy*.txt" |xargs -i cp {} /oldgirl/
	  find /oldboy -type f -name "oldboy*.txt" |xargs cp -t /oldgirl/
	  find /oldboy -type f -name "oldboy*.txt" -exec cp -a {} /oldgirl \;
	  查找指定数据信息进行移动
	  find /oldboy -type f -name "oldboy*.txt" |xargs -i mv {} /oldgirl/
	  find /oldboy -type f -name "oldboy*.txt" |xargs mv -t /oldgirl/
	  find /oldboy -type f -name "oldboy*.txt" -exec mv {} /oldgirl \;
	

井号符号:#

	  表示文件内容注释符号
	  表示用户命令提示符号
	  超级用户为 #

引号符号系列

  	  生成数值序列信息时不用加引号
	  双引号 ""
	  表示输入内容,就是输出内容,但是有时部分信息会被解析(内容为变量时)
	  
	  单引号 ''
	  表示输入内容,就是输出内容 单引号里面是什么,输出的就是什么(所见即所得)
	  
	  反引号 ``
	  表示命令执行结果留下,用于其他命令调用
	  
      美元括号:$()
	  表示命令执行结果留下,用于其他命令调用 类似 反引号

定向符号系列

小于符号:
	  单个小于符号 < 标准输入重定向符号
	  例:tr "a-z" "A-Z" < /etc/hosts
	
	  例:利用tr + /dev/urandom 产生随机数
	  tr -cd 'a-zA-Z0-9'  < /dev/urandom | head -c 6
	
	  两个小于符号 << 标准输入追加重定向符号
      例:
	  cat >> /boy.txt << EOF
	  boy01
	  boy02
	  boy03
	  EOF
	   
大于符号:
	  单个大于符号  >  标准输出重定向符号
				   2>  错误输出重定向符号
	  两个大于符号  >> 标准输出追加重定向符号   
				   2>> 错误输出追加重定向符号

路径信息系列

	  单点符号:.  表示当前目录
	  双点符号:.. 表示上级目录
	  波浪符号: ~  表示用户家目录信息
				   超级用户:/root
				   普通用户:/home/用户名称
	  横线符号: -  两个目录路间进行切换
	               cd - == cd $OLDPWD 作用为切换到上一次访问的目录

逻辑符号系列

	  并且符号:&&  表示前面的命令执行成功,再执行后面的命令
	  或者符号:||  表示前面的名称执行失败,再执行后面的命令
	  
	  例:
	  mkdir /boy11 && echo ok || echo fail
      ok
      mkdir /boy11 && echo ok || echo fail
      mkdir: cannot create directory ‘/boy11’: File exists
      fail

系统通配符号

匹配的是文件名称信息
匹配任意字符信息 *

例:  find /boy -name "boy*"
	  rm -rf /boy/*txt

生成序列信息符号 {}

	  数字序列: {01..10}
	  奇数序列: {01..10..2}奇数序列中间差值是2,所以后面加..2
      偶数序列: {00..10..2}
      字母序列: {a..z}
	  
	  组合序列: {12}{ab}会得到 1a 1b 2a 2b的结果
	  cp boy.txt{,.bak}   --- 快速复制备份数据,结果是cp boy.txt boy.txt.bak
	  cp boy.txt{.bak,}   --- 快速还原备份数据,结果是cp boy.txt.bak boy.txt

基础正则符号

通配符用于匹配文件名信息 基础命令结合使用find cp mv 等命令
正则符号用于匹配文件内容信息 高级命令结合使用grep awk sed命令

正则符号用途说明:
   1. 可以利用符号表达特殊匹配作用
   2. 可以分析日志文件中数据信息
   3. 可以被三剑客命令所调用
	   测试文件准备:
	   cat >>/oldboy/test.txt<<EOF
       I am oldboy teacher!
       I teach linux.
       
       I like badminton ball ,billiard ball and chinese chess!
       my blog is http://oldboy.blog.51cto.com
       our site is http://www.etiantian.org
       my qq num is 49000448.
       
       not 4900000448.
       my god ,i am not oldbey,but OLDBOY!
       EOF

基础正则符号:

	   ^  --- 匹配以什么开头的信息
	      # grep ^m test.txt 
          my blog is http://oldboy.blog.51cto.com
          my qq num is 49000448.
          my god ,i am not oldbey,but OLDBOY!
       $  --- 匹配以什么结尾的信息
	      # grep m$ test.txt 
          my blog is http://oldboy.blog.51cto.com
	   ^$ --- 匹配空行信息
	     grep -v "^$" test.txt 排除空行显示内容

  		.  --- 匹配任意一个字符,且只匹配一个字符  
          # grep g.d test2.txt 
          god
	   *  --- 匹配*前面一个字符连续出现0次或者多次
	      # grep o* test2.txt -o
          o
          oo
          ooo
	   .* --- 匹配所有内容
	      # grep "^m.*m$" test.txt 
          my blog is http://oldboy.blog.51cto.com
	   \  --- 转义符号
	      1) 将有意义符号变得没有意义
		     # grep "\.$" test.txt 
             I teach linux.
             my qq num is 49000448.
             not 4900000448.
		  2) 将没意义字符变得具有意义
		     \t  -- 制表符 
			 \n  -- 换行符
			 \r  -- 换行符
	   []  --- 匹配多个字符信息, 多个字符是或者关系匹配
	   [^] --- 将匹配多个字符信息, 进行排除或者取反   

扩展正则符号

扩展正则符号: (属于高级符号)
三剑客只有awk能识别,grep 与sed想要识别,需要做以下操作转换
grep -E 扩展正则
egrep 扩展正则
sed -r 扩展正则

       +  --- 匹配“+”号前一个字符连续出现1次或者多次
       # grep  -E "o+"  test2.txt 
       god
       good
       goood 
	   例:grep -E [0-9]+ test.txt 匹配+号前连续出现的数字字符
	      grep -E [a-z]+ test.txt 匹配+号前连续出现的字母字符
       ?  --- 匹配 "?" 前一个字符连续出现0次或者1次   	
       
       ?号是一个一个的进行匹配的,+号是一个或者多个的进行匹配	   
       
       例:
	   grep  -E "o?"  test2.txt 
       gd
       god
       good
       goood
       
       grep  -E "o+"  test2.txt -o  通过grep的-o参数,可以看出匹配的过程中,+号是一个或者多个的进行匹配
       o
       oo
       ooo
       
       grep  -E "o?"  test2.txt -o  通过grep的-o参数,可以看出匹配的过程中,  ?号是一个一个的进行匹配的
       o
       o
       o
       o
       o
       o
     {} --- 匹配" {}" 前一个字符连续出现指定次数
     {n,m}  --- 匹配"{}" 前一个字符连续最少n次,最多m次 
     
     例:
     grep -E "o{1,2}" test2.txt 
     god
     good
     goood
     gooood
     goooood
     
     grep -E "o{1,2}" test2.txt -o	查看匹配过程
     o
     oo
     oo
     o
     oo
     oo
     oo
     oo
     o
     {n}  --- 匹配“{}“ 前一个字符连续出现n次
     
     例:
     grep -E "o{2}" test2.txt -o
     oo
     oo
     oo
     oo
     oo
     oo
     
     grep -E "o{2}" test2.txt
     good
     goood
     gooood
     goooood
    {n,} --- 匹配”{}“前一个字符连续最少n次,最多没有限制
    
    例:
     grep -E "o{2,}" test2.txt
    good
    goood
    gooood
    goooood
    
    grep -E "o{2,}" test2.txt -o
    oo
    ooo
    oooo
    ooooo
     {,m} --- 匹配”{}“前一个字符连续最少0次,最多m次 
     
  	 例:
     grep -E "o{,3}" test2.txt
     gd
     god
     good
     goood
     gooood
     goooood
     
     grep -E "o{,3}" test2.txt -o
     o
     oo
     ooo
     ooo
     o
     ooo
     oo
     |  --- 匹配多个字符串信息
     grep -E "oldboy|oldbey" test.txt 
     I am oldboy teacher!
     my blog is http://oldboy.blog.51cto.com
     my god ,i am not oldbey,but OLDBOY!
     
     grep -E "oldb[oe]y" test.txt 
     I am oldboy teacher!
     my blog is http://oldboy.blog.51cto.com
     my god ,i am not oldbey,but OLDBOY! 	   
     
     # grep -Ev "^$|^#|#" /etc/selinux/config 
     SELINUX=enforcing
     SELINUXTYPE=targeted
     () --- 将多个字符组合成一个整体进行匹配指定信息   
     grep -E "(oldboy)" test.txt 
     结果:
     I am oldboy teacher!
     my blog is http://oldboy.blog.51cto.com
     												(两个效果一样)
     grep  "oldboy" test.txt 
     结果:
     I am oldboy teacher!
     my blog is http://oldboy.blog.51cto.com
     
     
        --- 后向引用前项
     echo 54321 | sed -r 's#([0-9]+)#<\1>#g' 	
     ‘\1’代表引用第一个()的内容 \2就代表第二个()的内容
     输出结果:
     <54321>
     
     echo 1234567890 | sed -r 's#([0-9]+)#<\1>#g'
     <1234567890>

如何取出IP地址:
思路 先找出有IP地址行 – 利用正则匹配出IP地址
IP地址的格式: 数字. 数字. 数字. 数字 (192.168.10.1)
ip a s eth0|grep "inet "| grep -E '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
结果就会选中以下两个IP
inet 10.0.0.201/24 brd 10.0.0.255 scope global noprefixroute eth0

可以将三个重复的"[0-9]{1,3}.“转换为”([0-9]{1,3}.){3}"
ip a s eth0|grep "inet "| grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}'
inet 10.0.0.201/24 brd 10.0.0.255 scope global noprefixroute eth0
ip a s eth0|grep "inet "| grep -E '([0-9]{1,3}\.?){4}' -o |head -1
10.0.0.201

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-14 10:07:34  更:2022-05-14 10:08:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 9:01:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计