成人视屏在线观看-国产99精品-国产精品1区2区-欧美一级在线观看-国产一区二区日韩-色九九九

您的位置:首頁技術(shù)文章
文章詳情頁

對話 UNIX: 在 Windows 上使用 Cygwin

瀏覽:182日期:2024-01-31 14:24:57

如果您是本專欄的忠實(shí)讀者,應(yīng)該已經(jīng)熟悉了許多 Unix 行話。“用管道重定向輸出、“殺死進(jìn)程 和 “使用通配符 等行話對于新手來說很奇怪,但是您應(yīng)該很熟悉這些說法了。

對于 UNIX 本身,也有各種稱呼。IBM® 大型機(jī)用戶說各種帶字母 “z 的行話,比如 IBM z/OS® 和 System z9 Virtual Machine (z/VM);嵌套系統(tǒng)開發(fā)人員使用 eCos 這個(gè)詞;在聊天中還會提到其他許多風(fēng)格的 UNIX,比如 Linux®、FreeBSD、Sun Solaris 和 Mac OS X。現(xiàn)代信息技術(shù)使用各種各樣的方言,簡直就像是圣經(jīng)中巴別塔的故事。

當(dāng)然,也有不少人說 Windows 術(shù)語,盡管大多數(shù)人只掌握 “指向和單擊 這樣的簡單詞匯。經(jīng)過 20 年的發(fā)展,大多數(shù) Windows 用戶已經(jīng)忘了古老的 Dos 術(shù)語。

但是,與 UNIX shell 相比,Windows COMMAND 實(shí)用程序的功能實(shí)在很差;因此,UNIX 用戶通常認(rèn)為 Windows 是一種讓人灰心喪氣的平臺。對于習(xí)慣于使用豐富的命令行工具集的 UNIX 軟件開發(fā)人員來說,Windows 尤其別扭。對于 UNIX 開發(fā)人員來說,使用 Windows 簡直就像是到了陌生的外國。

幸運(yùn)的是,Cygwin(見 參考資料)在 Windows 環(huán)境中提供大家熟悉的一片天地,就像是美國人在法國找到了麥當(dāng)勞。

Cygwin 是一個(gè)用于 Windows 的類 UNIX shell 環(huán)境。 它由兩個(gè)組件組成:一個(gè) UNIX API 庫,它模擬 UNIX 操作系統(tǒng)提供的許多特性;以及 Bash shell 的改寫版本和許多 UNIX 實(shí)用程序,它們提供大家熟悉的 UNIX 命令行界面。前一個(gè)組件是一個(gè) Windows 動態(tài)鏈接庫 (DLL)。后一個(gè)組件是一組基于 Cygwin DLL 的程序,其中許多是用未經(jīng)修改的 UNIX 源代碼編譯的。它們合在一起提供大家熟悉的 UNIX 環(huán)境。

在本期的 對話 Unix 專欄中,我們要安裝 Cygwin,討論它的命令行界面 (CLI),并構(gòu)建標(biāo)準(zhǔn) Cygwin 發(fā)行版中未包含的開放源碼,以此體會把 UNIX 應(yīng)用程序(至少是一部分 UNIX 應(yīng)用程序)遷移到這個(gè)模擬環(huán)境是多么容易。

安裝 Cygwin

與這里介紹的其他軟件不同,Cygwin 使用 Windows 安裝程序。Cygwin setup.exe 文件可以重新安裝軟件,可以添加、修改或升級 Cygwin 配置的組件。

在 Windows 系統(tǒng)上打開瀏覽器,通過訪問 http://cygwin.com/setup.exe 下載 Cygwin 安裝程序。安裝程序本身非常小(大約 600KB),因?yàn)榇蠖鄶?shù) Cygwin 軟件是在安裝過程中下載的。完成下載之后,按照以下步驟安裝 Cygwin:

運(yùn)行安裝程序。圖 1 顯示 Cygwin 歡迎屏幕。

圖 1. 在安裝 Cygwin 期間出現(xiàn)的第一個(gè)對話框

單擊 Next 進(jìn)入下一個(gè)屏幕,選擇要執(zhí)行的安裝類型。

單擊 Install from Internet。

單擊 Next,然后選擇一個(gè)安裝目錄。

配置安裝的窗口見圖 2。

