南寧做自適應網(wǎng)站seo推廣軟件排行榜
1. 數(shù)據(jù)流
標準輸入( standard input ,簡稱 stdin ):默認情況下,標準輸入指從鍵盤獲取的輸入
標準輸出( standard output ,簡稱 stdout ):默認情況下,命令執(zhí)行所回傳正確的信息會輸出到屏幕上
標準錯誤輸出( standard error output ,簡稱 stderr ):默認情況下,標準錯誤輸出可理解為命令執(zhí)行失
敗后,所回傳的錯誤信息會輸出到屏幕上
不管正確或錯誤的數(shù)據(jù)都是默認輸出到屏幕上,所以屏幕是混亂的。所以就需要用數(shù)據(jù)流重定向?qū)⑦@兩條
數(shù)據(jù)分開。數(shù)據(jù)流重定向可以將標準輸出和標準錯誤輸出分別傳送到其他的文件或設備去,而分別傳送所
用的特殊字符如下所示:
標準輸入( stdin ):代碼為 0
標準輸出( stdout ):代碼為 1
標準錯誤輸出( stderr ):代碼為 2
2. 重定向操作符
概念
重定向操作符可以將命令輸入和輸出數(shù)據(jù)流從默認設備重定向到其他位置。
重定向操作符本身不是命令,而是命令中附加的可改變命令的輸入和輸出對象的特殊符號。
符號
輸出重定向操作符: > >>
輸入重定向操作符: < <<
用法
命令 > 文件 或 命令 1 > 文件 : 將命令執(zhí)行后的結果不在默認的屏幕上顯示,而是以覆蓋的方式寫入到指定文
件中,若指定的文件不存在,則自動創(chuàng)建該文件
命令 2 > 文件 : 將命令執(zhí)行后所產(chǎn)生的錯誤信息不在默認的屏幕上顯示,而是以覆蓋的方式寫入到指定文件
中,若指定的文件不存在,則自動創(chuàng)建該文件
命令 2 >/dev/null : 將命令執(zhí)行后所產(chǎn)生的錯誤信息不在默認的屏幕上顯示,而是寫入到空設備文件(黑
洞)中,即將輸出的錯誤信息丟棄掉
命令 &> 文件 命令 >& 文件 : 將命令執(zhí)行后的正確輸出信息和錯誤信息不在默認的屏幕上顯示,而是以覆蓋
的方式寫入到指定文件中,若指定的文件不存在,則自動創(chuàng)建該文件
命令 >> 文件 : 將命令執(zhí)行后的正確輸出信息以追加的方式寫入到指定的文件中,不覆蓋原文件內(nèi)容,若指定
的文件不存在,則自動創(chuàng)建該文件
命令 < 文件 : 使命令從指定的文件中讀取數(shù)據(jù)作為輸入
命令 << 結束標識字符串 : 在命令行讀取數(shù)據(jù)作為輸入,直到遇到指定的結束標識字符串
4. 輸出重定向案例
例 1 :輸出重定向(覆蓋)

[root@server ~]# date > date.txt
[root@server ~]# cat date.txt
2024年 06月 28日 星期五 20:33:52 CST
[root@server ~]#?
?
[root@server ~]# cat date.txt
2024年 06月 28日 星期五 20:33:52 CST
[root@server ~]#?
?
例 2 :輸出重定向(追加)

[root@server ~]# cal 6 2024 >> date.txt
[root@server ~]# cat date.txt
2024年 06月 28日 星期五 20:33:52 CST
? ? ? 六月 2024 ? ??
一 二 三 四 五 六 日
? ? ? ? ? ? ? ? 1 ?2
?3 ?4 ?5 ?6 ?7 ?8 ?9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
? ? ? ? ? ? ? ? ? ??
[root@server ~]#?
?
[root@server ~]# cat date.txt
2024年 06月 28日 星期五 20:33:52 CST
? ? ? 六月 2024 ? ??
一 二 三 四 五 六 日
? ? ? ? ? ? ? ? 1 ?2
?3 ?4 ?5 ?6 ?7 ?8 ?9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
? ? ? ? ? ? ? ? ? ??
[root@server ~]#?
?
例3:錯誤輸出重定向

[root@server ~]# ls /home
nianwan ?tom
[root@server ~]# ls /homee
ls: 無法訪問 '/homee': 沒有那個文件或目錄
[root@server ~]# ls /homee > list.txt
ls: 無法訪問 '/homee': 沒有那個文件或目錄
[root@server ~]# cat list.txt
[root@server ~]# ls /homee 2> list.txt? ? # 錯誤信息重定向
[root@server ~]# cat list.txt
ls: 無法訪問 '/homee': 沒有那個文件或目錄
[root@server ~]#?
nianwan ?tom
[root@server ~]# ls /homee
ls: 無法訪問 '/homee': 沒有那個文件或目錄
[root@server ~]# ls /homee > list.txt
ls: 無法訪問 '/homee': 沒有那個文件或目錄
[root@server ~]# cat list.txt
[root@server ~]# ls /homee 2> list.txt? ? # 錯誤信息重定向
[root@server ~]# cat list.txt
ls: 無法訪問 '/homee': 沒有那個文件或目錄
[root@server ~]#?
例 4 :正確和錯誤信息都重定向

[root@server ~] # ls /homeee &> list.txt # 混合輸出
例 5 :重定向到空設備 /dev/null

例 6 :重定向到黑洞,正確和錯誤都不顯示
[root@server ~] # echo "123456" | passwd --stdin root &> /dev/null
.5. 輸入重定向
例 1 :從文件中讀取數(shù)據(jù)作為cat命令的數(shù)據(jù)來源

例 2 :標準輸入重定向<< 并不表示追加,而是表示輸入結束的意思即作為一個結束符

# 輸入 end 終止輸入,不需要按下 ctrl+d 來結束
制作鏡像
