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.pswp.cn/diannao/76655.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/76655.shtml
英文地址,請注明出處:http://en.pswp.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;…