第16天 基础符号 正则符号

mac2025-08-02  1

系统基础符号说明

基础符号系列

#的作用

注释的意思 命令提示符中,表示用户身份 --root管理员

$的作用

调取变量 命令提示符中,表示用户身份 --普通用户 读取文件中指定列的信息

|的作用

将管道符号前边命令输出的结果交给管道后面的命令进行处理

!的作用

取反操作 快速调取历史命令 !命令 练习: 用!从oldboy/oldboy01目录中, 将 01.txt 02.txt 文件找出来 history 查看历史命令记录 history -c 清除历史命令记录 history -w 将内存中保存历史记录永久保存到~/.bash_history文件中

引号符合系列

" "

将指定信息输出显示 可以将特殊的字符信息进行解析输出

’ ’

将指定信息输出显示 所见即所得 sed ‘s#$oldboy#olddog#g’ 文件信息

没有引号

和双引号功能是类似的 但是没有引号情况可以输出序列信息

反引号

将反引号中命令信息先执行,将执行后结果交给反引号外面的命令进行处理 cp /etc/hosts /etc/hosts_date +%F

路径符号系列

~代表当前系统用户家目录 .表示当前目录 或者 隐藏文件 …表示上级目录 -表示上一次所在目录

定向符号系列

1)> 标准输出重定向符合 2)>>标准输出追加重定向符合 3)<标准输入重定向符合 4)<<标准输入追加重定向符合 5)2>错误输出重定向符合 6)2>>错误输出追加重定向符合

逻辑符合系列

&&代表前一个事情成功完成了,再做下一件事情 ||表示前一个事情出现失败了,在做下一件事 (shell脚本里用的多)

系统通配符号说明

匹配任意字符信息 * { }匹配序列信息 生产数字或者或者字母序列 生产组合序列信息 echo /oldboy/oldboy.txt{,.bak} 快速备份: cp /oldboy/oldboy.txt /oldboy/oldboy.txt.bak --简化-- cp /oldboy/oldboy.txt{,.bak} 快速恢复: cp /oldboy/oldboy.txt.bak /oldboy/oldboy.txt --简化-- cp /oldboy/oldboy.txt{.bak,}

cp /oldboy/oldboy.txt.bak /oldboy/oldboy.txt

系统正则符号说明

基础正则符号:BRE

^ 匹配以什么开头的信息 ^XXX $ 匹配以什么结尾的信息 XXX ^$ 匹配空行信息 练习:排错空行不显示 . 匹配任意一个且只有一个字符 练习:找出以m开头m结尾的行 grep sed awk 处理文件时,会按照每一行处理文件 *代表匹配星号前面的一个字符连续出现0次或多次的情况 .*表示任意所有内容 PS: 1)正则符号使用时,可以使用在一起结合使用 2)正则符号做匹配时,有贪婪的特性 解决贪婪就设定个节点 [ ] 匹配多个字符信息 [^]将匹 配多个字符进行取反 \ 转义符号 1)将有意义的字符变得没有意义 2)将没有意义的字符变得有意义 \n换行符 \t制表符 \r取下一个 3)让扩展正则可以变为基础正则???

扩展正则符号:ERE

通配符号和正则符号区别:

通配符号:匹配文件名称信息 基础命令时可以识别通配符号 正则符号:匹配文件内容信息 高级命令可以识别正则符号 (三剑客)

练习: 环境准备: mkdir oldboy01 oldboy02 oldboy03 touch oldboy01.txt oldboy02.txt oldboy03.txt 01. 将普通文件名称是old开头, 文件大小小于100k找出来, 并移动到/tmp目录 cat /etc/services >>oldboy01.txt find /oldboy -type f -name “old*” -size -100k | xargs mv -t /tmp

02. 将普通文件名称是.txt结尾, 文件权限为600权限找出来, 并复制到/tmp目录中 chmod 600 oldboy02.txt find /oldboy -type f -name "*.txt" -perm 600 | xargs cp -t /tmp 03. 将普通文件名称是02.txt找出来, 但不包含oldboy02目录中的, 进行批量删除(至少三种方法) touch oldboy{01..03}/{01..03}.txt find /oldboy -type f -name "02.txt" ! -path "/oldboy/oldboy02/*" -delete find /oldboy -type f -name "02.txt" ! -path "/oldboy/oldboy02/*" -exec rm -f {} \; find /oldboy -type f -name "02.txt" ! -path "/oldboy/oldboy02/*" | xargs rm
最新回复(0)