Linux红帽:RHCSA认证知识讲解(九)标准输入输出、重定向、过滤器与管道

Linux红帽:RHCSA认证知识讲解(九)标准输入输出、重定向、过滤器与管道

  • 前言
  • 一、标准输入与输出、重定向,使用过滤器筛选文件信息
    • 1.1 Linux 的标准输入与输出
    • 1.2 什么是输入重定向
    • 1.3 输出重定向
    • 1.4 标准错误输出重定向
    • 1.5 使用过滤器筛选文件信息
      • 基本用法
    • 1.6正则表达式
      • 常用选项
      • 重定向存储搜索结果
  • 二、管道命令
    • 2.1 管道命令的作用
    • 2.2 管道命令的特性
    • 2.3 管道命令的使用示例
    • 2.4 管道命令的高级用法


前言

  • 在红帽 Linux 系统中,标准输入输出、重定向、过滤器和管道是处理命令行数据的核心工具
  • 这些工具能够帮助用户高效管理数据流,实现复杂任务的自动化。
  • 本文将详细介绍这些工具的使用方法与应用场景,帮助读者更好地理解和掌握红帽 Linux 系统的命令行操作

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的RHCSA认证知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12901802.html?spm=1001.2014.3001.5482

一、标准输入与输出、重定向,使用过滤器筛选文件信息

1.1 Linux 的标准输入与输出

在 Linux 系统中,标准输入(stdin)、标准输出(stdout)和标准错误输出(stderr)是命令行交互的基础

  • 标准输入(stdin):默认情况下,标准输入设备是键盘,用户能通过键盘输入命令或数据。
  • 标准输出(stdout):默认情况下,标准输出设备是显示器,命令的输出结果通常会显示在屏幕上。
  • 标准错误输出(stderr):默认情况下,错误信息也会输出到显示器。与标准输出不同,标准错误输出专门用于输出错误信息。

1.2 什么是输入重定向

输入重定向是指把命令的输入来源从默认的标准输入设备(键盘)改为其他指定的文件

  • 输入重定向使用 < 符号实现

例如:

cat < /etc/passwd

这条命令将 /etc/passwd 文件的内容作为 cat 命令的输入,并将内容显示到控制台。这与直接使用 cat /etc/passwd 的效果相同,但通过输入重定向的方式更加灵活。

1.3 输出重定向

