Linux云計算基礎篇(6)

一、IO重定向和管道

stdin:standard? ?input? ? ?標準輸入

stdout:standard? output? 標準輸出

stderr: standard? error? ? 標準錯誤輸出

舉例

find? ?/etc/ -name? passwd? ?> find.out? ? ? ? ? ?將正確的輸出重定向在這個find.out文件中

find? ?/etc/ -name? passwd? ?2> find.err? ? ? ? ? 將錯誤輸出重定向這個find.err這個文件中

切記勿重定向覆蓋之前的文件,如果是追加的話,請使用 " >> " 這個符號

find? ?/etc/ -name? passwd? ?2 > > find.err? ?

find? ?/etc/ -name? passwd? ?2>? ?/dev/null? ? ? ? ? ? ? 將錯誤輸出重定向空文件當中

find? ?/etc/ -name? passwd? ?&>? ? ?find.text? ? ? ? ? ? &表示所有信息,都重定向到find.text文件中

find? ?/etc/ -name? passwd? ?2>&1? ? ?find.text? ? ? ? ?2>&1將錯誤信息當作正確信息輸出

I/O重定向與管道:LinuxShell的核心數據流控制

二、標準數據流(StandardStreams)

每個Linux命令運行時自動打開三個數據流:

|流名稱|文件描述符|默認來源/目標|用途|

|---------|------------|----------------|--------------------|

|stdin|0|鍵盤|命令的輸入數據|

|stdout|1|終端屏幕|命令的正常輸出|

|stderr|2|終端屏幕|命令的錯誤信息|

重定向的本質:改變這些數據流的來源或目標(從鍵盤/屏幕→文件/設備/其他命令)。

三、I/O重定向詳解

1.輸出重定向

|操作符|作用|示例|

|-------------|---------------------------------------|-------------------------------|

|>或1>|覆蓋寫入文件(stdout)|ls>file.txt|

|>>或1>>|追加到文件(stdout)|date>>log.txt|

|2>|覆蓋寫入錯誤到文件(stderr)|gcccode.c2>errors.log|

|2>>|追加錯誤到文件(stderr)|pinghost2>>network.err|

|&>|同時重定向stdout+stderr(覆蓋)|command&>output.log|

|&>>|同時重定向stdout+stderr(追加)|script.sh&>>debug.log|

2.輸入重定向

|操作符|作用|示例|

|--------|-------------------------------|-------------------------------|

|<|從文件讀取stdin|sort<unsorted.txt|

|<<|HereDocument(內聯文本)|見下方示例|

|<<<|HereString(字符串輸入)|grep"error"<<<"$message"|

HereDocument示例:

bash

mail-s"Reminder"user@example.com<<END

Hello!Meetingstartsat10AM.

Pleasebeontime.

END

3.高級用法

-重定向到文件描述符:

bash

將stderr合并到stdout

command2>&1>output.log

交換stdout和stderr

command3>&11>&22>&3

-丟棄輸出(黑洞設備):

bash

command>/dev/null丟棄stdout

command2>/dev/null丟棄stderr

command&>/dev/null丟棄所有輸出

---

四、管道(Pipe):|

作用:將一個命令的stdout作為下一個命令的stdin。

|示例命令|說明|

|-----------------------------------|------------------------------------------|

|ls-l\|grep".txt"|列出文件并過濾出.txt文件|

|psaux\|sort-nk4|查看進程并按內存使用排序|

|cataccess.log\|cut-d''-f1\|sort\|uniq-c|統計日志中每個IP的訪問次數|

管道vs重定向

|特性|管道(\|)|重定向(>,<)|

|------------|------------------------|------------------------|

|數據方向|命令→命令|命令?文件/設備|

|數據流|只傳遞stdout|可控制stdin/stdout/stderr|

|使用場景|命令鏈式處理|輸入/輸出到持久化存儲|

---

五、關鍵應用場景

1.日志處理

bash

grep"ERROR"/var/log/syslog|awk'{print$5}'>errors.txt

2.數據轉換

bash

echo"helloworld"|tr'a-z''A-Z'輸出:HELLOWORLD

3.實時監控

bash

tail-f/var/log/nginx/access.log|grep"404"

4.錯誤隔離

bash

保存正常輸出,丟棄錯誤

makebuild2>/dev/null|teebuild.log

5.多步驟分析

bash

netstat-tuln|grep":80"|awk'{print$5}'|cut-d:-f1

---

六、最佳實踐與注意事項

1.順序敏感:

command2>&1>file和command>file2>&1作用不同(后者正確)。

