zoukankan      html  css  js  c++  java
  • Linux学习-管道与重定向

    Shell

    管道与重定向

    • 管道与管道符

      • 管道也是进程通信的方式之一
      • 管道符 “|”,将前一个命令执行的结果传递给后面的命令
        • ps | cat
        • echo 123 | ps
        • 管道符两边若是外部命令,则会建立子进程。若是使用内部命令,建议将命令封装在脚本之内再去执行。若无必要,避免在管道符内使用内部命令。
    • 子进程与子shell

      • 子Shell是由父Shell创建的进程,父Shell创建子Shell调用的是fork函数。
      • 内建命令不创建子Shell而外部命令创建子Shell。
      • 冒号用法:冒号可以表示永真(相当于TRUE关键字)如while :;do...done(while循环的条件始终为真);其次冒号可以清空一个文件,:>log将冒号重定向到文件,log文件内容被清空,所 以:>命名是常用的清空文件的命令;接着冒号最重要的用法是:不做任何事,只做参数展开。
      • 圆括号结构,能强制将其中的命令运行在子shell中
      • 子进程与子shell详解
    • 重定向符号

      • 一个进程默认会打开标准输入、标准输出、错误输出三个文件描述符
      • 输入重定向符号 "<"
        • read var < /path/to/a/file
      • 输出重定向符号
        • ">" 清空文件后再进行输入
        • ">>" 文件保持不变,在末尾追加输入
        • “2>” 将错误的信息进行输出到指定文件
        • “&>” 无论正确或错误的信息,都输出到指定文件;将stderr转换成stdout,使stderr和stdout都被重定向到同一个文件中
          • 例:$ cmd > alloutput.txt 2>&1 或者 $ cmd &> out.txt
      • 输入和输出重定向组合使用
        • cat > /path/a/file << EOF
        • I am #USER
        • EOF
    • 文件描述符

      • 0 —— stdin 标准输入
      • 1 —— stdout 标准输出
      • 2 —— stderr 标准错误
  • 相关阅读:
    三个问题
    2014-7
    2014-5
    2014-2
    2014-1
    2013-11
    mysql中对表操作----为所有列插入数据
    Redis做消息队列
    收集Nginx-access,Nginx-error日志
    .Nginx安装filebeat收集日志:
  • 原文地址:https://www.cnblogs.com/chenri/p/12677398.html
Copyright © 2011-2022 走看看