首页 > 系统相关 >Linux命令行的输入输出重定向和管道:灵活处理数据的魔法工具

Linux命令行的输入输出重定向和管道:灵活处理数据的魔法工具

时间:2023-05-20 17:32:12浏览次数:46  
标签:输出 重定向 输入输出 命令 Linux 灵活处理 txt root Rocky

概要:本文详细介绍了在Linux中使用输入重定向、输出重定向和管道的方法,以及它们在命令行操作中的实用性。通过适当的使用输入输出重定向和管道,我们可以灵活地处理命令的输入和输出,从而提高工作效率。文章通过丰富的示例说明了各种重定向和管道的用法,让读者能够轻松理解和应用这些功能,实现更复杂的数据处理和操作。让我们一起探索Linux命令行中这些有用的功能,让数据处理变得更加便捷和高效。

1. 输入重定向

在Linux中,有多种方式可以进行输入重定向,注意,只有支持标准输入的命令才能支持输入重定向,而像是ls、echo等不支持标准输入的命令是不支持输入重定向的,可以使用命令替换的方式将命令的输出作为输入,如:

[root@Rocky rootdir]# echo < 1.txt      #由于echo命令不支持标准输入,所以输入重定向对echo是无效的

[root@Rocky rootdir]# echo `cat 1.txt`  #但是可以使用命令替换的方式将``内的命令输出作为echo的输入
123456789
1.1. <

< file:将文件中的内容作为命令的标准输入。

示例:

[root@Rocky rootdir]# cat < 1.txt          #将文件1.txt的内容作为cat命令的输入
1.2. <<

<< delimiter:使用Here文档将多行输入传递给命令。

Here 文档是一种特殊的输入重定向方式,它允许在命令行中直接定义多行输入,而无需使用外部文件或管道。<< 符号用于指示 Here 文档的开始,并且 EOF(End of File)是一个结束标记,用于表示输入的结束。

示例:

[root@Rocky rootdir]# cat <<EOF  #
> 123
> 456
> 789
> EOF
123
456
789

<!--具体解释如下:-->

<!--cat:是一个常用的命令,用于将文件内容输出到终端。-->

<!--<<EOF:这是 Here 文档的开始,意味着后续的输入将作为命令的标准输入。-->

<!--输入内容:在 <<EOF 和 EOF 之间,可以输入多行文本,这些文本将作为标准输入传递给 cat 命令。-->

<!--EOF:这是 Here 文档的结束标记,表示输入的结束,告诉 cat 命令不再等待输入,而是开始处理接收到的文本。。通常使用 EOF 作为结束标记,但你也可以选择其他标记。-->

1.3. <<<

<<< 用于将字符串作为命令的标准输入。它通常用于将单行文本或字符串传递给需要从标准输入读取数据的命令。使用 <<< 可以将字符串直接传递给命令,而无需创建临时文件或使用管道。该字符串将作为命令的标准输入,并被命令处理。

示例:

[root@Rocky data]# cat <<< "hello,worid!"
hello,worid!

<!--在上面的示例中,<<< "Hello, world!" 将字符串 "Hello, world!" 作为 cat 命令的标准输入。cat 命令将该字符串打印到标准输出。-->

2.输出重定向

在Linux中,输出重定向是一种常用的技术,用于将命令的输出发送到文件、设备或其他目标,而不是默认的标准输出(通常是终端)。

2.1. >

>:将命令的标准输出重定向到文件,如果文件不存在,则创建新文件;如果文件已存在,则覆盖文件内容。

示例:

[root@Rocky data]# echo "hello" > 123.txt
[root@Rocky data]# cat 123.txt
hello
2.2.>>

>>:将命令的标准输出以追加的方式重定向到文件,如果文件不存在,则创建新文件;如果文件已存在,则将输出追加到文件末尾。

示例:

[root@Rocky data]# cat 1.txt 
hello
[root@Rocky data]# echo haha >> 1.txt         # 将字符串"haha"追加到 1.txt 文件的末尾
[root@Rocky data]# cat 1.txt 
hello
haha
2.3. 2>和2>>

2>:将命令的标准错误输出重定向到文件,如果文件不存在,则创建新文件;如果文件已存在,则覆盖文件内容。

2>>:将命令的标准错误输出以追加的方式重定向到文件,如果文件不存在,则创建新文件;如果文件已存在,则将输出追加到文件末尾。

示例:

[root@Rocky data]# ls 789 2> 1.txt         # 将ls命令的错误输出保存到 1.txt 文件
[root@Rocky data]# cat 1.txt 
ls: cannot access '789': No such file or directory
[root@Rocky data]# ls 789 2>> 1.txt        # 将ls命令的错误输出以追加方式保存到 1.txt 文件
[root@Rocky data]# cat 1.txt 
ls: cannot access '789': No such file or directory
ls: cannot access '789': No such file or directory
2.4. &>

