2019.11.01老男孩day17

标题2019.11.01老男孩day17

1) 系统基础符号说明
2) 系统通配符号说明
3) 系统正则符号说明
a 基础正则符号
b 扩展正则符号

操作系统基础符号介绍:
. … > >> < << ! \ ~ - …
1) 基础符号系列:
#:
作用:
1. 注释说明
2. 命令提示符中, 表示用户身份-- root管理
$:
作用:
1. 调取变量
2. 命令提示符中, 表示用户身份-- 普通用户
3. 读取文件中指定列信息在这里插入图片描述在这里插入图片描述
| : 管道符号
作用:
将管道符号前面命令输出的结果交给管道后面的命令进行处理

管道符号相关练习题在这里插入图片描述

! :作用: 01. 取反操作 02. 快速调取历史命令 !命令信息
在这里插入图片描述
history – 历史
history -c 清除历史命令记录
history -w 将内存中保存历史记录永久保存到~/.bash_history文件中
在这里插入图片描述
在这里插入图片描述在这里插入图片描述2) 引号符号系别:
"" : 将指定信息进行输出显示 可以将特殊字符信息进行解析输出
echo “$PATH which cat oldboy67”
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin /usr/bin/cat oldboy67

   **''**       : 将指定信息进行输出显示 所见即所得
              echo '$PATH `which cat` oldboy67'
              $PATH `which cat` oldboy67
   没有引号 : 和双引号功能是类似, 但是没有引号情况可以输出序列信息
              echo {01..10}     数字序列
			  echo {a..z}       字母序列
			  echo {01..10..2}  奇数序列
			  mkdir oldboy{01..10}	

在这里插入图片描述在这里插入图片描述
seq -w 10 — ? 如何生成奇数序列/生成偶数序列
在这里插入图片描述
反引号 在这里插入图片描述 : 将引号中命令信息先执行, 将执行后结果交给引号外面的命令进行处理
cp /etc/hosts /etc/hosts_date +%F
练习:
环境准备:
vim test.txt
oldboy o l d b o y o l d g i r l 01. 利 用 s e d 如 何 将 oldboy oldgirl 01. 利用sed如何将 oldboyoldgirl01.sedoldboy信息修改替换为olddog
sed ‘s#$oldboy#olddog#g’ 文件信息
在这里插入图片描述
3) 路径符号系列:
~ : 当前系统用户家目录
. : 表示当前目录
表示隐藏文件 .oldboy.txt.swp
中断编辑 – 恢复文件信息R — 删除隐藏文件D
同时编辑 – 其他用户编辑完, 在进行编辑
… : 表示上级目录

4) 定向符号系列:

: 标准输出重定向符号

: 标准输出追加重定向符号 定时任务
2> : 错误输出重定向符号
2>> : 错误输出追加重定向符号
< : 标准输入重定向符号
tr ‘A-Z’ ‘a-z’ < 文件信息
xargs -n1 < 文件信息
<< : 标准输入追加重定向符号
cat >> /oldboy.txt <<EOF
XXX
XXX
EOF
在这里插入图片描述

  1. 逻辑符号系列: shell脚本
    第一件事: 创建目录 /oldboy
    第二件事: 检查是否存在/oldboy
    第三件事: 在/oldboy目录中创建oldboy.txt
    && : 前一个事情成功完成了, 再做下一件事情

           mkdir /oldboy &&  touch /oldboy/oldboy.txt
     	  [root@linux67 /]# mkdi /oldboy &&  touch /oldboy/oldboy.txt
           -bash: mkdi: command not found
           [root@linux67 /]# mkdi /oldboy ; touch /oldboy/oldboy.txt
           -bash: mkdi: command not found
           touch: cannot touch ‘/oldboy/oldboy.txt’: No such file or directory
           
    ||  :  前一个事情出现失败了, 再做一件事情
     [root@linux67 /]# mkdi /oldboy || mkdir /oldboy
           -bash: mkdi: command not found
           [root@linux67 /]# ll -d /oldboy
           drwxr-xr-x 2 root root 6 Nov  1 18:44 /oldboy
     	  
     	  [root@linux67 /]# mkdir /oldboy && touch /oldboy/oldboy.txt || mkdir /oldboy
           [root@linux67 /]# ll -d /oldboy
           drwxr-xr-x 2 root root 24 Nov  1 18:45 /oldboy
           [root@linux67 /]# ll /oldboy
           total 0
           -rw-r--r-- 1 root root 0 Nov  1 18:45 oldboy.txt
           [root@linux67 /]# rm /oldboy -rf
           [root@linux67 /]# mkdi /oldboy && touch /oldboy/oldboy.txt || mkdir /oldboy
           -bash: mkdi: command not found
           [root@linux67 /]# ll -d /oldboy
           drwxr-xr-x 2 root root 6 Nov  1 18:46 /oldboy
           [root@linux67 /]# ll /oldboy
           total 0
    

