一.输出重定向
- 标准输出:是将信息输出在终端
 - 标准错误输出:在执行命令的过程中所产生错误信息也是输出在终端
 - 标准输入:从键盘输入
 
1.1标准输出重定向
- 作用:将本来要显示在终端上的信息重定向到一个文件中
 
 
 实现方法: 
 
- > 将文件中原有的内容全部删除,然后进行写入
 - >> 在文件原有的内容后,追加新的内容
 
1.2标准输出错误重定向
- 2>
 - 2>>
 
二.通配符
- .* 任意长度的任意字符
 - ?一个长度或者字符
 - && 只有前面的命令执行成功,后面的命令才会执行
 - || 只有前面命令执行失败,才会执行后面的命令
 - # 注释行(描述信息,不执行)
 - | 传递命令的执行结果
 - ~ 家目录
 - - 上一次所在的目录
 - $ 变量前加的符号
 - / 路径分隔符(或者根)
 -  
   “> >>” 重定向
 -  
   << 打印菜单
 
- 引号 
    ' ' : 弱引用,引用的内容原样输出" " : 强引用,引用中变量会变成变量的值`` : 命令替换
 -  
    
. 点
.表示当前目录.. 上一级目录 
- {} 
   mkdir {1..10}.dir
 
三.正则表达式
- 构成:一堆特殊符号和字母构成----元字符
 - 作用:通过对文本中内容进行过滤,然后对文件中的内容进行过滤
 
正则表达式的种类:
- 基础正则表达式
 - 扩展正则表达式
 
通常结合三个命令使用:
- grep
 - sed
 - awk
 
①:grep命令
- 作用:对文件中的内容进行过滤
 - 格式:grep 选项 匹配内容 文件
 
 
  选项: 
 
 
 - -v:取反
 - -o:仅仅显出所匹配的内容
 - -E:使用扩展
 - -i:忽略大小写
 
通配符和正则的区别:
- 通配符是对文件名进行匹配,正则表达式是对文件中的内容进行匹配
 
正则中元字符:
3.1.匹配单个字符
- .表示任意一个字符(可以空格逗号字母数字...)
 
例子:匹配a前面有一个字符的行
grep".a"11.txt 
   
  3.2.[ ] 表达范围内的其中一个
- [123456] 表示匹配1或2或者3...6
 - [0-9]匹配所有的数字
 - [A-Z]匹配所有大写的字母
 - [a-z]匹配所有小写的字母
 - [a-Z]匹配所有的字母
 
 
   例子:匹配文件中包含数字的行 
  
 
  grep [0-9] file 
    
    例子:包含字母 
    a 
    的行 
   
 
   grep "a" file 
    3.3.字符集表达方式
- [[:space:]]:表示一个空格
 - [[:digit:]]:表示任意一个数字
 - [[:lower:]]:表示任意一个小写字母
 - [[:upper:]]:表示任意一个大写字母
 - [[:alpha:]]:表示任意一个字母
 - [[:alnum:]]:表示任意一个字母+数字
 - [[:punct:]]:表示任意一个标点符号
 
 
     例子:匹配一个包含小写字母的行 
    
 
    grep [a-z] file
grep [[:lower:]] file 
      3.4^[ ]
 
       例子:匹配以 
       # 
       开头的行 
      
 
      grep ^[#] file 
        
        [^a]  
        匹配除了 
        a 
        以外的任意字符 
       
 
       grep [^a] file 
         
         例子:过滤没有包含 
         qaz 
         的行 
        
 
        grep [^qaz] file 
         
         例子:过滤出 
         # 
         开头后面有一个空格的行 
        
 
        grep "^#[[:space:]]" file 
         3.5.显示匹配到的行的前的若干行
- -An:显示匹配到的内容的后n行
 - -Bn:显示匹配到的内容的前n行
 - -Cn:显示匹配到的内容的前后各n行
 
 
          例子:匹配包含 
          root 
          的行的前 
          3 
          行 
         
 
         grep -B3 "root" file 
          3.6.次数匹配
- "*"前面字符出现了任意次数
 - ".*" 表示任意长度的任意字符
 - "?"表示其前面字符出现最多一次
 - "a\[m,n\]b" 表示b前面的a至少出现m次,最多出现n次
 - -E a[m,n]b 加一个选项-E 则不需要加\,用法同上
 
例子:b前面的a只出现一次
grep -E "a{1,1}b" file 
           
           例子:b前面的a至少出现1次,最多次数不限 
          
 
          grep -E "a{1,}b" file 
            3.7.位置锚定
- ^ 表示以n为开头的行
 - $ 表示以n为结尾的行
 
例子:过滤出以y为结尾的行
grep "y$" file
 
            3.8.分组
- \( \) 将一个内容当作一个整体看待
 - \1 调用第一个整体
 - \2 调用第二个整体
 
 
             例子:在 
             11.txt 
             中,过滤出出现过俩个相同数字的行 
            
 
            grep "\([[:digit:]]\).*\1" file 
             3.9.扩展正则表达式
格式:
- grep -E 匹配内容 file
 - egrep 匹配内容 file