圖 2. Cygwin 安裝選項(xiàng)

在大多數(shù)情況下,推薦的安裝選項(xiàng)是合適的,也可以進(jìn)行定制,但是要注意幾點(diǎn):

不要在 Windows 系統(tǒng)的根目錄(比如 C:)中安裝 Cygwin。最好把 Cygwin 安裝在它自己的子目錄中,比如默認(rèn)目錄(C:cygwin)或 C:Program Filescygwin。(您選擇的目標(biāo)目錄將成為模擬的 UNIX 環(huán)境的根目錄 /。例如,如果在 C:cygwin 中安裝,那么虛擬的 /usr/bin 實(shí)際上是 C:cygwinusrbin)。

對于 Install For 選項(xiàng),不要選擇 Just Me。

把 Default Text File 類型設(shè)置為 Unix,從而盡可能提高與其他 UNIX 機(jī)器上存儲的現(xiàn)有文件的兼容性。

單擊 Next。

在下一個(gè)窗口中,選擇一個(gè)存儲 Cygwin 所需的數(shù)據(jù)的目錄。不要選擇前一步中選擇的 Cygwin 目錄。 如果可能的話,應(yīng)該在有至少 1GB 空閑空間的驅(qū)動器上創(chuàng)建或選擇一個(gè)目錄。

再次單擊 Next,選擇使用的 Internet 連接類型。通常應(yīng)該選擇 Direct Connection。

再次單擊 Next。

稍等一會兒,Cygwin 會下載當(dāng)前的鏡像站點(diǎn)列表,讓您選擇一個(gè)鏡像站點(diǎn),見圖 3。如果不確定應(yīng)該選擇哪個(gè)站點(diǎn),就選擇地理位置比較近的站點(diǎn)。

圖 3. 選擇您認(rèn)為可靠的或地理位置比較近的安裝站點(diǎn)

經(jīng)過短暫的延遲之后,安裝程序顯示可用的類別和包的完整列表。圖 4 顯示一個(gè)類別的部分內(nèi)容。單擊加號 (+) 展開對應(yīng)的類別;單擊 “循環(huán) 標(biāo)志在 Skip(忽略此包)和包的所有可用版本之間循環(huán)。如果 Cygwin 提供一個(gè)實(shí)用程序的多個(gè)版本,應(yīng)該選擇滿足您的需求的實(shí)例。順便說一下,如果選擇 B 列,就會下載二進(jìn)制包;選擇 S,也會下載源代碼。

圖 4. 選擇最適合需要的包和實(shí)例

在 Cygwin 中可用的包超過 1,000 個(gè),所以應(yīng)該只選擇您需要的類別和包。(安裝所有 Cygwin 包會占用超過 800MB 的磁盤空間)。以后隨時(shí)可以添加整個(gè)類別或單獨(dú)的包:只需重新運(yùn)行 Cygwin 安裝程序。(還可以在任何時(shí)候用相同的安裝程序刪除或更新包)。搜索 Cygwin 包列表(參見 參考資料),檢查您喜歡的 UNIX 實(shí)用程序是否在 Cygwin 中可用。

選擇您需要的工具之后,單擊 Next,下載過程開始!

進(jìn)度條分別反映每個(gè)包的下載進(jìn)度、總下載進(jìn)度和磁盤使用量。圖 5 是在我的測試計(jì)算機(jī)上在安裝期間截取的屏幕圖。

圖 5. Cygwin 下載大量軟件,所以請耐心等待

最后,安裝程序安裝軟件并(可選地)在 Start 菜單和桌面中添加快捷方式。單擊 Finish。

通過使用 Start 菜單或雙擊 Cygwin 圖標(biāo)(如果添加了這些快捷方式的話),啟動 Cygwin;也可以執(zhí)行 Cygwin 目錄中的 Cygwin 腳本(比如 C:cygwinCygwin.bat)。

圖 6 顯示第一次啟動 Cygwin 時(shí)的情況:它創(chuàng)建您的主目錄,執(zhí)行 shell 啟動文件,顯示提示。現(xiàn)在可以運(yùn)行 Unix 命令了!

圖 6. 現(xiàn)在可以在 Windows 中使用 UNIX 命令了!

例如,試一下 ls -a 或 type touch。后一個(gè)命令表明 touch 是可執(zhí)行文件 /usr/bin/touch。

