掌握Shell输入输出重定向:基础与实战

需积分: 16 0 下载量 101 浏览量 更新于2024-08-30 收藏 99KB DOC 举报
本文档主要介绍了在UNIX系统中关于Shell输入输出重定向的基本概念和技术。在大多数UNIX环境中,命令与终端之间的交互主要依赖于标准输入(STDIN,编号0)、标准输出(STDOUT,编号1)和标准错误输出(STDERR,编号2)。这些文件描述符在命令执行过程中扮演着关键角色。 首先,命令通常从标准输入接收输入,这是默认设置,即用户的键盘输入。同样,命令会将结果输出到标准输出,也就是我们通常看到的终端屏幕。然而,用户可以通过输入重定向(<)和输出重定向(>)来改变这种行为。 输出重定向的语法是`command1 > file1`,它会将命令`command1`的输出内容保存到指定的文件`file1`中,如果文件已存在,原有内容会被覆盖。如果想在文件末尾追加而不覆盖,可以使用`>>`操作符,如`command1 >> file1`。例如,`who`命令可以重定向到`users`文件中,而不显示在终端上。 输入重定向的语法是`command1 < file1`,允许命令从文件`file1`读取输入,而非从键盘获取。举个例子,使用`wc -l`计算`users`文件的行数,可以先通过`wc -l users`输出文件名,或者通过`wc -l < users`仅处理文件内容。 更复杂的情况是,有些命令支持同时替换输入和输出,比如`command1 < infile > outfile`,这种情况下,命令会从`infile`读取输入并将其结果写入到`outfile`中。 在实际操作中,每个Unix/Linux命令运行时,会自动关联这三个文件描述符。理解并熟练掌握输入输出重定向,能极大地提升命令行操作的效率和灵活性,对于处理大量数据或自动化脚本编写至关重要。