日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

對話 UNIX: 在 Windows 上使用 Cygwin

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

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

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

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

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

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

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

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

安裝 Cygwin

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

在 Windows 系統上打開瀏覽器,通過訪問 http://cygwin.com/setup.exe 下載 Cygwin 安裝程序。安裝程序本身非常小(大約 600KB),因為大多數 Cygwin 軟件是在安裝過程中下載的。完成下載之后,按照以下步驟安裝 Cygwin:

運行安裝程序。圖 1 顯示 Cygwin 歡迎屏幕。

圖 1. 在安裝 Cygwin 期間出現的第一個對話框

單擊 Next 進入下一個屏幕,選擇要執行的安裝類型。

單擊 Install from Internet。

單擊 Next,然后選擇一個安裝目錄。

配置安裝的窗口見圖 2。

圖 2. Cygwin 安裝選項

在大多數情況下,推薦的安裝選項是合適的,也可以進行定制,但是要注意幾點:

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

對于 Install For 選項,不要選擇 Just Me。

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

單擊 Next。

在下一個窗口中,選擇一個存儲 Cygwin 所需的數據的目錄。不要選擇前一步中選擇的 Cygwin 目錄。 如果可能的話,應該在有至少 1GB 空閑空間的驅動器上創建或選擇一個目錄。

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

再次單擊 Next。

稍等一會兒,Cygwin 會下載當前的鏡像站點列表,讓您選擇一個鏡像站點,見圖 3。如果不確定應該選擇哪個站點,就選擇地理位置比較近的站點。

圖 3. 選擇您認為可靠的或地理位置比較近的安裝站點

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

圖 4. 選擇最適合需要的包和實例

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

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

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

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

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

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

圖 6 顯示第一次啟動 Cygwin 時的情況:它創建您的主目錄,執行 shell 啟動文件,顯示提示。現在可以運行 Unix 命令了!

圖 6. 現在可以在 Windows 中使用 UNIX 命令了!

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

在 Windows 中發揮 UNIX 的優勢(反之亦然)

Cygwin 在 Windows 中幾乎完整地模擬一個 UNIX shell。實際上,它把這兩種操作系統很好地結合在一起了。例如,可以運行 df -h 命令顯示 “UNIX 機器上的空閑磁盤空間。圖 7 顯示結果。

圖 7. 是 Windows 上的 UNIX 文件系統,還是 UNIX 上的 Windows 文件系統?

正如 前面提到的,Cygwin 安裝目錄作為虛擬 Unix 系統的根目錄。Cygwin 把安裝目錄中的子目錄映射到 UNIX 目錄。它以單獨的卷的形式提供 Windows 驅動器,比如 /cygwin/c。可以使用這樣的虛擬路徑啟動 Windows 程序。請嘗試輸入 /cygwin/c/Program Files/Internet Explorer/IEXPLORE.EXE 從命令行啟動 Windows Internet Explorer®。(還可以使用 Tab 鍵自動展開路徑的元素)。

順便說一句,如果要把 Windows 路徑名轉換為等效的 UNIX 路徑名或者相反,可以試試內置命令 cygpath。在默認情況下,cygpath 產生 UNIX 路徑名。使用 -w 選項產生 Windows 路徑。

$ cygpath -w /cygwin/c/Program Files/Internet Explorer/IEXPLORE.EXE c:Program FilesInternet ExplorerIEXPLORE.EXE 

還有幫助溝通這兩個環境的其他特性:

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

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

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

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

如何更新和擴展 Cygwin

正如前面提到的,在任何時候都可以通過運行 Cygwin 安裝程序添加、刪除和更新 Cygwin 類別和包。我們來添加幾個軟件開發包,以便像在傳統的 Unix 系統上那樣從源代碼構建程序。

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

autoconf2.1

automake1.10

binutils

gcc-core

gcc4-core

gdb

pcre

pcre-devel

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

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

清單 1. wget-1.11.4.tar 的內容

 $ 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 $ 

當 Cygwin 下載和安裝過程完成時,單擊 Finish。現在可以從源代碼構建 wget 實用程序了。

$ 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 

為了測試這個新的實用程序,在 Cygwin 中運行它并下載 wget 源代碼:

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

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

如果您不喜歡 Microsoft Visual Studio® 等 Windows 開發工具,甚至可以用 Cygwin 中的 UNIX 編譯器和工具構建原生 Windows WIN32 應用程序。

結束語

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

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

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

Cygwin 真的很不錯。