03. 操作系统通配符号介绍:
* 匹配任意字符信息
find /oldboy -name “old*”/".txt"/"old.txt"
rm /oldboy/.txt /oldboy/oldboy
rm -rf ./* — 清空目录中文件数据(清空可见文件)
rm -rf ./.o* — 删除以O打头的信息
rm -rf ./.* — 删除根目录下面所有数据信息

{} 匹配序列信息
1) 生成数字或者字母序列信息
2) 生成组合序列信息
[root@linux67 oldboy]# echo A{1…3}
A1 A2 A3
[root@linux67 oldboy]# echo {1…3}B
1B 2B 3B
在这里插入图片描述
echo A{,3}
A A3
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

04. 操作系统正则符号:
准备操作环境:
cat >> 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

基础正则符号: BRE basic regular expression
^ — 匹配以什么开头信息 ^xxx
grep “^I” test.txt
练习: 找出文件中以大写字母I开头的信息
在这里插入图片描述
$ — 匹配以什么结尾信息
grep “mKaTeX parse error: Expected group after '^' at position 42: …行信息 grep "^̲” 文件
练习: 排除空行不显示
[root@linux67 oldboy]# grep -v “^$” test.txt
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!

练习: 找出以m开头 和 以m结尾行
[root@linux67 oldboy]# grep “^m.*m$” test.txt
mm
my blog is http://oldboy.blog.51cto.com

^$ 表示空行信息

匹配任意一个且只有一个字符
grep sed awk 处理文件时, 会按照每一行进行处理文件
[root@linux67 oldboy]# grep “.” test.txt -o
I

   a
   m
    
   o
   l
   d

[root@linux67 oldboy]# grep “.$” test.txt
I am oldboy teacher!
I teach linux.
mm
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

  • 匹配星号前面一个字符连续出现0次或者多次情况
    [root@linux67 oldboy]# grep “o*” test01.txt
    gd
    god
    good
    goood
    gooood
    [root@linux67 oldboy]# grep “0*” test.txt
    I am oldboy teacher!
    I teach linux.
    mm
    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!
    

    .* 匹配所有内容

    [] 匹配多个字符信息
    grep “[0-9]” test.txt
    等价于:
    grep “0” test.txt
    grep “1”

    [root@linux67 oldboy]# grep  "[0-9a-zA-Z]" test.txt
    I am oldboy teacher!
    I teach linux.
    mm
    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!
    

    [^xx] 将匹配多个字符进行取反
    [root@linux67 oldboy]# grep “[^0-9a-zA-Z]” test.txt
    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!

    \ 转义符号
    1) 将有意义信息变得没有意义
    [root@linux67 oldboy]# grep “.$” test.txt
    I teach linux.
    my qq num is 49000448.
    not 4900000448.
    2) 将没有意义字符变得有意义
    \n \r — 换行符
    \t
    3) 让扩展正则可以变为基础正则???

    PS:

    1. 正则符号使用时, 可以结合使用
    2. 正则符号做匹配时,有贪婪匹配特性
      解决贪婪:
      [root@linux67 oldboy]# grep “^I.*e ba” test.txt
      I like badminton ball ,billiard ball and chinese chess!

    扩展正则符号: ERE extended regular expression

    通配符号 和 正则符号 区别:
    通配符号: 匹配文件名称信息 * 基础命令可以识别通配符号 find rm cp ll
    正则符号: 匹配文件内容信息 高级命令可以识别正则符号 grep sed awk

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值