偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

利用Unix操作系統(tǒng)重定向

系統(tǒng) 其他OS
在Unix操作系統(tǒng)中,當(dāng)要把多個(gè)文件合并為一個(gè)文件時(shí),重定向功能就會(huì)顯得特別有用。其次Unix操作系統(tǒng)shell會(huì)斷開默認(rèn)設(shè)備。

在我們使用Unix操作系統(tǒng)的時(shí)候,可能大家會(huì)遇到如下這個(gè)問題:在Unix操作系統(tǒng)下需要編譯一個(gè)比較大的程序,估計(jì)要20分鐘。在編譯過程中可能會(huì)出現(xiàn)一些警告或者錯(cuò)誤信息。系統(tǒng)工程師不可能這二十分鐘都盯著屏幕看。為此系統(tǒng)工程師希望shell能夠把這這些編譯過程中出現(xiàn)的警告或者錯(cuò)誤信息能夠保存在一個(gè)文件中,以供系統(tǒng)工程師或者程序開發(fā)人員后續(xù)查詢所用。

一、利用重定向功能實(shí)現(xiàn)文件的合并。

在Unix操作系統(tǒng)中,當(dāng)要把多個(gè)文件合并為一個(gè)文件時(shí),重定向功能就會(huì)顯得特別有用。如現(xiàn)在系統(tǒng)管理員希望幫Unix操作系統(tǒng)中的A1.TXT、A2.TXT 文件合并(甚至多個(gè)文件)就可以通過重定向功能來實(shí)現(xiàn)。在談具體的原理之前,筆者先把這個(gè)命令寫出來。

 

  1. Cat A1.TXT、A2.TXT > new.txt7  

這個(gè)命令的具體執(zhí)行過程如下:

首先當(dāng)shell發(fā)現(xiàn)命令行中有特殊字符時(shí),就會(huì)把流從它的默認(rèn)設(shè)備上斷開?,F(xiàn)在這個(gè)命令中有>符號(hào)時(shí),系統(tǒng)就會(huì)創(chuàng)建一個(gè)新的文件new.txt為寫入做準(zhǔn)備。不過這里要注意一個(gè)問題,如果此時(shí)Unix操作系統(tǒng)中已經(jīng)存在了這個(gè)文件,則shell會(huì)覆蓋這個(gè)文件,而不會(huì)給系統(tǒng)管理員任何的提示。所以在利用輸出重定向功能的時(shí)候,一定要謹(jǐn)慎。特別是***不要以root身份來運(yùn)行這個(gè)命令。

因?yàn)樘貦?quán)用戶對于系統(tǒng)中的所有文件與目錄都有完全控制的權(quán)限。為此其運(yùn)行這個(gè)命令的話,萬一這個(gè)文件已經(jīng)存在,則會(huì)毫不猶豫的覆蓋這個(gè)文件,即使這個(gè)文件的所有者不是特權(quán)用戶。

其次Unix操作系統(tǒng)shell會(huì)斷開默認(rèn)設(shè)備。Cat命令的默認(rèn)設(shè)備通常情況下就是屏幕終端。但是shell在解釋命令的時(shí)候看到了命令中有特殊符號(hào),故會(huì)斷開其默認(rèn)設(shè)備,而會(huì)連接到new.txt這個(gè)文件中。即把這個(gè)文件當(dāng)作其默認(rèn)的顯示設(shè)備。

注意這里是斷開默認(rèn)設(shè)備,連接一個(gè)新設(shè)備;而不是創(chuàng)建一個(gè)備份設(shè)備。也就是說,此時(shí)執(zhí)行這個(gè)命令的時(shí)候,因?yàn)橐呀?jīng)斷開了與屏幕終端的連接,故這兩個(gè)文件的內(nèi)容不會(huì)在屏幕上顯示,而直接保存到了new.txt文件中。

第三cat命令打開依次打開文件并讀取數(shù)據(jù)。這里系統(tǒng)管理員需要弄清楚一個(gè)問題,是shell打開了這兩個(gè)文件呢還是命令cat打開了這兩個(gè)文件?搞清楚這個(gè)問題的答案對于后續(xù)的學(xué)習(xí)很有幫助。筆者在后續(xù)的文章中會(huì)談到這個(gè)問題。