標簽: Windows系統
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美视频久久| 免费观看日韩电影| 日韩中文字幕av电影| 国产在线不卡| 久久精品青草| 欧美精品国产白浆久久久久| 日韩福利视频网| 欧美日韩亚洲一区在线观看| 蜜桃久久久久久| 久久亚洲国产| 精品一区二区三区中文字幕| 国产精品一区二区免费福利视频| 日韩欧美中文字幕电影 | 精品91福利视频| 国产美女精品视频免费播放软件| 亚洲毛片网站| 日韩88av| 国产福利一区二区精品秒拍 | 日本午夜免费一区二区| 欧美 日韩 国产一区二区在线视频| 精品高清久久| 日韩不卡一区二区| 亚洲精品国产日韩| 日韩在线网址| 麻豆精品在线视频| 国产综合色区在线观看| 99国产精品久久久久久久| 日韩三级一区| 久久精品亚洲| 今天的高清视频免费播放成人| 亚洲在线成人| 国产欧美二区| 天堂中文在线播放| 免费成人在线视频观看| 亚洲精品麻豆| 久久精品免费看| 九九久久婷婷| 久久国产精品免费精品3p | 亚洲欧美日韩综合国产aⅴ| 亚洲综合国产| 国产精品777777在线播放| 亚洲精品亚洲人成在线观看| 欧美亚洲专区| 99日韩精品| 综合日韩av| 日本不卡高清视频| 精品一区在线| 涩涩av在线| 国产精品久久国产愉拍| 日韩精品一级二级| 国产99亚洲| 精品一区二区男人吃奶| 日韩精品成人| 热久久国产精品| 99久久亚洲精品蜜臀| 精品久久精品| 国产欧美在线| 亚洲欧美网站在线观看| 91久久国产| 青青青国产精品| 久久精品国产亚洲夜色av网站| 久久不见久久见中文字幕免费| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美特黄一级大片| 久久99久久人婷婷精品综合| 国产成人精品三级高清久久91| 丝袜脚交一区二区| 日韩欧美一区二区三区在线视频 | 国产日本精品| 国产高清一区| 国产剧情在线观看一区| 欧美日一区二区| 国产精品久久久久久久免费软件 | 欧美亚洲激情| 国产精品毛片aⅴ一区二区三区| 一区视频在线| 日韩成人精品一区| 日韩和欧美一区二区三区| 国产综合精品一区| 精品视频99| 日韩国产欧美一区二区三区| 国产一区日韩欧美| 久久永久免费| 91精品国产自产精品男人的天堂| 91精品国产91久久久久久黑人| 欧美日本久久| 蜜桃视频在线观看一区| 国产一在线精品一区在线观看| 精品精品国产三级a∨在线| 日韩精品视频网| 制服诱惑一区二区| 欧美~级网站不卡| 亚洲黄色网址| 精品资源在线| 国产精品亚洲综合色区韩国| 综合激情视频| 亚洲一区二区三区四区五区午夜| 99久久精品网| 欧美一区久久久| 精品视频国产| 国产精品一区二区免费福利视频 | 国产精品超碰| 国产欧美一级| 日本欧美韩国一区三区| 亚洲欧洲日韩| 亚洲欧美专区| 天堂俺去俺来也www久久婷婷| 久久av一区| 鲁大师成人一区二区三区| 伊人精品视频| 在线亚洲精品| 国产精品毛片| 亚洲激情另类| 国产精品美女久久久浪潮软件| 欧美日韩激情在线一区二区三区| 性欧美xxxx免费岛国不卡电影| 久久网站免费观看| 999久久久国产精品| 日本韩国欧美超级黄在线观看| 国产自产自拍视频在线观看| 国产a亚洲精品| 久久久久亚洲精品中文字幕| 久久精品国产亚洲aⅴ| 国产精品久久久久久久久久10秀| 国产精品成人a在线观看| 91视频一区| 波多野结衣久久精品| 色婷婷狠狠五月综合天色拍| sm久久捆绑调教精品一区| 日韩伦理在线一区| 成人羞羞视频播放网站| 久久男女视频| 日韩午夜免费| 蜜桃av一区二区| 日韩一二三区在线观看| 日本高清不卡一区二区三区视频 | 91精品推荐| 亚洲精品99| 蜜桃av一区| 日韩精品五月天| 国产精品一区二区三区四区在线观看 | 99国产精品自拍| а√天堂8资源在线| 激情黄产视频在线免费观看| 久久久久久黄| 亚洲制服少妇| 日本欧美在线| 精品72久久久久中文字幕| 日本欧美不卡| 亚洲黄色影院| 婷婷久久免费视频| 国产精品啊啊啊| 亚洲1234区| 一区二区日韩免费看| 欧美激情视频一区二区三区在线播放| 在线亚洲人成| 在线免费观看亚洲| 国产精品免费精品自在线观看| 天堂√8在线中文| 免费观看在线综合色| 国产精品s色| 国产91久久精品一区二区| 亚洲精品日本| 色乱码一区二区三区网站| 久久久久网站| 欧美日韩精品一区二区三区视频 | 国产aⅴ精品一区二区四区| 偷拍精品精品一区二区三区| 首页国产欧美日韩丝袜| 久久99精品久久久久久园产越南 | 国产精品天天看天天狠| 中文在线а√在线8| 99成人在线| 国产精品22p| 欧美精选一区二区三区| 日韩av不卡一区二区| 亚洲成av在线| 亚洲a成人v| 成人看片网站| 欧美午夜三级| 亚洲国产专区| 国产女人18毛片水真多18精品| 亚洲91视频| 国产精品自在| 一本色道精品久久一区二区三区| 国产乱码精品一区二区三区四区| 久久伦理在线| 国产精品主播| 国产婷婷精品| 精品国产美女a久久9999| 亚洲激情精品| 国产精品草草| 国产精品婷婷| 精品免费视频| 亚洲性视频在线| 裤袜国产欧美精品一区| 在线精品一区| 成人日韩在线| 国产日韩欧美三级| 欧美在线亚洲|