成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

通過(guò)重定向在Linux終端任意讀寫數(shù)據(jù)

系統(tǒng) Linux
重定向是一種十分高效的數(shù)據(jù)流動(dòng)方式,它能幫你減少很多鼠標(biāo)和鍵盤上的操作。

[[332352]]

重定向是一種十分高效的數(shù)據(jù)流動(dòng)方式,它能幫你減少很多鼠標(biāo)和鍵盤上的操作。

對(duì)于任何編程或腳本語(yǔ)言,輸入與輸出重定向都是很自然的功能。嚴(yán)格來(lái)說(shuō),當(dāng)你使用電腦時(shí),數(shù)據(jù)自然而然地在發(fā)生著重定向。從 stdin(標(biāo)準(zhǔn)輸入,通常是你的鍵盤或者鼠標(biāo))讀取輸入,輸入則發(fā)往 stdout(標(biāo)準(zhǔn)輸出,一段文本或者數(shù)據(jù)流),最后錯(cuò)誤信息送至 stderr。如果你使用 Bash 或 Zsh 之類的 shell,那么理解這些數(shù)據(jù)流能夠讓你更好地控制信息流向。

標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出以及標(biāo)準(zhǔn)錯(cuò)誤輸出都存在于 Linux 文件系統(tǒng)中。你可以在 /dev 查看:

  1. $ ls /dev/std*
  2. /dev/stderr@  /dev/stdin@  /dev/stdout@

你可能沒(méi)法直接使用它們,但將它們想象成你能傳遞數(shù)據(jù)的元位置,會(huì)很有幫助。

重定向的基礎(chǔ)很簡(jiǎn)單:用一些 > 符號(hào)重定向輸出,然后用另外一些 < 符號(hào)重定向輸入。

重定向輸出

將 ls 命令的輸出寫入一個(gè)文件:

  1. $ ls > list.txt

你沒(méi)法像平常那樣看到 ls 的輸出,因?yàn)樗鼈儾](méi)有被發(fā)送到屏幕,而是被寫入 list.txt 文件了,這個(gè)功能用處太多了,事實(shí)上,你甚至可以用它來(lái)將文件內(nèi)容拷貝到另一個(gè)文件。不一定是文本文件,你也可以用將重定向用于二進(jìn)制數(shù)據(jù):

  1. $ cat image.png > picture.png

(你可能會(huì)好奇為什么要這樣做,有時(shí)候?qū)τ?nbsp;文件權(quán)限信息 而間接有用。)

重定向輸入

你也能將輸入重定向“到”一個(gè)命令。可以說(shuō),它沒(méi)有重定向輸出那么有用,因?yàn)樵S多命令已經(jīng)被硬編碼,只從你的參數(shù)中接收輸入。但是,如果某個(gè)命令需要一系列參數(shù),而且你把這些參數(shù)寫在文件里,想要快速“復(fù)制粘貼”到終端的時(shí)候(除非你并不想復(fù)制粘貼),它就幫得上忙了。

  1. $ sudo dnf install $(<package.list)

重定向輸入得常規(guī)用法是嵌入文檔here-document(簡(jiǎn)寫成 here-doc)和嵌入字符串here-string 技巧。這種輸入方法將一整塊文本重定向至標(biāo)準(zhǔn)輸入流,直到碰見一個(gè)特殊的文件結(jié)束標(biāo)記(許多人習(xí)慣用 EOF,實(shí)際上你可以使用任何字符串,只要它是唯一的)。試著把這些(在第二個(gè) EOF 標(biāo)記之前)敲進(jìn)你的終端:

  1. $ echo << EOF
  2. > foo
  3. > bar
  4. > baz
  5. > EOF

輸出結(jié)果:

  1. foo
  2. bar
  3. baz

使用 Bash 編寫腳本的人常常用這個(gè)技巧,將數(shù)行文本一次性寫入文件或者打印到屏幕上。只要你別忘了末尾的文件結(jié)束標(biāo)記,這會(huì)是一個(gè)幫你避免大量繁瑣 echo 或 printf 語(yǔ)句的好辦法。

嵌入字符串類似于嵌入文檔,但是它只含有一個(gè)字符串(或者用引號(hào)包裹的幾個(gè)字符串,同樣會(huì)被當(dāng)成一個(gè)字符串)

  1. $ cat <<< "foo bar baz"
  2. foo bar baz

重定向錯(cuò)誤信息