在這里Unix操作系統(tǒng)管理員只需要記住,執(zhí)行這個(gè)命令的時(shí)候是cat命令打開了這些文件,而不是shell。然后Cat命令會(huì)把讀取的數(shù)據(jù)寫入到已經(jīng)重定向到new.txt文件的標(biāo)準(zhǔn)輸出。

注意在這個(gè)命令的執(zhí)行過程中,Cat命令并不知道它實(shí)際上是把內(nèi)容寫入到了一個(gè)新的文件中。也就是說,任何使用標(biāo)準(zhǔn)輸出的命令都不知道它輸出的目標(biāo)對象。他們總認(rèn)為他們是在向默認(rèn)設(shè)備中輸出。.

不過利用上面這個(gè)命令來合并文件的時(shí)候,還有一個(gè)小小的缺陷。即上面的輸出流合并的過程中并沒有顯示合并的文件名。而系統(tǒng)管理員可能希望在new.txt文件的開頭能夠顯示合并的文件名字,以提高文件的閱讀性。要實(shí)現(xiàn)這個(gè)功能也很簡單。假如現(xiàn)在在當(dāng)前目錄下有以A開頭的、.txt結(jié)尾的文件五個(gè),Unix操作系統(tǒng)管理員希望能夠把他們合并起來,并在新文件的開頭顯示這五個(gè)文件的名字,此時(shí)就可以通過如下的命令來實(shí)現(xiàn)。

 

  1. (ls –x A*.txt;echo;cat A*.txt)> new.txt 

這個(gè)命令中l(wèi)s表示列出所有需要合并文件的名字,通過重定向符號(hào)會(huì)把這個(gè)結(jié)果寫入到合并后的文件中。而這個(gè)命令中的echo命令是為了在表頭列于C語言代碼之間插入一空行。也就是說,執(zhí)行這個(gè)命令后程序文件名將顯示在表頭列里,這樣代碼列表清單的最前面就好像建立了一個(gè)目錄一樣。

在這里***再強(qiáng)調(diào)一次,在使用標(biāo)準(zhǔn)輸出重定向功能的時(shí)候,當(dāng)一個(gè)命令的輸出被重定向到一個(gè)文件時(shí),這個(gè)輸出文件由shell在命令執(zhí)行前創(chuàng)建。

如果輸出文件不存在,則shell 會(huì)在命令執(zhí)行前自動(dòng)創(chuàng)建它;如果輸出文件已經(jīng)存在,則shell會(huì)覆蓋這個(gè)已經(jīng)存的文件。為此在使用這個(gè)功能的時(shí)候,***能夠通過ls等命令查看這個(gè)文件是否存在,以免因?yàn)檎`操作而給Unix操作系統(tǒng)用戶帶來不必要的損失。

【編輯推薦】

  1. 查看Unix操作系統(tǒng)內(nèi)存占用
  2. 讓DOS與Unix文件相互兼容
  3. Unix操作系統(tǒng)與Dos文件差異所在
  4. Unix操作系統(tǒng)管理客戶端
  5. Unix操作系統(tǒng)多個(gè)主機(jī)的表示方法
責(zé)任編輯:小霞
相關(guān)推薦

2010-05-04 14:42:33

Unix操作系統(tǒng)

2010-04-14 14:30:28

Unix操作系統(tǒng)

2010-04-14 18:39:24

Unix操作系統(tǒng)

2009-12-10 14:42:22

Linux操作系統(tǒng)

2010-04-13 12:27:44

Unix操作系統(tǒng)

2010-04-15 14:40:26

Unix操作系統(tǒng)

2010-04-08 10:42:28

Unix操作系統(tǒng)

2010-04-08 16:18:22

Unix操作系統(tǒng)工具

2010-04-08 17:56:42

Unix操作系統(tǒng)

2010-04-14 13:59:45

Unix操作系統(tǒng)

2010-04-16 17:19:58

Unix操作系統(tǒng)

2010-04-19 10:54:33

Unix操作系統(tǒng)

2010-04-19 16:57:09

Unix操作系統(tǒng)

2010-04-19 17:39:50

Unix操作系統(tǒng)

2010-04-19 18:18:30

Unix操作系統(tǒng)

2010-04-19 18:31:16

Unix操作系統(tǒng)

2010-04-16 17:49:28

Unix操作系統(tǒng)

2010-04-09 11:24:38

Unix操作系統(tǒng)

2010-04-08 15:21:39

Unix操作系統(tǒng)

2010-05-04 10:16:11

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

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