好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Linux base shell重定向詳解

Linux base shell重定向詳解

熱門標簽:河南信譽好的不封卡電話外呼系統 地圖標注員都是年輕人 打電話機器人接我是他的秘書 客服外呼系統怎么樣 百度地圖標注錯了有責任嗎 江蘇云電銷機器人公司 如果做線上地圖標注 華鋒e路航港口地圖標注 揭陽智能電話機器人推薦

一、標準輸入,標準輸出與標準錯誤輸出

在linux shell執行命令時,每個進程都和三個打開的文件相聯系,并使用文件描述符來引用這些文件。由于文件描述符不容易記憶,shell同時也給出了相應的文件名:

文件 文件描述符
輸入文件—標準輸入 0(缺省是鍵盤,為0時是文件或者其他命令的輸出)
輸出文件—標準輸出 1(缺省是屏幕,為1時是文件)
錯誤輸出文件—標準錯誤 2(缺省是屏幕,為2時是文件)
系統中實際上有12個文件描述符,我們可以任意使用文件描述符3到9.

標準輸入:從鍵盤輸入數據,即從鍵盤讀入數據。
標準輸出:把數據輸出到終端上。
標準錯誤輸出:把標準錯誤輸出到終端上。

默認的標準輸入指的是鍵盤,默認的標準輸出與標準錯誤輸出指的是屏幕或者是終端。

系統為這三個文件分配了文件標識符fd(file descripter).

在Linux系統下,一切皆是文件,對文件的操作,一般要用到文件標識符。它們的文件標識符,分別為0,1,2。他們的關系如下表:

文件描述符 名稱 通用縮寫 默認值
0 標準輸入 stdin 鍵盤
1 標準輸出 stdout 屏幕
2 標準錯誤 stderr 屏幕

二.文件重定向:改變程序運行的輸入來源和輸出地點

1.輸出重定向:

Command > filename 把標準輸出重定向到一個新文件中
Command >> filename 把標準輸出重定向到一個文件中(追加)
Command > filename 把標準輸出重定向到一個文件中
Command > filename 2>1 把標準輸出和錯誤一起重定向到一個文件中
Command 2 > filename 把標準錯誤重定向到一個文件中
Command 2 >> filename 把標準輸出重定向到一個文件中(追加)
Command >> filename2>1 把標準輸出和錯誤一起重定向到一個文件(追加)

2.輸入重定向:

Command filename > filename2 Command命令以filename文件作為標準輸入,以filename2文件作為標準輸出
Command filename Command命令以filename文件作為標準輸入
Command delimiter 從標準輸入中讀入,知道遇到delimiter分界符

3.綁定重定向

Command >m 把標準輸出重定向到文件描述符m中
Command - 關閉標準輸入
Command 0>- 同上

三、使用實例

復制代碼 代碼如下:

cmd > file
#說明: 將 cmd 的輸出發送到 file 文件(覆蓋模式)

cmd >> file
#說明: 將 cmd 的輸出發送到 file 文件(追加模式)

cmd file
#說明: 以 file 文件的內容作為 cmd 的輸入

cmd text
#說明: 嵌入文件(here document, 類似于PHP語法)形式的輸入
#shell 可在行內輸入中做變量、命令和算術替換

cmd - text
#說明: 作用同上, 不過會自動刪除here document中每行開頭的制表符Tab

cmd word
#說明: here string 格式的輸入
#參見: http://bash.cyberciti.biz/guide/Here_strings
#參見: http://linux.die.net/abs-guide/x15683.html

cmd > file
#說明: 以讀寫方式打開文件 file

cmd >| file
#說明: 強制以覆蓋方式將 cmd 的輸出發送到 file 文件
#即便 shell 設置了 noclobber 選項也是如此

cmd >n
#說明: 將 cmd 的輸出發送到文件描述符 n

cmd m>n
#說明: 作用同上。將本該輸出到文件描述符 m 的內容, 發送到文件描述符 n

cmd >-
#說明: 關閉標準輸出

cmd n
#說明: 從文件描述符 n 處獲取內容作為 cmd 命令的輸入

cmd mn
#說明: 作用同上。除了本該從文件描述符 m 處獲取輸入,改為從文件描述符 n 處獲取

cmd -
#說明: 關閉標準輸入

cmd n-
#說明: 通過復制移動文件操作符 n 為標準輸入并且關閉原始輸入

cmd >n-
#說明: 通過復制移動文件操作符 n 為標準輸出并且關閉原始輸出

cmd 2>file
#說明: 將標準錯誤輸出發送到文件 file

cmd  > file 2>1
#說明: 將標準輸出發送到文件 file, 將標準錯誤發送到文件描述符 1, 也即 file 文件

cmd  > file
#說明: 將標準輸出和標準錯誤都發送到文件 file (作用同上)

cmd  > file
#說明: 作用同上, 更好的格式

cmd  >> file
#說明: 將標準錯誤和標準輸出發送到文件 file (追加模式)

cmd  > f1 2> f2
#說明: 將標準輸出發送到文件 f1, 將標準錯誤發送到文件 f2