錯(cuò)誤信息流叫做 stderr,通過(guò) 2> 實(shí)現(xiàn)這個(gè)目的。下面這個(gè)命令把錯(cuò)誤信息定向到 output.log 文件:

  1. $ ls /nope 2> output.log

將數(shù)據(jù)送往 /dev/null

既然標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出都有自己的位置,那么“空空如也”也應(yīng)該在 Linux 文件系統(tǒng)占有一席之地。沒(méi)錯(cuò),它叫做 null,位于 /dev,頻繁使用的人懶得說(shuō) “slash dev slash null”,于是索性叫它 “devnull”。

通過(guò)重定向,你可以把數(shù)據(jù)發(fā)送到 /dev/null。比如,find 命令常常會(huì)輸出很多具體信息,而且在搜索文件遇到權(quán)限沖突時(shí),會(huì)事無(wú)巨細(xì)地報(bào)告:

  1. $ find ~ -type f
  2. /home/seth/actual.file
  3. find: `/home/seth/foggy': Permission denied
  4. find: `/home/seth/groggy': Permission denied
  5. find: `/home/seth/soggy': Permission denied
  6. /home/seth/zzz.file

find 命令把那些當(dāng)作錯(cuò)誤,所以你可以只把錯(cuò)誤信息重定向至 /dev/null

  1. $ find ~ -type f 2>; /dev/null
  2. /home/seth/actual.file
  3. /home/seth/zzz.file

使用重定向

在 Bash 中,重定向是轉(zhuǎn)移數(shù)據(jù)的有效方法。你可能不會(huì)頻繁使用重定向,但是學(xué)會(huì)如何使用它,能幫你在打開文件、復(fù)制粘貼數(shù)據(jù)這類需要移動(dòng)鼠標(biāo)、大量按鍵操作上,節(jié)省很多不必要的時(shí)間。不要做如此浪費(fèi)時(shí)間的事情。使用重定向,好好享受生活。

責(zé)任編輯:龐桂玉 來(lái)源: Linux中國(guó)
相關(guān)推薦

2020-07-27 07:41:23

Linux重定向數(shù)據(jù)流

2010-12-14 15:07:15

ICMP路由重定向

2017-01-19 19:14:20

Linux重定向命令

2010-03-09 16:11:59

Linux重定向

2014-08-07 10:23:24

linux重定向

2014-09-04 11:39:43

Linux

2017-01-19 19:24:29

Linux重定向

2011-04-20 10:15:02

Linuxconsole口

2010-09-26 16:46:05

2022-11-28 16:16:06

2010-03-19 09:22:02

linux命令應(yīng)用及語(yǔ)

2010-03-01 14:45:07

Linux文件重定向

2022-11-10 15:08:44

Linux輸入輸出

2020-02-24 11:37:56

Linux重定向管道

2010-06-23 16:14:52

Linux Bash

2010-12-31 13:35:25

文件夾重定向

2020-12-09 11:10:12

shellLinux管道

2023-03-04 13:32:35

Linux創(chuàng)建目錄

2010-04-30 09:53:34

Unix系統(tǒng)

2009-12-10 14:42:22

Linux操作系統(tǒng)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美久操网 | 亚洲一区二区三区桃乃木香奈 | 夜夜骑首页 | 黄免费观看视频 | 久久精品一区二区 | 91在线精品秘密一区二区 | 久久综合一区 | 日韩在线中文字幕 | 亚洲精品欧美 | 精品日韩一区二区三区 | 一级片片| 欧美一级片中文字幕 | 国产精品久久久久久影视 | 免费看国产精品视频 | 偷拍自拍在线观看 | a黄视频 | 久久se精品一区精品二区 | 欧洲毛片 | 最新国产精品精品视频 | 日日夜夜精品免费视频 | 久久久999精品 | 中文字幕日韩一区 | 别c我啊嗯国产av一毛片 | 黄色免费观看 | 福利久久 | 亚洲人成人一区二区在线观看 | 欧美视频在线播放 | 天天干天天操 | 午夜精品导航 | 欧美1级| 在线观看免费av网 | h片在线免费看 | 欧美一区不卡 | 日本精品视频一区二区 | 国产精品久久久久aaaa樱花 | 精品无码久久久久久国产 | 日韩视频精品在线 | 亚洲97| 国产精品久久久久国产a级 欧美日韩国产免费 | 老外几下就让我高潮了 | 亚洲电影免费 |