详解Linux中重定向和管道

对shell有一定了解的人都知道,管道和重定向是 Linux 中非常实用的 IPC 机制。在shell中,我们通常使用符合‘|’来表示管道,符号‘>’和‘

重定向

系统设定的输入输出

  • 默认输出设备:标准输出,STDOUT,1
  • 默认输入设备:标准输入,STDIN,0
  • 标准错误输出:STDERR,2
标准输入:键盘
标准输出和错误输出:显示器

linux中的I/O重定向

  • 标准输入 (stdin): 代码为0,使用
  • 标准输出 (stdout): 代码为1,使用>或>>;
  • 标准错误输出(stderr): 代码为2,使用2>或2>>;
  • “>” “>>”
>: 覆盖输出
>>:追加输出
       
# set -C  禁止对已经存在文件使用覆盖重定向;强制覆盖输出,则使用 >|
# set +C  关闭上述功能
  • “2>” “2>>”
2>: 重定向错误输出
2>>: 追加方式
将正确的与错误的分别存入不同的文件中
# ls / /varr > /tmp/var3.out 2> /tmp/err.out
# ls /varr > /tmp/var4.out 2> /tmp/var4.out
       
/dev/null垃圾桶黑洞装置
&>: 重定向标准输出或错误输出至同一个文件(或者2>&1)

输出重定向(将原来需要由键盘输入的数据,改由文件内容来取代)
# tr 'a-z' 'A-Z'  

Here Document(代表结束的输入字符)
# cat  # cat >> /tmp/myfile.txt  /dev/null, 软件设备,bit bucket,数据黑洞,将内容输出定向到该设备下无任何返回内容 

管道

管道是将前一个命令的输出作为后一个命令的输入 命令1 | 命令2 | 命令3 | ……

# echo "hello world." | tr 'a-z' 'A-Z'
# echo "redhat" | passwd --stdin hive
# cut -d: -f1 /etc/passwd | sort | tr 'a-z' 'A-Z'
   
# echo "Hello,World." | tee /tmp/hello.out
       
# tee: 显示内容并将内容保存在文件中
       
# wc -l /etc/passwd | cut -d' ' -f1
练习:
   1、统计/usr/bin/目录下的文件个数;
   2、取出当前系统上所有用户的shell,要求,每种shell只显示一次,并且按顺序进行显示;
   3、思考:如何显示/var/log目录下每个文件的内容类型?
   4、取出/etc/inittab文件的第6行;
   5、取出/etc/passwd文件中倒数第9个用户的用户名和shell,显示到屏幕上并将其保存至/tmp/users文件中;
   6、显示/etc目录下所有以pa开头的文件,并统计其个数;
   7、不使用文本编辑器,将alias cls=clear一行内容添加至当前用户的.bashrc文件中;

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/11268.html

(0)
晴川运维晴川运维
上一篇 2025年7月2日
下一篇 2025年7月2日

相关推荐

  • 详解zookeeper ACL

    zookeeper 的 ACL(Access Control List,访问控制表)权限在生产环境是特别重要的。ACL 权限可以针对节点设置相关读写等权限,保障数据安全性。perm…

    Linux系统 2025年6月8日
  • 面向系统管理员的网络管理指南

    一个使管理服务器和网络更轻松的 linux 工具和命令的参考列表。 如果你是一位系统管理员,那么你的日常工作应该包括管理服务器和数据中心的网络。以下的 Linux 实用工具和命令 …

    Linux系统 2025年6月8日
  • 详解观察者模式

    在现实世界中,许多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变。例如,某种商品的物价上涨时会导致部分商家高兴,而消费者伤心;还有,…

    Linux系统 2025年6月8日
  • Linux下查看最常使用命令

    Linux中如何查看自己常用的命令?在Linux系统中每天使用各种执行进行操作,但是大家知道自己使用最大的命令是什么吗?本篇文章重点为大家分享一下Linux下查看最常使用命令具体方…

    Linux系统 2025年6月12日
  • 使用zabbix监控mysql多实例

    一台机器上部署了多个MySQL实例,每个实例使用不同的端口,需要通过zabbix将其都纳入监控中,下面为大家分享一下zabbix监控mysql多实例具体方法。 用到的主要工具: 宏…

    Linux系统 2025年9月21日
  • 如何实用tar命令备份还原Linux系统

    Linux tar(英文全拼:tape archive )命令用于备份文件。tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。 备份 打开终端,切换到r…

    Linux系统 2025年10月25日
  • 使用date 和 bash将日期进行倒计时

    需要知道重要事件发生前有多少天吗?让 Linux bash 和 date 命令可以帮助你!随着即将来临的重要假期,你可能需要提醒你还要准备多久。幸运的是,你可以从date 命令获得…

    Linux系统 2025年6月8日
  • Linux sed命令完全攻略(超级详细)

    我们知道,Vim 采用的是交互式文本编辑模式,你可以用键盘命令来交互性地插入、删除或替换数据中的文本。但本节要讲的 sed 命令不同,它采用的是流编辑模式,最明显的特点是,在 se…

    Linux系统 2025年9月24日
  • FreeBSD中安装VMware Tools

    VMware Tools 中包含一系列服务和组件,可在各种 VMware 产品中实现多种功能,从而使用户能够更好地管理客户机操作系统,以及与客户机操作系统进行无缝交互,下面为大家讲…

    Linux系统 2025年10月24日
  • springboot 配置DRUID数据源具体流程

    Druid首先是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBo…

    Linux系统 2025年10月19日

发表回复

登录后才能评论