在 Windows 中發(fā)揮 UNIX 的優(yōu)勢(反之亦然)

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ū)動器,比如 /cygwin/c。可以使用這樣的虛擬路徑啟動 Windows 程序。請嘗試輸入 /cygwin/c/Program Files/Internet Explorer/IEXPLORE.EXE 從命令行啟動 Windows Internet Explorer®。(還可以使用 Tab 鍵自動展開路徑的元素)。

順便說一句,如果要把 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 FilesInternet ExplorerIEXPLORE.EXE 

還有幫助溝通這兩個(gè)環(huán)境的其他特性:

Cygwin 提供它自己的 lpr(/usr/bin/lpr 而不是 Windows 的 LPR.EXE),可以直接從模擬的 UNIX 環(huán)境進(jìn)行打印。只需把 PRINTER 環(huán)境變量設(shè)置為 serverprinter_name 或 //server/printer_name 這樣的 Cygwin UNC;前向斜杠和反向斜杠都可以,在 Cygwin 中的其他地方也是如此。

在 Cygwin 中用 ln -s 創(chuàng)建的符號鏈接在 Windows 中被解釋為快捷方式。同樣,Windows 快捷方式在 Cygwin 中被解釋為符號鏈接。因此,可以使用 Windows 快捷方式帶參數(shù)啟動 UNIX 命令。

因?yàn)?Cygwin 提供完整的 Bash shell,所以可以使用上述的所有兼容特性(和其他特性)編寫 UNIX shell 腳本來維護(hù) Windows!

例如,可以使用 UNIX find 在驅(qū)動器上搜索數(shù)據(jù)。請注意一點(diǎn):在 Windows 文件名中常常使用空格。為了保持完整的文件名(請記住,UNIX 參數(shù)以空格分隔),一定要使用 find -print0 和 xargs -0。

如何更新和擴(kuò)展 Cygwin

正如前面提到的,在任何時(shí)候都可以通過運(yùn)行 Cygwin 安裝程序添加、刪除和更新 Cygwin 類別和包。我們來添加幾個(gè)軟件開發(fā)包,以便像在傳統(tǒng)的 Unix 系統(tǒng)上那樣從源代碼構(gòu)建程序。

再次運(yùn)行 Cygwin setup.exe 應(yīng)用程序,依次通過前幾個(gè)對話框,直到到達(dá) Select Packages 窗口,見 圖 4。展開 Devel 類別,使用循環(huán)控件選擇以下包的最高版本:

autoconf2.1

automake1.10

binutils

gcc-core

gcc4-core

gdb

pcre

pcre-devel

做出選擇之后(為了滿足依賴性,可能會自動選擇其他包),單擊 Next 開始更新。與前面一樣,下載和安裝過程需要一定的時(shí)間(開發(fā)包往往相當(dāng)大)。

在此期間,打開一個(gè)瀏覽器并通過訪問 http://ftp.gnu.org/gnu/wget/wget-1.11.4.tar.gz 下載 GNU wget 實(shí)用程序的最新源代碼。(wget 是一種命令行工具,它可以下載任何東西。關(guān)于此工具的更多信息,請參見 參考資料)。使用 Cygwin 把此文件復(fù)制到 Cygwin 中的主目錄,展開壓縮文件。清單 1 顯示壓縮文件的內(nèi)容。

清單 1. wget-1.11.4.tar 的內(nèi)容

 $ cp /cygdrive/c/Documents and Settings/Martin/My Documents/wget-1.11.4.tar ~ $ tar xzvf wget-11.4.tar wget-1.11.4/ wget-1.11.4/AUTHORS wget-1.11.4/NEWS wget-1.11.4/COPYING wget-1.11.4/configure.bat wget-1.11.4/ChangeLog wget-1.11.4/ChangeLog.README wget-1.11.4/msDos/ wget-1.11.4/msdos/ChangeLog wget-1.11.4/msdos/Makefile.DJ ... wget-1.11.4/src/cookIEs.c wget-1.11.4/src/http.h wget-1.11.4/src/log.h wget-1.11.4/src/sysdep.h wget-1.11.4/src/alloca.c wget-1.11.4/src/getopt.c wget-1.11.4/src/gnu-md5.h wget-1.11.4/src/ftp.c wget-1.11.4/config.sub wget-1.11.4/config.guess $ 

