详解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日

相关推荐

  • Redis特殊数据类型:HyperLogLog使用方法

    redis是一个开源的,先进的key-value存储,属于非关系型缓存数据库,通常被称为数据结构服务器。Redis 中有三种特殊数据类型:Bitmaps、HyperLogLog、G…

    Linux系统 2025年6月4日
  • Mongodb复制集的安装和部署

    Mongodb复制集由一组Mongod实例(进程)组成,包含一个Primary节点和多个Secondary节点,Mongodb Driver(客户端)的所有数据都写入Primary…

    Linux系统 2025年6月22日
  • 讲解一下缓存系统三座大山

    缓存在计算机系统是无处不在,在CPU层面有L1-L3的Cache,在Linux中有TLB加速虚拟地址和物理地址的转换,在浏览器有本地缓存、手机有本地缓存等。 1.无处不在的缓存 缓…

    Linux系统 2025年6月8日
  • Linux安装Nginx具体方法

    Nginx 是一款面向性能设计的 HTTP 服务器,相较于 Apache、lighttpd 具有占有内存少,稳定性高等优势,下面为大家分享一下Linux安装Nginx具体方法。 准…

    Linux系统 6天前
  • 详解RPM 包制作方法

    RPM(RedHat Package Manager)一种通过资料库管理的方式将所需要的软件安装到主机上的管理程序,Linux就是通过rpm来管理和实现软件的安装、查看、删除的。 …

    Linux系统 1天前
  • Linux下使用Helix具体使用方法

    Helix 是一个后现代的模态文本编辑器。受 kakoune/neovim 启发的编辑器,用 Rust 编写;编辑模型在很大程度上是基于 kakoune,下面为大家分享一下Linu…

    Linux系统 2025年6月8日
  • Linux下安装Docker具体方法

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化,下面为大家分享一下Li…

    Linux系统 2025年6月12日
  • Linux fg命令:把后台命令恢复在前台执行

    前面所讲,都是将工作丢到后台去运行,那么,有没有可以将后台工作拿到前台来执行的办法呢?答案是肯定的,使用  fg 命令即可。 fg 命令用于把后台工作恢复到前台执行,该命…

    Linux系统 2025年6月8日
  • Linux下使用bmon进行网络监视

    bmon是系统中一个基于文本,简单但非常强大的网络监视和调试工具能抓取网络相关统计信息并把它们以用户友好的格式展现出来,它是一个可靠高效的带宽监视和网速估测工具。 在 Linux …

    Linux系统 2025年6月24日
  • Linux下查看系统架构具体方法

    计算机的体系结构从指令集的复杂度上可以分两类,一是复杂指令集CISC,主要是X86架构。另一类是精简指令集RISC,这个比较多,主要是ARM、MIPS、PowerPC等,本篇文章为…

    Linux系统 2025年6月8日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注