linux非法字符串,Linux 通配符、元字符和特殊字符详解

bash环境中非常有用的功能:通配符、转义字符和特殊字符 下面将逐一介绍

一、 通配符

通配符是一种特殊语句,主要有星号(*)、问号(?)等表示,用来模糊搜索文件,当查找目录或文件时,可以使用通配符来代替一个或多个真正字符。

作用范围:目录和文件名

常见通配符:常用通配符包括 "*"、"?" 、"[ ]"、 "[^ ]" 、"[! ]"和"{}",具体含义见下表

表1-1 通配符具体含义及用法表

字符

含义

*

匹符配任意字

匹配单个字符

[]

匹配方括号中的任意一个,不能用于创建目录和文件

[^]

匹配方括号中的任意一个字符或数字后进行取反,等同于[!  ],表示范围可以用".."或"—”,用于查找和删除目录和文件,不用于创建目录和文件

[!]

匹配方括号中的任意一个字符或数字后进行取反,  等同于[^ ],表示范围可以用".."或"—", 用于查找和删除目录和文件,不用于创建目录和文件

[?-?]

匹配方括号范围内任意一个,用于查询、删除,但不能用于创建目录和文件

{string,string}

匹配括号中的任意一个字符串,表示一个范围时,字符串之间个".."

具体用法一一举例说明

root一次性创建目录f1和f2,现要求一次性通过通配符删除f1和f2文件

a58f53b458ab0e9fd8a78ceb404de987.png

root创建f1到f9,现要求一次性通过通配符创建,并删除f5到f8

错误用法1:使用方括号创建f1到f9的目录,

dfbee2612594c5c12464cdf2b7f212a9.png

错误用法2:使用大括号用-表示范围创建目录f1到f9

1a465de6177ff07ee201fc96a9ed75d7.png

创建目录正确做法:正确做法是采用大括号,范围用“..”表示

901c5dfc07eae583e47a73c9c2be6f01.png

删除目录正确方法之一:用[^ ] 或者 [! ] 取反删除

c665e1416d1b84eb82844ab211ddcb7d.png

二、元字符

元字符:shell负责解释处理,特殊的字符具有特殊的含义。

字符

含义

=

设定变量、函数赋值等

$

作为变量或运算替换

> 或  》

重定向 stdout

< 或 《

重定向 stdin

&

2>1&  把标准错误输出转化为标准正确输出,1>2$把标准正取输出转化为标准错误输出 &>正取错误一起输出

( )

结合$符合"$(  )"实现命令调用,综合运算中括号优先

{}

范围界定,如 for I in  {1..10},变量i取值范围1到10

;

分号,多条命令同行依次执行,执行过程无依赖

&&

上一命令执行反馈正确,即$?=0,则继续执行下一条命令

||

上一命令执行反馈错误,即$?=1,则继续执行下一条命令

! 和 ~

!引用history历史语句,~是home目录

举例说明:

通过ls查看/app/hellohh 和/app 目录的文件,并重定向到1.log文件中,便于问题分析

8fd5a37d58f9d6637d85d6da6e92e3d8.png

通过&>将正确的和错误的标准输出都进行重定向

三、转义字符

转义字符:将通配符和元字符变为本身的字符含义

字符

含义

‘ ’

硬转义,比较傻的字符引用,保留原有字符含义,不进行转义

" "

软转义,对特殊字符进行转义变为具有特殊含义的字符

$()等价于``

强制引用命令,

\

显示原本的特殊字符

具体举例如下:

定义别名baketc,每天手工定期备份/etc目录下所有的文件,备份到/testdir独立子目录,并要求子目录格式bakupyyyy-mm-dd,备份过程可见(强引用``)

478183bc592224b18951cd6b3a45c385.png

增加用户bash、testbash、basher、sh、nologin(shell为/sbin/nologin),找出/etc/passwd文件中,用户名和shell同名的行

cd403d037c67209af10c2c0e333b4f19.png

其中.*后面的第一个\就是转义字符,代表以/string$结尾的字符串

刚配置完网卡信息后,发现IP配置错误,因此利用history命令中记录重新配置网卡信息

d57bea8a41135b3e406961330bed1963.png

0b1331709591d260c1c78e86d0c51c18.png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值