输出重定向是指将命令的输出目标从默认的标准输出设备(显示器)改为其他指定的文件。输出重定向使用 >>> 符号实现。

  • 覆盖输出(>:将输出内容写入指定文件,如果文件已存在,则覆盖原有内容
  • 追加输出(>>:将输出内容追加到指定文件的末尾,不会覆盖原有内容

例如:

cat /etc/passwd > /root/passwd.txt

这条命令将 /etc/passwd 文件的内容输出到 /root/passwd.txt 文件中,如果 /root/passwd.txt 已存在,则覆盖其内容。

1.4 标准错误输出重定向

标准错误输出(stderr)也可以被重定向。默认情况下,错误信息会输出到显示器,但可以通过 2> 符号将其重定向到文件中。

例如:

cat /nonexistent_file 2> /root/error.txt

这条命令尝试读取一个不存在的文件 /nonexistent_file,并将产生的错误信息输出到 /root/error.txt 文件中。

1.5 使用过滤器筛选文件信息

  • 过滤器是用于处理文本数据的工具,可以帮助用户从大量数据中筛选出所需的信息。grep 是最常用的过滤器之一,用于搜索和过滤文件内容

基本用法

grep "pattern" file

例如:

grep "root" /etc/passwd

这条命令会在 /etc/passwd 文件中搜索包含 “root” 的行。

1.6正则表达式

  • ^:表示行的开头。例如:
grep "^root" /etc/passwd

这条命令会搜索以 “root” 开头的行。

  • $:表示行的结尾。例如:
grep "root$" /etc/passwd

这条命令会搜索以 “root” 结尾的行。

  • [abc]:表示匹配括号内的任意一个字符。例如:
grep "b[abc]" /etc/passwd

这条命令会搜索包含 “ba”、“bb” 或 “bc” 的行。

  • [a - c]:表示匹配括号内的字符范围。例如:
grep "b[a - c]" /etc/passwd

这条命令会搜索包含 “ba”、“bb” 或 “bc” 的行。

常用选项

  • -n:打印匹配行及其行号。
grep -n "root" /etc/passwd
  • -c:打印匹配行的数量。
grep -c "root" /etc/passwd
  • -v:反选,打印不匹配的行。
grep -v "root" /etc/passwd

重定向存储搜索结果

grep "root" /etc/passwd > /root/search_results.txt

这条命令会将搜索结果保存到 /root/search_results.txt 文件中。

二、管道命令

2.1 管道命令的作用

  • 在 Linux 系统中,许多命令会输出大量数据,这些数据可能过于繁杂,难以直接阅读。管道命令(|允许用户将一个命令的输出作为另一个命令的输入,从而实现数据的逐步处理

例如,假设我们想要查看 /etc 目录下的文件数量,但 ls /etc 输出的内容太多,难以直接统计。我们可以通过管道命令将输出传递给 less 命令,方便查看:

ls /etc | less

这条命令将 ls /etc 的输出传递给 less 命令,用户可以通过 less 的功能前后翻动查看内容。

2.2 管道命令的特性

  • 仅处理标准输出:管道命令只能处理前一个命令的标准输出(stdout),而不会处理标准错误输出(stderr)。如果需要处理错误信息,需要先将其重定向到标准输出。
  • 必须能够接受标准输入:管道命令的后一个命令必须能够接受标准输入(stdin)作为数据源。例如,lessmoreheadtail 等命令都可以作为管道命令的接收方,而 lscpmv 等命令则不能。

2.3 管道命令的使用示例

  • 统计文件行数
cat /etc/passwd | wc -l

这条命令将 /etc/passwd 文件的内容传递给 wc -l 命令,统计文件的行数。

  • 筛选特定内容
cat /etc/passwd | grep "root"

这条命令将 /etc/passwd 文件的内容传递给 grep 命令,筛选出包含 “root” 的行。

  • 组合多个命令
ps aux | grep "httpd" | wc -l

这条命令首先列出所有进程(ps aux),然后筛选出包含 “httpd” 的行(grep "httpd"),最后统计这些行的数量(wc -l)。

2.4 管道命令的高级用法

  • 处理标准错误
    如果需要处理标准错误输出,可以先将其重定向到标准输出,再通过管道传递。例如:
ls /nonexistent_file 2>&1 | grep "No such file or directory"

这条命令将 ls /nonexistent_file 的错误信息(2>&1)传递给 grep 命令,筛选出包含 “No such file or directory” 的行。

  • 多级管道
    管道命令可以多级串联,实现复杂的处理逻辑。例如:
cat /etc/passwd | grep "root" | cut -d: -f1

这条命令首先读取 /etc/passwd 文件的内容,然后筛选出包含 “root” 的行,最后通过 cut 命令提取用户名字段(以冒号为分隔符,提取第 1 列)。


以上就是这篇博客的全部内容,下一篇我们将继续探索 Redhat 的更多精彩内容。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的RHCSA认证知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12901802.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/76655.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建完全分布式系统时,为何必须同步服务器时间?

在构建完全分布式系统时&#xff0c;时间同步是保障系统一致性和可靠性的基石。本文将从完全分布式系统的核心特点、时间同步的必要性、不同步可能引发的灾难性后果、主流时间同步协议对比及最佳实践方案五个角度展开分析&#xff0c;帮助开发者深入理解时间同步的关键作用。 一…

MonkeyDev 如何创建一个root级级别的app,并执行root命令获取iphone设备序列号serialNumber(ios15.8)

前提条件:有越狱的手机,XCode中已经安装了Monkeydev 1. 和普通应用一个创建一个ios的工程 2. 在App的TARGETS>build setting> 中设置Apple Development 3. 设置User-Defined的配置 CODE_SIGNING_ALLOWED = NO MonkeyDevBuildPackageOnAnyBuild = NO MonkeyDevClearUi…

每日一题(小白)模拟娱乐篇13

今天题目比较简单&#xff0c;直接分析。小蓝想知道2024这个数字中有几个1&#xff0c;计算机组成学习好的同学肯定可以直接长除法或者瞪眼法得出答案&#xff1a; 202411111101000&#xff08;B&#xff09;也就是说2024中有一共有六个1 接下来用代码实现 &#xff0c;我们也…

【蓝桥杯】算法笔记2

这篇文章主要记录动态规划方面的学习。 动态规划的核心思想: 把大问题分解成小问题,记住小问题的解,避免重复计算。 动态规划(DP)的三大特点: ①最优子结构:大问题的最优解可以由小问题的最优解推导出来 ②重叠子问题:在求解过程中会反复遇到相同的小问题 ③无后效…

MINIQMT学习课程Day9

获取qmt账号的持仓情况后&#xff0c;我们进入下一步&#xff0c;如何获得当前账号的委托状况 还是之前的步骤&#xff0c;打开qmt&#xff0c;选择独立交易&#xff0c; 之后使用pycharm&#xff0c;编写py文件 导入包&#xff1a; from xtquant import xtdata from xtqua…

杂篇-行业分类一二-2(通、专用设备制造,汽车制造)

接上篇&#xff0c; 本篇列举制造业中另外几个细分行业&#xff1a;通用设备制造&#xff0c;专用设备制造&#xff0c;汽车制造业。 一、通用设备制造 分类 序号 类别名称 说明 1 锅炉及原动设备制造 1 锅炉及辅助设备制造 指各种蒸汽锅炉、汽化锅炉&#xff0c;以及…

DHCP协议和win server2022无脑配置DHCP

DHCP(动态主机配置协议)用于分配IP地址的过程。这个过程也被称为DORA,它是四个步骤首字母的缩写。让我们详细看看每个步骤: 客户机请求IP(Discover):当一个设备(客户机)连接到网络并需要获取网络配置(如IP地址、子网掩码、默认网关等)时,它会发送一个DHCP Discover…

Visio | 将(.vsdx)导出为更清楚/高质量的图片(.png) | 在Word里面的visio图

此时大家在用Visio画完图直接复制到word里面后&#xff0c;如果后期需要重新保存高清图片&#xff0c;但是此时图片在word&#xff0c;是不是很多人会选择直接crtlA截图复制&#xff0c;这样出来的图又不清晰又小&#xff0c;完全不符合你导的审美&#xff0c;接下来跟着我&…

LLM面试题六

NLP方向CRF算法面试题 什么是CRF?CRF的主要思想是什么&#xff1f; 设X与Y是随机变量&#xff0c;P(Y | X)是给定条件X的条件下Y的条件概率分布&#xff0c;若随机变量Y构成一个由无向图G(V,E)表示的马尔科夫随机场。则称条件概率分布P(X | Y)为条件随机场。CRF的主要思想统计…

每日一题(小白)ASCLL娱乐篇5

本题我们使用ASCLL值的方法解决&#xff0c;也可以打表去判断。加深对ASCLL表的认识&#xff01; 图源ASCII 表 | 菜鸟教程&#xff0c;有需要的小伙伴可以在菜鸟详细了解。 由题知要识别三种类型的字符&#xff0c;使用三个变量存储最终值输出即可。根据ASCLL表可知数字、大写…

ffmpeg中格式转换需要注意点总结

某些封装格式(例如MP4/FLV/MKV等)的H.264码流的SPS和PPS信息存储在AVCodeccontext结构体的extradata中。分离某些封装格式(例如MP4/FLV/MKV等)中的H.264的时候&#xff0c;需要首先写入SPS和PPS&#xff0c;否则会导致分离出来的数据没有SPS、PPS而无法播。需要使用ffmpeg中名称…

小型语言模型与检索增强生成系统的融合:机遇与挑战

小型语言模型(SLMs)是大型语言模型(LLMs)的紧凑版本。其参数量通常比大型模型少得多&#xff1a;约30亿或更少。这使得它们具有相对轻量级的特点&#xff0c;推理速度更快。 当前研究的一个有趣方向是将SLMs整合到检索增强生成(RAG)系统中以提升性能。本文探讨这一最新趋势&…

使用 .NET 9 和 Azure 构建云原生应用程序:有什么新功能?

随着 .NET 9 推出一系列以云为中心的增强功能&#xff0c;开发人员拥有比以往更多的工具来在 Azure 上创建可扩展、高性能的云原生应用程序。让我们深入了解 .NET 9 中的一些出色功能&#xff0c;这些功能使构建、部署和优化云应用程序变得更加容易&#xff0c;并附有示例以帮助…

PostgreSQL:表分区与继承

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

Linux / Windows 下 Mamba / Vim / Vmamba 安装教程及安装包索引

目录 背景0. 前期环境查询/需求分析1. Linux 平台1.1 Mamba1.2 Vim1.3 Vmamba 2. Windows 平台2.1 Mamba2.1.1 Mamba 12.1.2 Mamba 2- 治标不治本- 终极版- 高算力版 2.2 Vim- 治标不治本- 终极版- 高算力版 2.3 Vmamba- 治标不治本- 终极版- 高算力版 3. Linux / Windows 双平…

开源项目更新到个人仓库二次开发并保持同步

当你克隆了一个开源项目并将其推送到自己的仓库后&#xff0c;定期更新该开源项目并与你的本地修改同步是一个常见的需求。为了高效地管理这一过程&#xff0c;你可以使用 Git 的 upstream 远程仓库和 rebase 技术来保持代码的整洁和线性历史。 1. 设置上游远程仓库 首先&…

多输入多输出 | Matlab实现BO-GRU贝叶斯优化门控循环单元多输入多输出预测

多输入多输出 | Matlab实现BO-GRU贝叶斯优化门控循环单元多输入多输出预测 目录 多输入多输出 | Matlab实现BO-GRU贝叶斯优化门控循环单元多输入多输出预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现BO-GRU贝叶斯优化门控循环单元多输入多输出预测&#…

MCP(模型上下文协议)入门指南:用Web开发的视角理解下一代AI引擎

引言&#xff1a;当Java Web遇到长期记忆 想象你正在开发一个在线法律咨询平台。用户上传一份300页的合同后&#xff0c;连续提出了10个问题&#xff1a; 第3页的违约条款具体内容是什么&#xff1f;请对比第15页和第120页的支付条件整份合同中最高的赔偿金额是多少&#xff…

简易Minecraft python

废话多说 以下是一个基于Python和ModernGL的简化版3D沙盒游戏框架。由于代码长度限制&#xff0c;这里提供一个核心实现&#xff08;约500行&#xff09;&#xff0c;您可以通过添加更多功能和内容来扩展它&#xff1a; python import pygame import moderngl import numpy a…

element-ui自制树形穿梭框

1、需求 由于业务特殊需求&#xff0c;想要element穿梭框功能&#xff0c;数据是二级树形结构&#xff0c;选中左边数据穿梭到右边后&#xff0c;左边数据不变。多次选中左边相同数据进行穿梭操作&#xff0c;右边数据会多次增加相同的数据。右边数据穿梭回左边时&#xff0c;…