• 重定向,管道符,黑洞文件


    输出重定向:

    将命令的正常输出结果保存到指定的文件,而不是直接显示到屏幕上

    语法:

    • 如果文件不存在,则会创建
     > 文件名
    表示将标准输出的内容,覆盖写到后面的文件中
     >> 文件名
    表示将标准输出的内容,追加写到后面的文件中

     

    将内核的版本信息追加到1.txt文件中

    输入重定向

    将命令中接受输入的路径由默认的键盘改为其他文件

     EOF

    本意是End Of File, 表示到了文件末尾,通常与 << 结合使用, 可以理解为分界符
    • 标记符可以使EOF,也可以是ccc,ddd

     cat > 1.txt << ccc
     之后可以输入内容,直到输入ccc,结束输入

    • 可以看到,文件名前面是 > 是覆盖写入,  >> 是追加写入

    错误重定向

    将命令执行过程中出现的错误信息(选项或参数错误)保存到指定的文件,而不是直接显示到显示器
    • 错误信息保存到文件
    操作符
        错误重定向符号: 2>
        标准输入: 1< 或者简写 <
        标准输出: 0> 或者简写 >
    • 2指的是标准错误输出的文件描述符(标准的输入和输出省略了1和0)
    在实际应用中,错误重定向可以用来收集执行的错误信息, 为排错提供依据
    对于shell脚本还可以将无关紧要的错误信息重定向到空文件/dev/null,保持脚本输出的简介

    将错误显示的内容和 正确显示的内容分开

    接下来查看两个目录

    还可以进行简写,将正确的信息 和 错误的信息追加到两个文件

    null黑洞, 

    把/dev/null看做黑洞,所有写入他的内容都会永远丢失,而尝试从它哪里读取内容则会什么都不会读到
    然而/dev/null对命令行和脚本非常有用

     zeor空文件

    在类UNIX操作系统中,/dev/zero是一个特别的文件,当你读他的时候,他会提供无限的空字符
    典型的用法就是产生一个特定大小的空白文件
    使用dd命令产生一个50M的文件
    参数
    if 代表输入文件,如果不指定if,默认就会从stdin中读取输入
    of 代表输出文件,如果不指定of,默认就会将stdout作为默认输出
    bs 代表字节为单位的快大小
    count 代表被复制的块数

    能查看到文件的大小

    但是不能显示文件的信息,因为没有内容

    &> 和 >&符号

    • &表示等于的意思
    1>&2 将标准输出重定向到标准错误
    2>&1 将标准错误重定向到标准输出

     上图的no.txt文件中多了两个错误文件,是因为追加到文件的

    将正确结果和错误结果放到一个文件中(简写)

     

     互动:工作中shell脚本中的 >/dev/null 2>&1 是什么意思

    将标准输出和错误输出全部重定向到/dev/null中,也就是将产生的所有信息丢弃

    管道 | 的使用

    • 管道命令只处理前一个命令正确输出,不处理错误输出
    • 管道右面的命令,必须能够接受标准输入流才行
    • 关道符可以吧两条命令连起来,可以链接多个命令使用
    ps -aux | grep sshd

     

     tee

    • 读取标准输入的数据,并将其内容输出成文件
    -a 内容追加到给定的文件   而非覆盖
    磁盘使用信息
    df -h            
    
    将磁盘使用的信息写入到文件
    df -h | tee disk.log
    
    将磁盘使用的信息追加写入到文件
    df -h | tee -a disk.log
      

  • 相关阅读:
    maven工程的目录结构
    集合的区别
    名词解析
    1.(字符串)-判断字符串是否是子集字符串
    1.(字符串)-判断两字符串是否相等
    python max函数技巧
    1.(字符串)-子字符串位置查找
    numpy线性代数np.linalg
    Python图像库PIL 使用
    pyhthon-chr
  • 原文地址:https://www.cnblogs.com/sunlizhao/p/9581048.html
Copyright © 2020-2023  润新知