哪位高人给解释下cat命令后边的>>是怎么起作用的?

哪位高人给解释下cat命令后边的>>是怎么起作用的?

cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF

这里 "EOF" 前的<<是什么符号?在除cat外的其它命令中有用吗?      
这是重定向符。

以上命令的意思是将控制台上输入的内容重定向到用户主目录(~/)下的.bash_profile文件里,直到遇到EOF为止。

也就是将 "  exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash " 这一行写入文件 ~/.bash_profile 。      
呵呵,      
经典的LFS操作命令 :)      
<<EOF

EOF
是一个名叫“ here document”的重定向
其外还有 here string
引用:
这是重定向符。
以上命令的意思是将控制台上输入的内容重定向到用户主目录(~/)下的.bash_profile文件里,直到遇到EOF为止。
 
描述得不太精确, 呵
重定向到文件的, 是 '>'
而 '<<' 做的是把 exec ... 这行文本输入给 cat
引用:
一个here document就是一段带有特殊目的的代码段. 它使用I/O重定向的形式将一个命令序列传递到一个交互程序或者命令中, 比如ftp, cat, 或者ex文本编辑器.

  1 COMMAND <<InputComesFromHERE
  2 ...
  3 InputComesFromHERE

limit string用来界定命令序列的范围(译者注: 两个相同的limit string之间就是命令序列). 特殊符号<<用来标识limit string. 这个符号的作用就是将文件的输出重定向到程序或命令的stdin中. 与interactive-program < command-file很相似, 其中command-file包含:

  1 command #1
  2 command #2
  3 ...

而here document看上去是下面这个样子:

  1 #!/bin/bash
  2 interactive-program <<LimitString
  3 command #1
  4 command #2
  5 ...
  6 LimitString

选择一个名字非常诡异limit string能够有效的避免命令列表与limit string重名的问题.

注意, 某些情况下, 把here document用在非交互工具或命令中, 也会取得非常好的效果, 比如, wall.
quoted from http://www.cioworld.net/linux/absguidecn/here-docs.html

      
我没狗狗就乱答了,没记得那么清楚      
很长见识啊,多谢各位不吝赐教。