在 Windows 中發(fā)揮 UNIX 的優(yōu)勢(shì)(反之亦然)
Cygwin 在 Windows 中幾乎完整地模擬一個(gè) UNIX shell。實(shí)際上,它把這兩種操作系統(tǒng)很好地結(jié)合在一起了。例如,可以運(yùn)行 df -h命令顯示 “UNIX” 機(jī)器上的空閑磁盤空間。圖 7 顯示結(jié)果。
圖 7. 是 Windows 上的 UNIX 文件系統(tǒng),還是 UNIX 上的 Windows 文件系統(tǒng)?
正如前面提到的,Cygwin 安裝目錄作為虛擬 UNIX 系統(tǒng)的根目錄。Cygwin 把安裝目錄中的子目錄映射到 UNIX 目錄。它以單獨(dú)的卷的形式提供 Windows 驅(qū)動(dòng)器,比如 /cygwin/c?梢允褂眠@樣的虛擬路徑啟動(dòng) Windows 程序。請(qǐng)嘗試輸入
/cygwin/c/Program\ Files/Internet\ Explorer/IEXPLORE.EXE
從命令行啟動(dòng) Windows Internet Explorer®。(還可以使用 Tab 鍵自動(dòng)展開(kāi)路徑的元素)。
順便說(shuō)一句,如果要把 Windows 路徑名轉(zhuǎn)換為等效的 UNIX 路徑名或者相反,可以試試內(nèi)置命令
cygpath。在默認(rèn)情況下,cygpath產(chǎn)生 UNIX 路徑名。使用-w選項(xiàng)產(chǎn)生 Windows 路徑。
$ cygpath -w /cygwin/c/Program\ Files/Internet\ Explorer/IEXPLORE.EXE c:\Program Files\Internet Explorer\IEXPLORE.EXE |
還有幫助溝通這兩個(gè)環(huán)境的其他特性:
Cygwin 提供它自己的 lpr(/usr/bin/lpr 而不是 Windows 的 LPR.EXE),可以直接從模擬的 UNIX 環(huán)境進(jìn)行打印。只需把 PRINTER 環(huán)境變量設(shè)置為 \\server\printer_name 或 //server/printer_name 這樣的 Cygwin UNC;前向斜杠和反向斜杠都可以,在 Cygwin 中的其他地方也是如此。
在 Cygwin 中用 ln -s創(chuàng)建的符號(hào)鏈接在 Windows 中被解釋為快捷方式。同樣,Windows 快捷方式在 Cygwin 中被解釋為符號(hào)鏈接。因此,可以使用 Windows 快捷方式帶參數(shù)啟動(dòng) UNIX 命令。
因?yàn)?Cygwin 提供完整的 Bash shell,所以可以使用上述的所有兼容特性(和其他特性)編寫 UNIX shell 腳本來(lái)維護(hù) Windows!
例如,可以使用 UNIX find
在驅(qū)動(dòng)器上搜索數(shù)據(jù)。請(qǐng)注意一點(diǎn):在 Windows 文件名中常常使用空格。為了保持完整的文件名(請(qǐng)記住,UNIX 參數(shù)以空格分隔),一定要使用 find -print0和 xargs -0。
見(jiàn)圖 4。展開(kāi) Devel 類別,使用循環(huán)控件選擇以下包的最高版本:
autoconf2.1
automake1.10
binutils
gcc-core
gcc4-core
gdb
pcre
pcre-devel
做出選擇之后(為了滿足依賴性,可能會(huì)自動(dòng)選擇其他包),單擊 Next 開(kāi)始更新。與前面一樣,下載和安裝過(guò)程需要一定的時(shí)間(開(kāi)發(fā)包往往相當(dāng)大)。 參考資料)
結(jié)束語(yǔ)
Cygwin 并不是完美的 UNIX 模擬環(huán)境,但已經(jīng)相當(dāng)好了。核心組件的文檔很完善,而且特別方便,它們介紹了模擬 DLL 中的限制和安全風(fēng)險(xiǎn)。
Cygwin 最棒的特性可能是它與 Windows 的集成。使用 Cygwin 和它的 UNIX 命令行來(lái)操縱系統(tǒng)可以大大提高生產(chǎn)力。建議在您的 shell PATH 變量中包含 Windows 的 Program Files 中的子目錄,這樣只需輸入程序名,就能夠啟動(dòng)路徑中的任何二進(jìn)制程序。
更棒的是,Cygwin 可以在同一個(gè)窗口中管理多個(gè)作業(yè)。按 Control-Z 可以暫停正在運(yùn)行的作業(yè);輸入 bg和fg分別在后臺(tái)和前臺(tái)運(yùn)行作業(yè);輸入 jobs管理作業(yè)列表。當(dāng)然,Cygwin 還可以對(duì)輸入和輸出進(jìn)行重定向,可以通過(guò)管道把一個(gè)命令的輸出發(fā)送給另一個(gè)命令。
本文導(dǎo)航
- 第1頁(yè): 首頁(yè)
- 第2頁(yè): 在 Windows 中發(fā)揮 UNIX 的優(yōu)勢(shì)