当前位置: 首页 > news >正文

Linux操作系统中的标准、重定向输入输出、过滤器和管道符的使用

目录

一、常见输入方式简介

1.1.标准输入文件

1.2.标准输出文件

1.3.标准错误文件

1.4.重定向输入

1.5.重定向输出

二、过滤器和管道(两者通常搭配使用)

2.1.过滤器

2.2.管道

三、使用详解

3.1.过滤器

3.1.1.grep过滤器

3.1.2.wc过滤器

3.1.3.cut过滤器

3.1.4.sort过滤器


一、常见输入方式简介

1.1.标准输入文件

普通情况下,常见的输入源即是鼠标和键盘,并且键盘是shell中默认的标准输入文件。

1.2.标准输出文件

在Linux中,shell将显示器作为其执行的任何命令的默认输出设备。因此显示器被称之为标准输出文件。

案例:发出ls命令时,shell执行命令并将其输出发送到标准输出文件(文件描述符0表示标准输入文件,文件描述符1则表示标准输出文件,文件描述符2则描述标准错误文件)

1.3.标准错误文件

shell实用程序在显示器上显示错误信息。错误信息的原因可能有很多种,比如,输入无效指令或者用户没有权限的执行,因而显示器也是标准错误文件。

1.4.重定向输入

通常情况下,程序或则命令都是从终端接受用户的输入信息,如常见的鼠标,键盘等。而重定向输入它是指一种可将输入从文件中读取,而不需要手动键入的一种方式。

Linux中输入重定向符号是 `<`。

示例用法:

1.command < file.txt:将命令的输入从文件 “file.txt" 中读取。

2.command1 | command2 < file.txt:将命令 "command1" 的输出通过管道传递给 "command2",同时将 “command2" 的输入从文件 'file.txt' 中读取。

通过使用输入重定向,我们可以方便地将预先准备好的文件内容作为命令或程序的输入,而不需要手动逐行输入。这在处理大量输入数据、自动化操作或批量处理任务时非常有用。同时,输入重定向还可以与其他操作符(如输出重定向和管道)结合使用,以实现更复杂的输入输出操作和数据处理。

1.5.重定向输出

同理,重定向输出是一种将程序或命令的输出从默认的位置(如终端或控制台)转移到其他位置或文件的过程。

Linux中使用特定的符号来实现输出重定向。

示例:

1.>:将输出重定向到一个文件,并覆盖该文件的内容。例如:command > file.txt。

2.>>:将输出附加到一个文件的末尾,而不会覆盖原有内容。例如:command >> file.txt。

3.2>:将错误输出重定向到一个文件。例如:command 2> error.txt。

4.&>:将标准输出和错误输出都重定向到一个文件。例如:command &> output.txt。

通过使用这些重定向符号,我们可以将程序或命令的输出导向到文件中,以便日后查看、分析或进行其他操作。

二、过滤器和管道(两者通常搭配使用)

2.1.过滤器

在计算机科学中,过滤器(Filter)是指一种用于处理数据流或输入数据,并根据特定条件筛选、转换或操作数据的组件或程序。过滤器通常被用于从输入数据中选择、删除或修改特定的元素或信息,以便获得所需的结果。

过滤器可以执行各种不同的操作,包括但不限于以下几种:

1. 数据筛选:过滤器可以基于条件来筛选输入数据,选择满足特定条件的数据项。例如,可以使用过滤器从一组数字中选择所有大于某个阈值的数字。

2. 数据转换:过滤器可以对输入数据进行转换,将其转换为不同的数据格式或表示形式。例如,可以使用过滤器将输入的文本数据中的大写字母转换为小写字母。

3. 数据修剪:过滤器可以删除或修剪输入数据中的无关信息或不需要的部分。例如,在处理日志文件时,可以使用过滤器删除其中的注释或空白行。

4. 数据增强:过滤器可以添加或修改输入数据,以增强其内容或性质。例如,可以使用过滤器在图像数据中应用滤镜或图像处理算法,以改变其外观或增强其特征。

2.2.管道

