文件描述符和重定向

概述一次文件描述符与重定向

文件描述符

  1. 标准输入
    可以理解为键盘的输入,用 0 表示
  2. 标准输出
    可以理解为显示器的显示,用 1 表示
  3. 标准错误输出
    可以理解为错误的输出,比如执行报错,用2表示

    重定向

    输出重定向

    1.  > 覆盖写
      • 案例 1,此命令会将结果重定向到1.txt文件里,而不会显示到屏幕
        ls / > ~/1.txt
      • 案例 2,此命令回车后会将键盘输入的内容覆盖写入1.txt,直到Ctrl+D结束
        cat > ~/1.txt
    2. >> 追加写
      • 案例 1,此命令会将结果追加到1.txt文件里,不会显示到屏幕,且不会丢失文件以前的内容
        ls / >> ~/1.txt
      • 案例 2,此命令回车后会将键盘输入的内容追加写入1.txt,直到Ctrl+D结束
        cat >> ~/1.txt
    3. 综合案例(结合文件描述符)
      • 案例 1,将正确输出和错误输出分开写入不同的文件
        find / --name bash > ~/std.txt 2> ~/err.txt
      • 案例 2,将正确输出和错误输出合并写入同一个文件
        find / --name bash > ~/output.txt 2>&1

    输入重定向

    1. < 从文件中读取
      • 案例 1,将配置文件的备份恢复
        cat > pro.conf <pro.conf.bak
    2. << 作为一个截断符号
      • 案例 1,使用EOFF作为截断. 没有好的案例只是简单知道是什么.
        cat > 1.txt <<EOFF
        111
        22
        3
        EOFF

    自问自答

    1. 为什么要学习它,它有什么用?
      • 实际场景会遇到这么一种情况,执行一个命令后输出内容太多啦,甚至看不清输入的内容,此时就可以把输出内容重定向到文件中;
      • 还有一种场景,后台执行的命令,执行有问题,需要查看日志,这时候也可以使用重定向到文件中;
      • 亦或是懒,有时候给/etc/profile追加一个环境变量,不想vi打开再关闭,也可以用到输出重定向
THE END
本站支持SSL安全访问