cmd  | tee files
#說明: 發送 cmd 的輸出到標準輸出 (通常為終端) 和 文件 files

cmd 2>1 | tee files
#說明: 發送 cmd 的輸出和錯誤到標準輸出 (通常為終端) 和 文件 files

cmd | tee files
#說明: 作用同上


四、shell重定向的一些高級用法

1.重定向標準錯誤
例子1:

復制代碼 代碼如下:
command 2> /dev/null

如果command執行出錯,將錯誤的信息重定向到空設備
例子2:
復制代碼 代碼如下:
command > out.put 2>1

將command執行的標準輸出和標準錯誤重定向到out.put(也就是說不管command執行正確還是錯誤,輸出都打印到out.put)。

2.exec用法
exec命令可以用來替代當前shell;換句話說,并沒有啟動子shell,使用這一條命令時任何現有環境變量將會被清除,并重新啟動一個shell(重新輸入用戶名和密碼進入)。

復制代碼 代碼如下:
exec command

其中,command通常是一個shell腳本。
對文件描述符操作的時候用(也只有再這時候),它不會覆蓋你當前的shell
例子1:
復制代碼 代碼如下:
#!/bin/bash
#file_desc


exec 30 0name.txt
read line1
read line2
exec 03
echo $line1
echo $line2

其中:
首先,exec 30 0name.txt的意思是把標準輸入重定向到文件描述符3(0表示標準輸入),然后把文件name.txt內容重定向到文件描述符0,實際上就是把文件name.txt中的內容重定向到文件描述符3。然后通過exec打開文件描述符3;
然后,通過read命令讀取name.txt的第一行內容line1,第二行內容line2,通過Exec 03關閉文件描述符3;
最后,用echo命令輸出line1和line2。最好在終端運行一下這個腳本,親自嘗試一下。

例子2:

復制代碼 代碼如下:
exec 3>test.sh;
#打開test.sh可讀寫操作,與文件描述符3綁定

while read line3
 do
    echo $line;
done

#循環讀取文件描述符3(讀取的是test.sh內容)
復制代碼 代碼如下:
exec 3>-
exec 3-

#關閉文件的,輸入,輸出綁定

五、bash shell 重定向的幾個特殊文件

文件 說明
/dev/stdin 文件描述符 0 的復制品
/dev/stdout 文件描述符 1 的復制品
/dev/stderr 文件描述符 2 的復制品
/dev/fd/n 文件描述符 n 的復制品
/dev/tcp/host/port Bash 在 port 打開到 host 的 TCP 連接
/dev/udp/host/port Bash 在 port 打開到 host 的 UDP 連接
您可能感興趣的文章:
  • shell 1>&2 2>&1 &>filename重定向的含義和區別
  • linux shell數據重定向(輸入重定向與輸出重定向)詳細分析
  • shell常用重定向實例講解
  • linux shell 管道命令(pipe)使用及與shell重定向區別
  • linux shell 腳本實現tcp/upd協議通訊(重定向應用)
  • shell腳本中取消重定向的方法實例
  • Windows Powershell 管道和重定向
  • Shell腳步攻略之管道重定向基礎
  • Shell中重定向的深入講解

標簽:淘寶邀評 赤峰 許昌 邵陽 巴彥淖爾 馬鞍山 金昌 婁底

巨人網絡通訊聲明:本文標題《Linux base shell重定向詳解》,本文關鍵詞  Linux,base,shell,重定向,詳解,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Linux base shell重定向詳解》相關的同類信息!
  • 本頁收集關于Linux base shell重定向詳解的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: www久久日本无码夜色| 好紧好湿好涨夹断bl| 夫妻性生活自拍| 国产乡下妇女做爰bd视频| 丰满性熟妇ⅩXXOOOZZ喷水| 中文字幕在线网| 亚洲精品一区二区| 麻豆久久婬片AA片在線觀看| 乱码在线中文字幕加勒比| 贪婪欲望之岛| 势不可挡小说| 日韩精品视频无吗| 国产人伦视频在线观看| 蒂法浓厚体液榨取| 亚洲AV无码成人精品国产丁香| 4hu永久影院在线四虎| 国产一级婬片A片久久毛片竹菊| 久久中文字幕字幕| 免费乱理伦片在线观看老妇| 91色老99久久九九爱精品| 家有娇妻| 老师你下面好紧我进不去| 天天干干干| 潘金莲婬乱版H无删减小说 | 七仙女裸体被强开双腿小说 | 中国videos露脸page13| 我要看黄色毛片| 日本三级斤| fc2精品成人免费观看| 欧美猛色少妇XXXXXk黄| 长篇乱肉合集乱500| 成人短篇H小说500篇淑芬| gogo天海翼大胆高清人体| 牛鞭进入女人下身的视频免费看| 美女秘? 露尿头无遮挡| 刘玥系列AV视频在线观看| 91电影福利| 亚洲欧美另类色妞网站| 涩桃| 国产jizzhd精品国产丰满| 无码秘?人妻一区二区三区美容院|