Linux之bash基础特性四

bash的特性:hash,变量
             命令hash :hash命令
             变量:
                    本地变量,环境变量,局部变量
                    位置参数变量,特殊变量
                    变量赋值:name=value,export name=value,declare -x name=value
                    变量引用:$name,${name}
                    撤销变量:unset name
       bash脚本编程,运行脚本
            顶格写#!/bin/bash
            脚本执行中以#开头的 和空白行均被省略
       bash的配置文件 
            profile类:登陆式shell
            bashrc类:非登陆式shell
             
            登陆式shell:读取路径的顺序如下
               /etc/proflile --> /etc/proflie.d/*.sh -->~/.bash_proflie -->~/.bashrc -->/etc/bashrc
            非登陆式shell:读取路径为
                ~/.bashrc --> /etc/bashrc --> /etc/proflie.d/*.sh


文本处理工具:
     Linux上文本处理三剑客:
       grep:文本过滤工具(模式:pattern)工具;
       sed:stream editor,流编辑器;文本编辑工具;
       awk:Linux上的实现为gawk,文本报告生成器(格式化文本);

       正则表达式:Regual Expression ,缩写为REGEXP
               由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面意思,而是用于表示控制或通配的功能;
                     分两类:
                         基本正则表达式:BRE
                         扩展正则表达式:ERE
               元字符:\(hello[[:space:]]\=\)\+

grep: Global search REgular expression and print out the line.
        作用:文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配:答应匹配到的行:
         模式:由正则表达式的元字符及文本字符所编写出的过滤条件:
 
         正则表达式引擎:

         grep [options] pattern [file...]
         grep [options] [-e pattern | -f file] [file...]
                   options:
                          --color=auto:对匹配到的文本着色后高亮显示:
                          -i:ignorance,忽略字符的大小写
                          -o:仅显示匹配到的字符串本身
                          -v,--invert-match: 显示不能匹配到的行
                          -E:支持使用扩展的正则表达式元字符:
                          -q,--quiet,--sllent:静默模式,即不输出任何信息;
                                 用echo $?查看匹配结果 0 表示匹配到  1表示匹配不到
                          -A#:after,显示匹配到的字符串的后#行
                          -B#:before,显示前#行
                          -C#:context,显示前后各#行
                          
                   基本正则表达式元字符:
                           字符匹配:
                                       .:匹配任意单个字符;相当于glob中的?表示匹配任意字符
                                       []:匹配指定范围内的任意单个字符;
                                       [^]:匹配指定范围外的任意单个字符;

                           匹配次数:用再要指定其出现的次数的字符的后面,用于限制其前面字符出现的次数;默认工作贪婪模式;
                                    *:匹配其前面的字符任意次数;0,1,多次;
                                    .*:匹配任意长度的任意字符
                                    \?:匹配其前面的字符0次或1次;即其前面的字符是可有可无的
                                    \+:匹配其前面的字符1次或多次;即其前面的字符要出现至少1次
                                    \{m\}:匹配其前面的字符m次
                                    \{m,n\}:匹配其前面的字符至少m次,至多n次
                                           \{0,n}:至多n次
                                           \{m,\}:至少m次
                            位置锚定:
                                    ^:行首锚定;用于匹配模式的最左侧;
                                    $:行尾锚定;用于匹配模式的最右侧
                                    ^PATTERN$:用于PATTERN来匹配整行
                                           ^$:空白行;
                                           ^[[:space:]]*$:空行或包含空白字符的行;
                                    单词:非特殊字符组成的连续字符(字符串)都称为单词;
                                    \<或\b:词首锚定,用于单词模式的左侧;
                                    \>或\b:词尾锚定,用于单词模式的右侧;
                                    \<PATTERN\>:匹配完整单词;

猜你喜欢

转载自blog.csdn.net/qq_41675254/article/details/82888765