美文网首页
Day12 重定向

Day12 重定向

作者: a幕城 | 来源:发表于2019-08-20 14:34 被阅读0次

    1.重定向概述

    1.什么是重定向
    将原本药输出到屏幕的数据信息,重新定向到某个指定文件中。比如每天凌晨定时备份数据,希望将备份数据的结果保存到某个文件中,这样第二天通过查看文件的内容就知道昨天备份的数据是成功还是失败

    2.为何要使用重定向?
    1.当屏幕输出的信息很重要,而且希望保存重要的信息时;
    2.后台执行中的程序,不希望他干扰屏幕正常的输出结果时:
    3.系统的列行命令,列如定时任务执行结果,希望保存下来时;
    4.一些执行命令,我们已知道他可能出现错误的信息,想将他直接丢弃时;
    5.错误的日志于需要分别输出至不同的文件时。

    3.学习重定向的预备知识,标准输入和输出

    当一个行程时通常会自动打开三个标准文件,分别是标准输入,标准输出,错误输出


    image.png

    image.png
    进程将从标准输入中得到数据,将正常输出打印至屏幕终端,将错误的输出信息也打印至屏幕终端
    PS:进程是使文件描述(file descriptors)来管理打开的文件


    image.png

    会把文件/etc/passwd的内容输出显示到屏幕上
    [root@liujun ~]# cat /etc/passwd

    但如果,使用cat命令没有跟上输入的文件名 ,>那么cat命令则会通过命令行标准输入中读取数 > 据,并将其送到标准输出
    [root@liujun ~]# cat
    hello 标准输入
    hello 标准输出
    ^C
    用户输入的每一行都立刻被cat命令输出到屏幕上

    下面了解一下标准输入输出的过程
    [root@liujun ~]# tail -f /etc/passwd
    ctrl +z 将进程转到后台
    查看运行的进程
    [root@liujun ~]# ps
    PID TTY TIME CMD
    5848 pts/1 00:00:00 bash
    6885 pts/1 00:00:00 tail
    6888 pts/1 00:00:00 ps

    查看tail命令的pid,6885进程下的文件描述
    [root@liujun ~]# ls -l /proc/6885/fd
    total o
    lrwx------ 1 root root 64 Dec 3 06:57 0 -> /dev/pts/1
    lrwx------ 1 root root 64 Dec 3 06:57 1 -> /dev/pts/1
    lrwx------ 1 root root 64 Dec 3 06:56 2 -> /dev/pts/1
    lr-x------ 1 root root 64 Dec 3 06:57 3 -> /etc/passwd
    lr-x------ 1 root root 64 Dec 3 06:57 4 -> inotify

    linux查看标准输入输出设备
    [root@liujun ~]# ls -l /dev/std*
    lrwxrwxrwx 1 root root 15 Dec 2 22:30 /dev/stderr -> /proc/self/fd/2
    lrwxrwxrwx 1 root root 15 Dec 2 22:30 /dev/stdin -> /proc/self/fd/0
    lrwxrwxrwx 1 root root 15 Dec 2 22:30 /dev/stdout -> /proc/self/fd/1

    2.输出重定向
    输出重定向,改变输出内容的位置。输出重定向有一下几种表示,如表格所示


    image.png
    image.png
    image.png
    image.png
    image.png
    image.png

    3.输入重定向
    输入重定向,即原本键盘等上获得得输入信息,重定向有命令的输出作为输入。<等>价0<
    案列1 从文件中读入输入的操作
    没有改变输入的方向,默认键盘
    [root@liujun ~]# mail alice
    Subject:hello
    1111
    2222
    3333
    .
    检查是否收到邮件
    [root@liujun ~]# su -alice
    [root@liujun ~]# mail

    输入重定向,来至于文件
    [root@liujun ~]# mail -s “test01” alice < /etc/hosts


    image.png
    image.png
    image.png
    image.png
    image.png
    image.png
    image.png

    相关文章

      网友评论

          本文标题:Day12 重定向

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