cat命令
     
    
    连接文件并打印到标准输出设备上,cat经常用来显示文件的内容,类似于下的
    
     type
    
    命令。
   
    注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用
    
     
      
       more
      
     
    
    等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。
   
    语法格式
   
cat [-AbeEnstTuv] [--help] [--version] fileName[-AbeEnstTuv] [--help] [--version] fileName
    参数说明:
   
-n 或 –number:由 1 开始对所有输出的行数编号。
-b 或 –number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 –squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 –show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 –show-ends : 在每行结束处显示 $。
-T 或 –show-tabs: 将 TAB 字符显示为 ^I。
-e : 等价于 -vE。
-A, –show-all:等价于 -vET。
-e:等价于”-vE”选项;
-t:等价于”-vT”选项;
    实例:
   
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
cat -n textfile1 > textfile2
-n textfile1 > textfile2把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:
cat -b textfile1 textfile2 >> textfile3
-b textfile1 textfile2 >> textfile3清空 /etc/test.txt 文档内容:
cat /dev/null > /etc/test.txt
/dev/null > /etc/test.txtcat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:
cat /dev/fd0 > OUTFILE
/dev/fd0 > OUTFILE相反的,如果想把 image file 写到软盘,输入:
cat IMG_FILE > /dev/fd0
> /dev/fd0
    
     
      详解:
     
    
   
    cat <<EOF与cat <<-EOF的区别
   
两个都是获取stdin,并在EOF处结束stdin,输出stdout。
但是<<-是什么意思呢?
先来看man中的说明:
    
     If the redirection operator is <<-, then all leading tab characters are stripped from input lines and  the  line  containing  delimiter.
    
   
    翻译过来的意思就是:
    
     如果重定向的操作符是<<-,那么分界符(EOF)所在行的开头部分的制表符(Tab)都将被去除。
    
   
这可以解决由于脚本中的自然缩进产生的制表符。
通俗一点的解释:
在我们使用cat <<EOF时,我们输入完成后,需要在一个新的一行输入EOF结束stdin的输入。EOF必须顶行写,前面不能用制表符或者空格。
比如,下面的语句就不会出错:
cat <<EOF
Hello,world!
EOF
    
     如果结束分解符EOF前有制表符或者空格,则EOF不会被当做结束分界符,只会继续被当做stdin来输入。
    
   
而<<-就是为了解决这一问题:
cat <<-EOF
Hello,world!
      EOF
    上面的写法,
    
     虽然最后的EOF前面有多个制表符和空格,但仍然会被当做结束分界符,表示stdin的结束。
    
   
这就是<<和<<-的区别。
下面就对EOF的用法进行梳理:
    
     EOF是END Of File的缩写,表示自定义终止符.既然自定义,那么EOF就不是固定的,可以随意设置别名,在linux按ctrl-d就代表EOF.
    
   
    
     EOF一般会配合cat能够多行文本输出.
    
   
    
     通过cat配合重定向能够生成文件并追加操作,在它之前先熟悉几个特殊符号:
     
     < :输入重定向
     
     > :输出重定向
     
     >> :输出重定向,进行追加,不会覆盖之前内容
     
     << :标准输入来自命令行的一对分隔号的中间内容.
    
   
    
     其用法如下:
     
     
      <<EOF
      
       //开始
      
     
     
     
      ….
     
     
     
      EOF
     
     
      //结束
     
    
   
    
     
      还可以自定义,比如自定义:
      
      
       <<BBB
       
        //开始
       
      
      
      
       ….
      
      
      
       BBB
      
      //结束
     
    
   
cat >> test.txt <<EOF 和 cat <<EOF >> test.txt 是一样的 // 追加
cat > test.txt <<EOF 和 cat <<EOF > test.txt 是一样的 // 覆盖
 