管道(Pipe)是一种用于连接多个程序或进程的通信机制,允许数据在它们之间以流的方式传递。通过使用管道,一个程序的输出可以直接作为另一个程序的输入,实现数据的连续传输和处理。

例如, “command1 | command2” 表示将 command1 的输出作为command2的输入。

linux中管道使用竖线符号 `|` 表示。

管道的一些特点和应用包括:

1. 节省内存:通过使用管道,数据可以逐个元素地流过处理程序,而不需要一次性将整个数据集加载到内存中。这样可以节省大量的内存空间,特别是在处理大量数据时。

2. 实现数据流处理:管道允许数据以流的方式被处理,而不需要等待整个数据集就绪。这对于实时数据处理和连续流数据非常有用,如日志处理、数据清洗和实时监控等场景。

3. 模块化和可组合性:通过将多个程序连接起来,可以实现模块化和可组合的数据处理流程。这样可以将复杂任务分解为多个较小的、可复用的部分,并将它们通过管道连接起来。

4. 各种数据处理操作:管道可以用于各种数据处理任务,如数据过滤、数据转换、数据聚合、数据分析等。它们可以组合使用不同的程序来实现特定的数据处理需求。

三、使用详解

3.1.过滤器

由上边的基本介绍所知,过滤器(Filter)适合用于处理、过滤数据流,而管道允许数据以数据流的方式进行传输,这就使得两者之间经常搭配在一起使用。

eg:ps -ef | grep mysql

3.1.1.grep过滤器

在 Linux 中,grep 命令是用于搜索和过滤文件内容的工具。它支持多种正则表达式来进行模式匹配和过滤。grep过滤器搜索文件中特定样式的字符并显示包含那个样式的所有行。在文件中搜索的此样式被称为正则表达式。grep过滤器在不指定正则表达式的情况下无法使用(默认指定的时基本正则表达式)。

使用语法:

grep [option(s)] pattern [filename]

grep命令中的文件名是可选的。如果没有文件名,grep等待标准输入。输入一行后,grep在行中搜索正则表达式,如果包含该特定表达式就显示此行。用户指示输入结束时(Ctrl + d),执行才结束。

下面是一些常用的正则表达式语法:

