第11周课堂内容

发布时间 2023-11-15 17:22:10作者: 不做天狗的沸羊羊

6.1 I/O重定向

大多数进程都有0.1.2这3个文件描述符。0表示标准输入,可以理解为键盘输入。1表示标准输出,输出到终端。2表示标准错误,输出到终端。3及以上为常规文件的描述符。

date命令在默认情况下将输出结果显示在终端,此时文件描述符为1.现在改变输出的方向,从终端改为date.txt文件,这个行为就叫作重定向。

 

改变描述符为2的文件的输出方向,date命令是正确的,执行结果在终端中显示。

 

cat命令默认文件描述符为0,输入重定向把键盘输入改为/etc/hosts文件输入。

 

6.1.1 输出重定向

输出重定向分为正确输出和错误输出。

正确输出:1>,1>>,等价于>,>>,1可省略。

错误输出:2>,2>>。

其中,“>"表示覆盖,”>>"表示追加。

以下是例题:

【例6-1】输出重定向(覆盖)

 

【例6-2】输出重定向(覆盖)

 

【例6-3】错误输出重定向

 

【例6-4】正确结果与错误结果都输出到相同位置

 

【例6-5】正确结果与错误结果都输出重定向到相同的位置

 

【例6-6】正确结果保留在文件list.txt,错误结果丢到/dev/null

 

【例6-7】使用grep命令过滤root,没有改变输入端,默认为键盘,接着把输入重定向到/etc/passwd

 

【例6-8】使用dd命令从/dev/zero中读取数据并写入到file01.txt文件,每次写入1MiB,一共写入2次。

 

【例6-9】使用at命令创建一个计划任务,从现在开始5分钟后创建用户linux,按组合键Ctrl+d结束。

 

【例6-10】利用重定向建立多行文件(命令行)。

 

【例6-11】利用重定向建立多行文件(脚本)。

 

【例6-12】在脚本中利用重定向打印消息。
在编写脚本时,将cat命令的输入重定向,输出不做修改。

 

【例6-13】多条命令输出重定向。
如果需要将两条命令输出都重定向,则需要添加括号。