LINUX学习—管道及IO重定向

管道和重定向:> < >> <<

  • 标准输入:stdin 0
  • 标准输出:stdout 1
  • 标准错误输出:stderr 2
    I/O重定向:
    改变数据输入和输出的方式;
    >:输出重定向,原有内容会被覆盖掉,也叫覆盖输出重定向;  
    >>:追加输出,可保留原来文件中的内容,不会覆盖掉,二者均会在文件不存在的时候创建文件;
    2>:重定向错误输出;  
    2>>:追加方式  
    &>:重定向标准输出或错误输出至同一个文件;   
    ls /varr >/tmp/var3.out 2>/tmp/err.out 
    <:输入重定向(cat、tr)  
    <<EOF:代表在此处生成文档,并以EOF结束  

set -C:会禁止对已存在文件进行覆盖重定向,强制覆盖输出,则使用>|;
set +C:关闭上述功能;

管道
前一个命令的输出,作为后一个命令的输入 (可组合小命令完成复杂任务) 命令1的输出 | 命令2的输入 | 命令3的输入 | …

  tee
用于将数据重定向到文件,另一方面还可以提供一份重定向数据的副本作为后续命令的stdin。简单说就是将数据重定向到给定文件和屏幕上.>
-a:向文件中重定向时使用追加模式

练习:
   1. 统计/urs/bin/目录下文件的个数;
   ls /usr/bin |wc -l
   2. 取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且按顺序进行显示;
   cut -d: -f7 |sort -u
   3. 思考:如何显示/var/log目录下每个文件的内容类型?
   file /var/log/*
   4. 取出/etc/inittab文件的第6行;
   head -6 /etc/inittab|tail -1
   5. 取出/etc/passwd文件中倒数第9个用户的用户名和shell,显示到屏幕上并将其保存至/tmp/users文件中;
   tail -9 /etc/passwd |head -1|cut -d: -f1,7|tee /tmp/users
   6. 显示/etc目录下所有以pa开头的文件,并统计其个数;
   ls -d /etc/pa*”|wc -l
   7. 不使用文本编辑器,将alias cls=clear一行内容添加至当前用户的.bashrc文件中;
   echo “alias cls=clear”>>~/.bashrc

猜你喜欢

转载自blog.csdn.net/ihblxh/article/details/81980350