&> 是一个用于输出重定向的特殊符号组合,它用于将命令的标准输出和标准错误输出都重定向到同一个目标。具体来说,&> 将命令的标准输出和标准错误输出都重定向到指定的文件或设备。这意味着命令的所有输出(包括正常输出和错误消息)都将被重定向到同一个位置。

示例:

[root@Rocky data]# ls 1.txt 9.txt &> out.txt #将ls命令的输出和错误消息都重定向到out.txt文件中
[root@Rocky data]# cat out.txt 
ls: cannot access '9.txt': No such file or directory
1.txt

3. 管道

在Linux中,| 是一个特殊的符号,被称为管道(pipe)符号。它用于将一个命令的输出传递给另一个命令作为输入,实现命令之间的数据传递和处理。具体来说,使用 | 可以将一个命令的输出作为另一个命令的输入,这样可以通过组合多个命令来完成更复杂的任务,同时减少中间文件的使用。管道使得命令之间可以形成一个数据流水线,前一个命令的输出作为后一个命令的输入,以此类推。

"|"和">"不同,">"后通常跟的是一个文件,用于将结果标准输出给文件,而"|"后面通常跟的是命令,用于将标准输出给到下一个命令的标准输入.

示例:

[root@Rocky data]# echo ABC | tr ABC abc     #将echo命令的标准输出传递给tr命令的标准输入
abc


标签:输出,重定向,输入输出,命令,Linux,灵活处理,txt,root,Rocky
From: https://blog.51cto.com/u_14095733/6317664

相关文章

  • linux DNS域名解析
    目录 一、DNS概念二、域名格式类型三、查询类型四、解析类型五、配置DNS六、dns解析实验1.配置正向解析2.反向解析3.主从解析             一、DNS概念概念:域名和IP地址的相互映射的分布式数据库,可以更好的访问互联网。......
  • 肖sir____面试课程linux_讲解
    linux命令一、linux命令熟悉吗?熟悉二、你用linux命令来操作什么?部署环境、查看日志、编辑配置文件、查看服务进程的进程、查看ip地址、查看端口、查看网络状态、杀进程、修改权限等三、你讲下liunx中常用的命令有哪些?(1)按常用的命令讲解(随意讲)比如:tail-f查看日志、kill-9......
  • linux程序管理命令-apt
    1、介绍apt(AdvancedPackagingTool)是一个在Debian和Ubuntu中的Shell前端软件包管理器。apt命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。apt命令执行需要超级管理员权限(root)。apt命令晚于apt-get,两者基本可以通用,而目......
  • Linux的磁盘缓存和刷脏页
    导读无论您选择哪种路线,您都应该始终收集硬数据来支持您的更改,并帮助您确定是正在改进还是使事情变得更糟。在这种情况下,您可以从许多不同的位置获取数据,包括应用程序本身、/proc/vmstat、/proc/meminfo、iostat、vmstat以及/proc/sys/vm中的许多内容。我们讨论了Linux......
  • Linux串口映射
    Linux串口映射在进行Linux开发过程中,发现串口插入的顺序不同,串口号会随之变化,这是由于Linux的特性决定的。根据设备的上电顺序分配ID,但是这样在程序运行过程中,出现串口变化的话,会导致程序出现错误,因此我们采用串口映射的方式,给物理串口分配一个别名,利用别名来避免这种问题。......
  • Linux初识
        ......
  • linux用户和组命令
    1、用户和组用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个唯一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的......
  • linux程序管理命令
    1、yum命令1.1介绍yum,yellowdogupdatermodified是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。(在centos中,默认使用该工具而非apt)基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁......
  • linux默认目录和常用文件、目录
    1、介绍各种linux发行版本之间遵循基本一致的文件命名和使用规则,目录本身不具备特殊性,而是系统默认运行、安装、配置等会将文件保存在各个约定的目录下,建议用户也遵循这一约定,方便管理。2、默认目录(1)binbinaries二进制文件的缩写,存放的是普通命令。比如cat,cd(2)sbinsuperbin......
  • linux文件和目录命令
    1、ls单词list的缩写,列举当前目录下的文件。ls列举文件ls-a列举所有文件,包括.和..ls-l列举ls涉及文件的详细信息,可以和-a同时使用ls-S根据文件大小排序ls-t根据更新时间排序lsa*列出以a开头的文件,如果是目录,会列出目录以及目录的一级子文件lsa*w*可以同时列出......