linux系統管理學習筆記3 重定向和管道

2022-09-08 20:15:23 字數 2668 閱讀 5233

目錄管道

本講介紹linux中輸入輸出重定向。

unix 發明人總結的的設計準則是,一次只做一件事,並且做到最好。(do one thing, and do it well)

乙個好的程式,應該滿足:

一次只做一件事,並做到最好。

能夠與其他程式協同工作。

能夠處理文字流。

為了讓linux 程式有效地協同工作,就需要對命令輸入輸出重定向。

使用者與linux 的互動,通過shell實現。

bash 有三種標準輸入輸出流,並且分別有各自的檔案標識號

標準輸入流 stdin,一般指終端鍵盤,檔案描述符為 0

標準輸出流 stdout,一般指終端螢幕,或圖形介面上的終端視窗,檔案描述符為 1

錯誤輸出流 stderr,一般也是指終端螢幕,或圖形介面上的終端視窗,檔案描述符為 2

簡而言之:

#標準輸出流

ls /tmp/example/

# 錯誤輸出流

ls /tmp/example/file04

# 輸出重定向, 1表示被重定向的是標準輸出,>後為跟的要輸出為的檔名稱,若stdout.txt檔案不存在,則被建立。若stdout.txt已存在,則覆蓋原檔案。若將》改為》,則是將輸出內容追加至檔案內容後面。

ls -l /tmp/example/ 1> ./stdout.txt

ls -l /tmp/example/ 1>> ./stdout.txt

# 重定向錯誤輸出流,將檔案識別符號1改為2即可

ls -l /tmp/example/file04 2> ./stderr.txt

ls -l /tmp/example/file04 2>> ./stderr.txt

# 同時重定向命令的標準輸出流和錯誤輸出流為不同檔案。使用&> 將1 2 輸出重定向為乙個檔案。

ls -l /tmp/example/file01 /tmp/example/file04 1>> ./stdout.txt 2>> ./stderr.txt

ls -l /tmp/example/file01 /tmp/example/file04 &> ./stdouterr.txt

結合echo 命令(將內容回顯在終端螢幕上)和輸出重定向,可以實現建立指定內容的文字檔案,舉例

# echo命令,-e選項表示輸出轉義字元

cat ./fruit.txt

利用輸出重定向命令,來實現忽略命令的錯誤輸出(即螢幕不顯示命令的錯誤輸出)。即錯誤輸出到 /dev/null 檔案中,/dev/null非常特殊,可以視為乙個「系統的黑洞」,寫入到這個檔案中的內容都被丟棄了。舉例:

ls -l /tmp/example/file01 /tmp/example/file04 2>>/dev/null
# 將標準輸入重定向為外部的檔案

# 介紹替換命令 tr命令和輸入重定向的聯合使用

# tr [準備要被替換的字元] [要替換成的字元]

# 替換fruit.txt檔案的空格為製表符

tr ' ' '\t' <./fruit.txt

# 將外部檔案輸入重定向為標準輸入

# 介紹排序sort命令和輸入重定向的聯合使用

# sort -k [關鍵字字段序號] [要排序的文字檔案]

sort -k2 《本講介紹管道使用,管道就是一種特殊的輸入輸出重定向,即將乙個命令的標準輸出作為下乙個命令的標準輸入。

管道操作符是 豎線 | , 構造管道只需要使用豎線將命令連起來即可。

需要注意的是,管道操作符右邊的命令必須要能夠接受標準輸入流才可以。能夠接收標準輸入流的命令並不多,一般為文字操作命令,常用的有 grep cut head tail less more wc tr sort

接下來介紹grep cut wc命令

舉例# 對命令的輸出進行分頁檢視,可以逐行逐頁地檢視命令輸出

ls -al /etc |less

# grep 是文字查詢命令,相容正規表示式

# grep [待查詢文字] [待查詢檔案]

# 查詢ls輸出中帶有ssh字樣的行

ls -al /etc |grep 'ssh'

# 文字提取和統計, wc cut

# cut為文字切割命令, -c選項後緊跟的數字表示切割的字元列序號,可以切割多列,數字之間用逗號隔開

cat ~/install.log| cut -c1,2

# cut -d 和-f 選項,實現按指定分隔符分開的文本來切割文字。-d後緊跟分隔符,-f後緊跟的數字表示切割的字段序列號。以下命令表示,切割cat輸出內容的第乙個字段,欄位是用冒號隔開的。

cat /etc/passwd | cut -f1 -d":"

# wc 命令,統計文字檔案或者標準輸出中的文字行數、單詞數和位元組數

# wc -l 選項表示僅統計文字行數

# 舉例,統計當前使用者家目錄下所有目錄檔案的數目 (切割每一行中的第一字元列,d 表示檔案型別為目錄檔案)

ls -al ~ | cut -c1 | grep "d" | wc -l

提醒,管道不會傳遞錯誤輸出。如果不希望看到管道中的錯誤輸出,可以將其中的某一步重定向到dev/null檔案中。

ls -al /bin/sbni 2>/dev/null | wc -l

Windows系統管理 學習筆記6

windows系統管理 檢視自己的公網ip www.ip138.com 網盤服務 資料共享異地的客戶 資料備份與恢復 資料備份 資料的安全性,避免資料的丟失 備份物件 系統 資料 資料冷備份 指需要備份的文件不被占用的情況下執行備份的方式 優點 簡單快事,容易恢復到某個時間點,方便維護 缺點 只能恢...

linux系統管理學習筆記1 初識linux

目錄建立一台虛擬機器 實踐記錄 安裝linux系統 與linux進行互動 用好幫助文件man 關閉和重啟linix linux 之父,linus torvalds 自由軟體之父 richard stallman gnu專案的創立,標誌著自由軟體運動的興起。1992年正式誕生了linux系統。linu...

磁碟及檔案系統管理 學習筆記

主要使用的命令有 分割槽 fdisk gdisk parted 格式化 mkfs mke2fs 掛載mount umount 我們想要存放資料就需要儲存在磁碟上 磁碟的概念為機械硬碟的概念 head 磁頭和盤面的數量是一樣的用8bites表示就是2 8 sector 扇區用6bites表示就是乙個磁...