1、Linux 重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过 Linux 重定向来进行这项工作。Linux 默认输入是键盘,输出是显示器。你可以用重定向来改变这些设置。比如用 wc 命令的时候本来是要手动输入一篇文字来计算字符数的,用了重定向后可以直接把一个已经写好的文件用 重定向输出操作符是 1。键入 操作符之后,必须指定数据的读写位置,可以是文件名或其他现有的句柄。要指定重定向到现有句柄,请使用与 h、 tee 命令是在不影响原本 I/O 的情况下,将 stdout 复制一份到档案去;i、 bas
2、h(ksh)执行命令的过程:分析命令变量求值命令替代(和$( ))重定向通配符展开确定路径执行命令;j、 ( ) 将 command group 置于 sub-shell 去执行,也称 nested sub-shell,它有一点非常重要的特性是:继承父 shell 的Standard input, output, and error plus any other open file descriptors。k、 exec 命令:常用来替代当前 shell 并重新启动一个 shell,换句话说,并没有启动子 shell。使用这一命令时任何现有环境都将会被清除。exec 在对文件描述符进行操作的时
3、候,也只有在这时,exec 不会覆盖你当前的 shell 环境。2、 基本 IOcmd file 把 stdout 重定向到 file 文件中;cmd file 把 stdout 重定向到 file 文件中(追加) ;cmd 1 fiel 把 stdout 重定向到 file 文件中;cmd file 2&1 把 stdout 和 stderr 一起重定向到 file 文件中;cmd 2 file 把 stderr 重定向到 file 文件中;cmd 2 file 把 stderr 重定向到 file 文件中(追加) ;cmd file 2&1 把 stderr 和 stderr 一起重定向到
4、 file 文件中(追加);cmd file2 cmd 命令以 file 文件作为 stdin,以 file2 文件作为 stdout;cat file 运行一个命令并把错误输出(文件描述符 2)定向到 file。. 2&1 运行一个命令并把它的标准输出和输出合并。 (严格的说是通过复制文件描述符 1 来建立文件描述符 2 ,但效果通常是合并了两个流。)我们对 2&1 详细说明一下 :2&1 也就是 FD2FD1 ,这里并不是说 FD2 的值 等于 FD1 的值,因为 是改变送出的数据信道,也就是说把 FD2 的 “数据输出通道” 改为 FD1 的 “数据输出通道” 。如果仅仅这样,这个改变好像没有什么作用,因为 FD2 的默认输出和 FD1 的默认输出本来都是 monitor,一样的!但是,当 FD1 是其他文件,甚至是其他 FD 时,这个就具有特殊的用途了。请大家务必理解这一点。exec 0exec 1outfilename # 打开文件 outfilename 作为 stdout。exec 2errfilename # 打开文件 errfilename 作为 stderr。exec 0&- # 关闭 FD1。exec 5&- # 关闭 FD5。这样就完成了 Linux 重定向的学习。