字符用法示例描述
’【】‘与一组字符中的任意一个进行匹配grep "New[abc]"将搜索样式指定为‘Newa','Newb','Newc'
’【-】‘表示一个范围内的字符匹配grep "test[a-c]"将搜索样式指定为testq,testb,testc
’^‘匹配行的起始位置grep "^New[abc]"将搜索样式指定为’Newa','Newb','Newc‘出现在行首的匹配项
’$‘匹配行的结束位置grep "New[abc]$"将搜索样式指定为’Newa','Newb','Newc‘出现在行末尾的匹配项
’[^]‘用于字符串集的否定grep "New[^a-b]"搜索包含词’New'后接除了a、b、c的任意字符的样式
`.`匹配除换行符外的任意字符grep "New.[abc["指定包含词“New”后接‘a'、’b'、‘c’中任意字符的样式
`*`匹配前面的字符零次或多次grep "New*"指定以New开头的匹配项
`\`用于转义特殊字符grep "New\.\[abc\]"指定搜索样式【New.[abc]】,其中点.和【abc】都仅表示普通的字符含义

grep过滤器选项,用于更改命令的输出。

参数选项描述
-n打印与样式匹配的每行及其行号,行号打印在行首
-c打印与样式匹配的行数
-v打印与正则表达式指定的样式不匹配的所有行

案例:

3.1.2.wc过滤器

用于计算磁盘文件或者标准输入文件中的行数、字数和字符数,如果没有文件名,同样也是跟我们的grep过滤器操作一样,也是等待标准输入。标准输入完成之后,按ctl + d结束。

使用语法:

wc [option] [filename],其中的默认选项包括以下的三个

wc过滤器的选项

选项描述
-l(line)显示行数
-w(word)显示词数
-c(char)显示字符数

案例:

3.1.3.cut过滤器

当需要从特定命令(例如ls和who)的输出抽取特定列时可以使用我们的cut过滤器

使用语法:

cut [options] [filename]

使用参数选项

选项描述
-f <column_number(s)>显示指定列
-c <character_numbers(s)>显示指定字符
-d<column_delimiter>指定列定界符。tab是默认列定界符

案例:

3.1.4.sort过滤器

sort过滤器按升序排列标准输入中的每行。需要输入sort命令,然后输入sort命令,然后输入想要排序的数据,接着需要按Ctrl + d键来排列数据

选项描述
-r按反序(降序)排序输入
-fsort过滤器以字符的ASCII码(A~Z--->65~90,a~z---->97~122),数字0~9的值比大小字母A~Z的值小
-n以非ASCII顺序排列数字
<filename>排序指定文件的内容,默认情况下,文件是以升序排列
+pos1 -pos2以特定列的顺序排序文件
-t基于特定列分隔符排序文件
-o将sort过滤符的输出保存在磁盘文件上

案例:

-f选项

http://www.jsqmd.com/news/902796/

相关文章:

  • 导电聚合物枝晶生长机制与神经形态计算应用
  • 3个企业级时间序列预测的关键架构决策:TimesFM动态协变量高级应用指南
  • AD17画3D封装踩过的坑:从丝印不封闭到高度设置,我的避坑指南全在这了
  • 激光割管加工全解析:选厂家必看的核心维度 - 奔跑123
  • 【独家首发】ChatGPT竞品性能雷达图(覆盖19个维度):我们用217小时压力测试揭开了行业不愿公开的5大真相
  • 从Pearl因果图到快手实验设计:一张图讲透如何用DAG避开数据分析的‘坑’
  • 心语5.27:看看咱们项目现在的成熟度,哪里是短板?各部分完成度这些数据有变化吗?
  • Go语言Redis源码分析:数据结构实现
  • COMEX:基于RDMA与内核虚拟内存的透明远程内存扩展技术解析
  • 基于硬件在环仿真的机床颤振主动控制:从延迟补偿到VFC/DVF协同策略
  • 别再硬啃官方文档了!用CentOS 7和Stein版手把手带你部署OpenStack(附避坑清单)
  • 安徽墙体广告常见疑问解答,行业投放调研汇总 - 百航
  • 微信投票制作全指引(2026):合规免费平台及实操流程 摘要 - 投票评选活动
  • 5分钟搞定!国家中小学智慧教育平台电子课本批量下载终极方案
  • AI代码助手安全审计:Claude生成代码的四大风险与三层防护策略
  • 智能隧道识别数据集 隧道裂缝数据集 隧道渗水数据集 地铁隧道剥落识别 隧道缺陷识别计算机视觉数据集 隧道巡检数据集 第10210期
  • 如何用Harepacker复活版打造你的专属MapleStory世界:从新手到创作者的终极指南
  • Nintendo Switch文件管理实战指南:NX-Shell深度解析
  • 深度解析10款降AIGC工具:帮你锁定真正好用靠谱的一款 - 降AI小能手
  • 安徽墙体广告投放实用操作技巧,大幅提升下沉宣传效果 - 百航
  • 视频剪辑配乐不用愁!8大正版商用音乐网站深度解析,版权安全又省心 - 拾光而行
  • 包包变现不套路指南:广州五家店的全过程记录 - 合扬奢侈品交易中心
  • 数控剪板折弯加工百科:厂家选型与工艺核心指南 - 奔跑123
  • 上海卖钻戒避坑攻略|2026 市场测评及门店推荐 - 合扬奢侈品交易中心
  • Linux操作系统中的文件查找(which/whereis/find/locate/grep)及解压缩
  • 如何通过统一API网关解决多模型切换的技术痛点
  • 2026 常州闲置名包回收指南:合扬同城上门更省心 - 合扬奢侈品交易中心
  • 传统制造业做GEO的两难怎么破?卢门学府GEO模式正在被验证 - 资讯速览
  • 使用Nodejs编写脚本配合SpringBoot消费TaotokenAPI服务
  • Navicat Mac版无限试用重置:3种高效方案彻底破解14天限制