當(dāng) Cygwin 下載和安裝過程完成時(shí),單擊 Finish。現(xiàn)在可以從源代碼構(gòu)建 wget 實(shí)用程序了。

$ cd wget-1.11.4 $ ./configure configure: Configuring for GNU wget 1.11.4 ... creating po/Makefile $ make gcc -I. ... $ make install ... /usr/bin/install -c -m 644 ./wget.1 /usr/local/share/man/man1/wget.1 $ type wget /usr/local/bin/wget 

為了測試這個(gè)新的實(shí)用程序,在 Cygwin 中運(yùn)行它并下載 wget 源代碼:

$ /usr/local/bin/wget http://ftp.gnu.org/gnu/wget/wget-1.11.4.tar.gz 

稍后就會得到一個(gè)新的源代碼壓縮文件。使用 Cygwin 安裝程序從 Cygwin 存儲庫獲得實(shí)用程序是最簡單的方法,但是也可以在 Cygwin 中構(gòu)建下載的或自己的源代碼。在 Cygwin 中可以使用全套 Unix 開發(fā)工具,包括最流行的腳本編程語言。

如果您不喜歡 Microsoft Visual Studio® 等 Windows 開發(fā)工具,甚至可以用 Cygwin 中的 UNIX 編譯器和工具構(gòu)建原生 Windows WIN32 應(yīng)用程序。

結(jié)束語

Cygwin 并不是完美的 UNIX 模擬環(huán)境,但已經(jīng)相當(dāng)好了。核心組件的文檔很完善,而且特別方便,它們介紹了模擬 DLL 中的限制和安全風(fēng)險(xiǎn)。如果希望把復(fù)雜的 UNIX 包遷移到 Cygwin,請參考開發(fā)人員指南(參見 參考資料),評估 Cygwin 的支持是否能夠滿足您的 API 需要。

Cygwin 最棒的特性可能是它與 Windows 的集成。使用 Cygwin 和它的 UNIX 命令行來操縱系統(tǒng)可以大大提高生產(chǎn)力。建議在您的 shell PATH 變量中包含 Windows 的 Program Files 中的子目錄,這樣只需輸入程序名,就能夠啟動路徑中的任何二進(jìn)制程序。

更棒的是,Cygwin 可以在同一個(gè)窗口中管理多個(gè)作業(yè)。按 Control-Z 可以暫停正在運(yùn)行的作業(yè);輸入 bg 和 fg 分別在后臺和前臺運(yùn)行作業(yè);輸入 jobs 管理作業(yè)列表。當(dāng)然,Cygwin 還可以對輸入和輸出進(jìn)行重定向,可以通過管道把一個(gè)命令的輸出發(fā)送給另一個(gè)命令。

Cygwin 真的很不錯(cuò)。

標(biāo)簽: Windows系統(tǒng)
主站蜘蛛池模板: 成人欧美一区二区三区视频xxx | 爱爱毛片| 亚洲经典在线观看 | 欧美一区二区三区国产精品 | 国产精品v免费视频 | 亚洲人在线播放 | 老妇激情毛片 | 免费欧洲毛片a级视频 | 久久精品免费一区二区视 | 成人精品视频一区二区三区 | 99精品高清视频一区二区 | 久久精品二区 | 国产精品久久视频 | 男人的天堂在线精品视频 | 黄色作爱视频 | 国产黄色小视频在线观看 | 一级毛片免费不卡在线 | 99久在线 | 国产高清在线观看视频手机版 | 港台三级在线观看 | 亚洲热播 | 欧美jizzhd欧美精品 | 日本天堂网在线观看 | 亚洲精品区 | 国产亚洲综合精品一区二区三区 | 日韩国产成人精品视频 | 国产日韩精品一区二区 | 国产三级日本三级日产三 | 亚洲 欧美 国产 日韩 制服 bt | 特毛片 | a大片久久爱一级 | 在线观看亚洲国产 | 精品国产综合区久久久久99 | a级片在线观看免费 | 欧美高清另类自拍视频在线看 | 久久久久久久久免费影院 | 在线久| 日本草草视频在线观看 | 免费看操片 | www.欧美xxxx| 免费观看的毛片手机视频 |