美文网首页
Linux常用命令之--重定向

Linux常用命令之--重定向

作者: 逗儿比的日常 | 来源:发表于2020-12-12 14:58 被阅读0次

    标准输入、输出以及错误输出

    • 标准输入:过滤器的数据来源
    标准输入stdin(0):默认是键盘
    • 标准输出:过滤器的数据去向。
    标准输出stdout (1):默认是终端屏幕
    • 标准错误输出 :报错讯息与标准输出走不同的I/O通道
    标准错误输出stderr(2):默认是终端屏幕

    重定向

    标准输入、输出与错误输出,都可以用特定符号改变数据来源或去向
    常见的重定向
    • 输入重定向
    • 输出重定向
    • 追加重定向
    • 错误输出重定向
    • 双重输出重定向

    输入重定向

    有一些指令需要用户从标准输入(键盘)来输入数据,但某些时候如果让用户手动输入数据的话,将会相当麻烦,这时使用 “<” 来重定向输入源就会很方便
    • 例:mail -s “hello” panshouwen@shida-edu.cn < file -s后面接的是右键标题
    这个file就是提前写好的一个文件。这样file文件里的内容就是要发的邮件的正文
    但是不能这样写👉file > mail -s “hello” [panshouwen@shida-edu.cn]
    因为本身file只是一个文件,只输入这个会显示bash:panshouwen:command not found
    可以这样👉cat file | mail -s “hello” [panshouwen@shida-edu.cn]
    而尖角号后面得是个文件,所以这样写👇也不行
    cat file > mail -s “hello” [panshouwen@shida-edu.cn]

    输出重定向

    大多数的指令在正确执行后都会有一个执行结果显示在标准输出(屏幕终端) 上。用户可以使用 “>” 改变数据输出目标,一般是另存到一个文件中供以后分析,而不再显示屏幕终端上
    • 范例:df -h > mydisk
    将当前系统的磁盘分区的使用状况保存到mydisk文件中,不让它显示在屏幕上
    注意:如果原文件存在并有内容,那么新的执行结果会覆盖原文件内容。如果没有该文件的话会新建这个文件

    追加重定向

    在上节中提到,使用“>”进行输出重定向,文件的原内容会被覆盖。那么 有没有一个办法不覆盖原文件内容,只是追加在其后呢?使用“>>”,就可以将正确的输出结果追加到一个文件中
    例:ls –l >> listfile

    错误输出重定向

    如果一个指令执行错误时,也会在屏幕上显示错误提示信息。虽然它与标准输出一样都会将结果显示在屏幕上,但它们占用的I/O通道不同。如果要将错误结果重定向到另一个地方则就不能再使用“>”来实现了,得使用 “2>” 将报错讯息重定向
    例:ds -h 2> error
    也可使用“2>>”将报错讯息追加入一个文件
    例:ds -h 2>> error

    双重输出重定向

    • 如果用户想将正确的输出结果与错误输出结果一次性单独地送到不同的地方可使用下面的双重输出重定向
    例:ls -l 2> error > results
    LS -a 2>> error >> results
    • 如果用户将不管是正确输出还是错误输结果都送到同一个指定的地方则可 使用“&> 或 &>>” 来完成
    例:ls -l &> result
    LS -l &>> error

    输入结束符
    用户可以通过cat > file来创建文件并为文件输入内容,输入结束后按下快 捷键“ctrl+d”结束输入

    [root@server1 ~]# cat > file
    hello every body
    this is a test
    Ctrl+d
    

    这时cat file,就发现里面的内容就是刚才输入的内容。这里的结束符是ctrl+d(组合键)

    使用 << 让系统将一次键盘的全部输入,先送入虚拟的‘当前文档’,然后一次性输入。
    可以选择任意符号作为终结标识符

    [root@server1 ~]# cat > file << quit
    > hello
    > quit
    

    相当于先自己定义了一个结束符,只要内容写完了打上这个结束符编辑就结束了,这里我自定义"quit"为结束符,因此在输入完内容以后输入quit文档就编辑好并保存了,结果如下:


    重定向.png

    相关文章

      网友评论

          本文标题:Linux常用命令之--重定向

          本文链接:https://www.haomeiwen.com/subject/akhsgktx.html