I/O重定向与管道(I/O即输入输出)
输出重定向:在date命令后加“>”,并指向date.txt文件,那么结果就会写入date.txt。
将date的输出结果重定向到一个普通文件。再打开一个终端。
在第1个终端中敲“date > /dev/pts/2”,这样就会在第二个终端中显示date的内容。
passwd命令:passwd改密码的时候系统会产生一个进程,其pid为4474
查看passwd的进程用:ps aux | grep passwd
(上图黑色条)绝大多数进程都有0,1,2这三种文件描述符。
0:标准输入(键盘输入) 1:标准输出,输出到终端 2:标准错误,输出到终端
3及以上为常规文件描述符,
date命令在默认情况下将输出结果显示在终端,此时文件描述符为1。现改变输出的方向,将终端改为date.txt文件。这个行为叫重定向(其实也就是将date的输出结果重新写入了date.txt文件中)。
改变描述符为2的文件的输出方向,date命令是正确的,执行结果在终端中显示。如果命令是错误的,执行结果标准(也就是的报错的信息)输出终端上,重定向到date.txt。
①命令是正确的
②命令是错误的
输出重定向分为正确输出和错误输出。
正确输出:1> , 1>>等价于> , >> (1可省略)
错误输出:2> , 2>>
(“>”表示覆盖,“>>”表示追加)区别如下:
正确输出重定向:将命令的输出结果重新写入的到一个文件中。
错误输出重定向(将报错信息重新写入文件中)
将正确结果与错误结果都输出同一文件内:
正确结果与错误结果都输出重定向到相同的位置
输入重定向(输入用”<” ,输出用”>”)
”<”是可以省略的,输出结果是一样的,但原理不一样。
有“<”是表示写入一个文件,无则表示一个参数。
dd命令:读取数据并写入。
从/dev/zero中读取数据并写入file01.txt文件,每次写入1MiB,一共写入两次。
上述使用输入重定向和输出重定向也可以实现同样的功能:
at命令:延时执行。按control+d退出
重定向综合案例
①利用重定向建立多行文件(ctrl+d结束)
上述所使用的“>”是覆盖,但在此处是指覆盖原来的file03.txt,输入的三行文本一次输出到file03.txt。如果退出后再次输出,那将覆盖掉先前的文本内容,此时就需要用“>>”进行追加。
用ctrl+d结束显得比较繁琐,用户可以自定义一个结束的符号,通常使用‘EOF’
I/O重定向与管道(I/O即输入输出)
输出重定向:在date命令后加“>”,并指向date.txt文件,那么结果就会写入date.txt。
将date的输出结果重定向到一个普通文件。再打开一个终端。
在第1个终端中敲“date > /dev/pts/2”,这样就会在第二个终端中显示date的内容。
passwd命令:passwd改密码的时候系统会产生一个进程,其pid为4474
查看passwd的进程用:ps aux | grep passwd
(上图黑色条)绝大多数进程都有0,1,2这三种文件描述符。
0:标准输入(键盘输入) 1:标准输出,输出到终端 2:标准错误,输出到终端
3及以上为常规文件描述符,
date命令在默认情况下将输出结果显示在终端,此时文件描述符为1。现改变输出的方向,将终端改为date.txt文件。这个行为叫重定向(其实也就是将date的输出结果重新写入了date.txt文件中)。
改变描述符为2的文件的输出方向,date命令是正确的,执行结果在终端中显示。如果命令是错误的,执行结果标准(也就是的报错的信息)输出终端上,重定向到date.txt。
①命令是正确的
②命令是错误的
输出重定向分为正确输出和错误输出。
正确输出:1> , 1>>等价于> , >> (1可省略)
错误输出:2> , 2>>
(“>”表示覆盖,“>>”表示追加)区别如下:
正确输出重定向:将命令的输出结果重新写入的到一个文件中。
错误输出重定向(将报错信息重新写入文件中)
将正确结果与错误结果都输出同一文件内:
正确结果与错误结果都输出重定向到相同的位置
输入重定向(输入用”<” ,输出用”>”)
”<”是可以省略的,输出结果是一样的,但原理不一样。
有“<”是表示写入一个文件,无则表示一个参数。
dd命令:读取数据并写入。
从/dev/zero中读取数据并写入file01.txt文件,每次写入1MiB,一共写入两次。
上述使用输入重定向和输出重定向也可以实现同样的功能:
at命令:延时执行。按control+d退出
重定向综合案例
①利用重定向建立多行文件(ctrl+d结束)
上述所使用的“>”是覆盖,但在此处是指覆盖原来的file03.txt,输入的三行文本一次输出到file03.txt。如果退出后再次输出,那将覆盖掉先前的文本内容,此时就需要用“>>”进行追加。
用ctrl+d结束显得比较繁琐,用户可以自定义一个结束的符号,通常使用‘EOF’