2.管道錯誤處理:

默認管道只傳遞stdout,需顯式合并錯誤流:

bash

command2>&1|less

3.避免覆蓋重要文件:

使用>file前確認文件可覆蓋,或用set-onoclobber禁止覆蓋。

4.管道中斷:

用tee同時查看和保存管道數據:

bash

dmesg|teeboot.log|grep"USB"

5.性能考量:

避免對大數據集使用多次管道,改用awk單次處理:

bash

低效:catbigfile|grep"x"|wc-l

高效:grep"x"bigfile|wc-l

>Linux哲學精髓:通過管道和重定向組合小工具(如grep,sort,awk),實現復雜任務。例如統計詞頻:

>bash

>catbook.txt|tr'''\n'|sort|uniq-c|sort-nr

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/89610.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/89610.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/89610.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python將COCO格式分割標簽繪制到對應的圖片上

Python將COCO格式分割標簽繪制到對應的圖片上 前言前提條件相關介紹COCO 格式簡介&#xff08;實例分割&#xff09;&#x1f4c1; 主要目錄結構&#xff1a;&#x1f4c4; JSON 標注文件結構示例&#xff1a;? 特點&#xff1a; 實驗環境Python將COCO格式分割標簽繪制到對應的…

光纖(FC)交換機與以太網(網絡)交換機的區別

光纖通道交換機&#xff08;FC交換機&#xff09;與普通以太網交換機&#xff08;網絡交換機&#xff09;在用途、協議、性能、可靠性等方面存在顯著差異&#xff0c;主要區別如下&#xff1a; 1. 用途與網絡類型 FC交換機 主要用于存儲區域網絡&#xff08;SAN&#xff09;&a…

電磁場有限元方法EX2.2-里茲法求解泊松方程控制的邊值問題

電磁場有限元方法EX2.2-里茲法求解泊松方程控制的邊值問題 簡單學習一下有限元法的基礎理論&#xff0c;書本為電磁場有限元經典教材&#xff1a; THE FINITE ELEMENT METHOD IN ELECTROMAGNETICS, JIAN-MING JIN 目錄 電磁場有限元方法EX2.2-里茲法求解泊松方程控制的邊值問…

云端備份與恢復策略:企業如何選擇最安全的備份解決方案

更多云服務器知識&#xff0c;盡在hostol.com 想象一下&#xff0c;某個凌晨&#xff0c;你突然發現公司所有重要數據都被加密&#xff0c;系統崩潰&#xff0c;業務停擺。有人給你打來電話說&#xff1a;“一切都被勒索了&#xff0c;恢復費用可能需要幾百萬。”這時&#xf…

OSPF高級特性之FRR

一、概述 眾所周知,IGP當中鏈路狀態路由協議(OSPF、ISIS)之所以可以代替我們的矢量路由協議(RIP),就是因為鏈路狀態路由協議可以根據某些特性快速的感知到路由的變化從而改變路徑。 前面我們已經介紹過了OSPF的其中一個快速收斂的機制,SPF算法,本章節將介紹另一個快速收斂機制,…

多元化國產主板,滿足更高性能、更高安全的金融發展

在金融行業數字化轉型的浪潮中&#xff0c;對于核心硬件的性能與安全需求達到了前所未有的高度。國產主板應運而生&#xff0c;憑借其卓越的多元化特性&#xff0c;為金融領域帶來了高性能運算與高安全防護的雙重保障&#xff0c;成為推動金融行業發展的關鍵力量。以高能計算機…

數據庫分布式架構:ShardingSphere 實踐

一、數據庫分布式架構概述 1.1 分布式架構概念 在當今數字化時代&#xff0c;隨著業務的不斷拓展和數據量的爆炸式增長&#xff0c;傳統的單機數據庫架構逐漸暴露出諸多局限性。例如&#xff0c;在電商大促期間&#xff0c;海量的訂單數據和用戶訪問請求會讓單機數據庫不堪重…

【WRFDA教程第二期】運行WRFDA 3DVAR/4DVAR數據同化

目錄 一、準備階段&#xff1a;下載并解壓測試數據二、運行 3DVAR 教學實驗日志分析&#xff08;wrfda.log&#xff09;進階實驗建議&#xff1a;對比不同設置的影響輸出文件說明 三、運行 4DVAR 教學實驗步驟1&#xff1a;準備工作目錄與環境變量步驟2&#xff1a;鏈接可執行文…

redis緩存三大問題分析與解決方案

什么是緩存&#xff1f; 緩存&#xff08;Cache&#xff09;是一種將熱點數據緩存在內存中&#xff08;如 Redis&#xff09;以加快訪問速度、減輕數據庫壓力的技術。 但引入緩存后可能出現 三大核心問題&#xff1a; 緩存穿透&#xff08;Cache Penetration&#xff09;緩存…

李宏毅機器學習筆記——梯度下降法

深度學習介紹 基于仿生學的一種自成體系的機器學習算法&#xff0c;包括但不限于圖像識別、語音、文本領域。 梯度下降法 作為深度學習算法種常用的優化算法 梯度下降法&#xff0c;是一種基于搜索的最優化方法&#xff0c;最用是最小化一個損失函數。梯度下降是迭代法的一…

day50/60

浙大疏錦行 DAY 50 預訓練模型CBAM模塊 知識點回顧&#xff1a; resnet結構解析CBAM放置位置的思考針對預訓練模型的訓練策略 差異化學習率三階段微調 ps&#xff1a;今日的代碼訓練時長較長&#xff0c;3080ti大概需要40min的訓練時長 作業&#xff1a; 好好理解下resnet18的…

Vue3 之vite.config.js配置

一、示例 import { defineConfig } from vite import vue from vitejs/plugin-vue import path from path // https://vitejs.dev/config/ export default defineConfig({plugins: [vue()],base: ./,build: {assetsDir: static, //指定靜態資源目錄rollupOptions: {input: {mai…

利用Gpu訓練

方法一&#xff1a; 分別對網絡模型&#xff0c;數據&#xff08;輸入&#xff0c;標注&#xff09;&#xff0c;損失函數調用.cuda() 網絡模型&#xff1a; if torch.cuda.is_available():netnet.cuda() 數據&#xff08;訓練和測試&#xff09;&#xff1a; if torch.cud…

使用excel中的MATCH函數進行匹配數據

一、背景 在平日處理數據時&#xff0c;經常需要將給定數據按照制定的數據進行排序&#xff0c;數量比較大時&#xff0c;逐個處理有點費事費力且容易出錯&#xff0c;這時可借助excel表格中match函數進行精確匹配。 二、使用match函數–精確排序操作步驟 主要工作步驟&#xf…

SpringCloud系列(41)--SpringCloud Config分布式配置中心簡介

前言&#xff1a;微服務意味著要將單體應用中的業務拆分成一個個子服務&#xff0c;每個服務的粒度相對較小&#xff0c;因此系統中會出現大量的服務&#xff0c;但由于每個服務都需要必要的配置信息才能運行&#xff0c;所以—套集中式的、動態的配置管理設施是必不可少的&…

wireshark介紹和使用

Wireshark 介紹 Wireshark 是一款開源的 網絡協議分析工具&#xff08;Packet Sniffer&#xff09;&#xff0c;用于捕獲和分析網絡數據包。它支持多種協議解析&#xff0c;適用于網絡調試、安全分析、網絡教學等場景。 官網&#xff1a;https://www.wireshark.org/ 特點&#…

【甲方安全建設】敏感數據檢測工具 Earlybird 安裝使用詳細教程

文章目錄 背景工具介紹安裝方法一、Linux 與 macOS 安裝流程二、Windows 系統安裝流程(一)三、Windows 系統安裝流程(二)四、錯誤處理使用說明模塊與規則機制集成與運維建議結語背景 隨著源代碼泄露、配置誤提交、密碼硬編碼等風險頻發,企業源代碼庫中潛在的敏感信息泄漏…

異步Websocket構建聊天室

目錄 Websocket技術背景 Websockec簡介 實現websocket通信程序 實驗環境&#xff1a; 服務端&#xff08;阿里云ESC,VPC網絡&#xff09;&#xff1a; 客戶端1&#xff08;本機&#xff09;&#xff1a; 通信模型&#xff1a; 實現功能邏輯&#xff1a; 源代碼&#xff1a; 服務…

OpenCV CUDA模塊設備層-----反向二值化閾值處理函數thresh_binary_inv_func()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 OpenCV CUDA 模塊&#xff08;cudev&#xff09; 中的一個仿函數&#xff08;functor&#xff09;生成器&#xff0c;用于創建一個反向二值化閾值…

【實現一個時間MCP完整技術解析】

&#x1f552; MCP Time Server 完整技術解析&#xff1a;從核心實現到文件架構的深度剖析 目前已上傳npm庫&#xff0c;chan-mcp-time-server&#xff0c;有興趣的可以下載試試 創建時間: 2025年7月2日 &#x1f3af; 項目概述與架構設計 核心問題定義 AI助手在處理時間相關…