Cygwin離線安裝包是安裝各種工具和庫(kù)的集合,這些工具和庫(kù)旨在在Windows操作系統(tǒng)上提供類似Linux的環(huán)境,并選擇要在系統(tǒng)上部署的組件。有需要的小伙伴歡迎來(lái)西西下載體驗(yàn)。
軟件簡(jiǎn)介:
Cygwin是:
GNU和開放源代碼工具的大量集合,它們提供的功能類似于Windows上的Linux發(fā)行版。
提供實(shí)質(zhì)性POSIX API功能的DLL(cygwin1.dll)。
Cygwin不是:
一種在Windows上運(yùn)行本機(jī)Linux應(yīng)用程序的方法。 如果要使其在Windows上運(yùn)行,則必須從源代碼重建應(yīng)用程序。
一種神奇地使本機(jī)Windows應(yīng)用程序了解UNIX®功能(例如信號(hào),pty等)的方法。同樣,如果要利用Cygwin功能,則需要從源代碼構(gòu)建應(yīng)用程序。
軟件組成:
Cygwin包括了一套庫(kù),該庫(kù)在Win32系統(tǒng)下實(shí)現(xiàn)了POSIX系統(tǒng)調(diào)用的API;還有一套GNU開發(fā)工具集(比如GCC、GDB),這樣可以進(jìn)行簡(jiǎn)單的軟件開發(fā);還有一些UNIX系統(tǒng)下的常見程序。2001年,新增了X Window System。
另外還有一個(gè)名為MinGW的庫(kù),可以跟Windows本地的MSVCRT庫(kù)(Windows API)一起工作。MinGW占用內(nèi)存、硬盤空間都比較少,能夠鏈接到任意軟件,但它對(duì)POSIX規(guī)范的實(shí)現(xiàn)沒有Cygwin庫(kù)完備。
但糟糕的是,Cygwin不支持Unicode。實(shí)際上,除了當(dāng)前Windows系統(tǒng)以及OEM codepages(例如,一個(gè)俄語(yǔ)用戶,他的代碼頁(yè)是CP1251和CP866,而不能是KOI8-R、ISO/IEC 8859-5、UTF-8等),Cygwin對(duì)其他字符集都不支持。Cygwin 的較新版本可以通過(guò)自帶終端模擬器的設(shè)置來(lái)滿足顯示 UTF-8 和更多代碼頁(yè)的功能。
Red Hat規(guī)定,Cygwin庫(kù)遵守GNU General Public License,但也可以跟符合開源定義的自由軟件鏈接。Red Hat另有價(jià)格不菲的許可協(xié)議,這樣使用Cygwin庫(kù)的專屬軟件,就可以進(jìn)行再發(fā)布。
安裝說(shuō)明:
安裝
cygwin的安裝文件很容易通過(guò)百度找到。國(guó)內(nèi)的網(wǎng)站上有"網(wǎng)絡(luò)安裝版"和"本地安裝版"兩種。標(biāo)準(zhǔn)的發(fā)行版應(yīng)該是網(wǎng)絡(luò)安裝版。兩者并無(wú)大不同,下面介紹一下安裝的過(guò)程。
step1. 下載后,點(diǎn)擊安裝文件(setup.exe)進(jìn)行安裝,第一個(gè)畫面是GNU版權(quán)說(shuō)明,點(diǎn)"下一步(N)—>",
環(huán)境變量
開始運(yùn)行bash之前,應(yīng)該設(shè)置一些環(huán)境變量。cygwin提供了一個(gè).bat文件,里面已經(jīng)設(shè)置好了最重要的環(huán)境變量。通過(guò)它來(lái)啟動(dòng)bash是最安全的辦法。這個(gè).bat文件安裝在cygwin所在的根目錄下?梢噪S意編輯該文件。
CYGWIN變量用來(lái)針對(duì)cygwin運(yùn)行時(shí)系統(tǒng)進(jìn)行多種全局設(shè)置。開始時(shí),可以不設(shè)置CYGWIN或者在執(zhí)行bash前用類似下面的格式在dos框下把它設(shè)為tty
C:\> set CYGWIN=tty notitle glob
PATH變量被cygwin應(yīng)用程序作為搜索可知性文件的路徑列表。當(dāng)一個(gè)cygwin進(jìn)程啟動(dòng)時(shí),該變量被從windows格式(e.g. C:\WinNT\system32;C:\WinNT)轉(zhuǎn)換成unix格式(e.g., /WinNT/system32:/WinNT)。如果想在不運(yùn)行bash的時(shí)候也能夠使用cygwin工具集,PATH起碼應(yīng)該包含x:\cygwin\bin,其中x:\cygwin 是你的系統(tǒng)中的cygwin目錄。
HOME變量用來(lái)指定主目錄,推薦在執(zhí)行bash前定義該變量。當(dāng)cygwin進(jìn)程啟動(dòng)時(shí),該變量也被從windows格式轉(zhuǎn)換成unix格式,例如,作者的機(jī)器上HOME的值為C:\(dos命令set HOME就可以看到它的值,set HOME=XXX可以進(jìn)行設(shè)置),在bash中用echo $HOME看,其值為/cygdrive/c.
TERM變量指定終端型態(tài)。如果沒對(duì)它進(jìn)行設(shè)置,它將自動(dòng)設(shè)為cygwin。
LD_LIBRARY_PATH被cygwin函數(shù)dlopen()作為搜索.dll文件的路徑列表,該變量也被從windows格式轉(zhuǎn)換成unix格式。多數(shù)Cygwin應(yīng)用程序不使用dlopen,因而不需要該變量。
進(jìn)入安裝模式選擇畫面。
step2. 安裝模式有"Install from Internet"、"Download from Internet"、
"Install from Local Directory" 三種。"Install from Internet"就是直接從internet上裝,適用于網(wǎng)速較快的情況。在選擇鏡像頁(yè)面,可以使用一些中國(guó)的鏡像源以便提高網(wǎng)速。
如果你的網(wǎng)速不是很快,或者說(shuō)裝過(guò)之后想把下載的安裝文件保存起來(lái),下次不再下載了直接安裝,就應(yīng)該選擇"Download from Internet",下載安裝的文件(大約40M左右)。
事實(shí)上,所謂的"本地安裝版",也是別人從網(wǎng)上下載全部文件后打的包,適用于網(wǎng)絡(luò)不佳的情況。
step3. 接下來(lái)是選擇安裝目的路徑和安裝源文件所在的路徑,之后就進(jìn)入了選擇安裝包所在的路徑。
這里是安裝的重點(diǎn)部分。在這里選擇要安裝的組件,不安裝自然就不可能工作?梢允褂盟阉骺蛘业揭惭b的軟件。例如,不安裝gcc就不可能編譯軟件,等等。
+ All Default
+ Admin Default
+ Devel Default
+ Editors Default
如上圖所示,你在這個(gè)TreeView的某個(gè)節(jié)點(diǎn)上雙擊,就可以改變它的狀態(tài),如Default、Install、Uninstall、Reinstall四種狀態(tài)。默認(rèn)的都是Default狀態(tài),很多工具的默認(rèn)狀態(tài)都是不安裝。
在這里我選擇了在All這一行上后面的Default上點(diǎn)Install,全部安裝,以免后患。(注意:這里的樹形控件和win下面的不同,你試試點(diǎn)在All上點(diǎn) 和 在All這一行后面的Default上點(diǎn),會(huì)有不同的響應(yīng))
step4. 點(diǎn)下一步,安裝成功。它會(huì)自動(dòng)在你的桌面上建立一個(gè)快捷方式。
好了,下面就開始我的linux旅程了。雙擊cygwin的快捷方式進(jìn)入系統(tǒng)。
首先介紹幾個(gè)簡(jiǎn)單的linux命令。
pwd 顯示當(dāng)前的路徑
cd 改變當(dāng)前路徑,無(wú)參數(shù)時(shí)進(jìn)入對(duì)應(yīng)用戶的home目錄
ls 列出當(dāng)前目錄下的文件。此命令有N多參數(shù),比如ls -al
ps 列出當(dāng)前系統(tǒng)進(jìn)程
kill 殺死某個(gè)進(jìn)程
mkdir 建立目錄
rmdir 刪除目錄
rm 刪除文件
mv 文件改名或目錄改名
man 聯(lián)機(jī)幫助
tail 顯示文件的最末幾行
由于linux下面的命令大多都有很多參數(shù),可以組合使用。所以,每當(dāng)你不會(huì)或者記不清楚改用那個(gè)參數(shù),那個(gè)開關(guān)的時(shí)候,可以用man來(lái)查找,比如,我想查找ls怎么使用,可以鍵入
$ man ls
系統(tǒng)回顯信息如下:
LS(1) FSF LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by
default). Sort entries alphabetically if none of -cftuSUX
nor --sort.
-a, --all
do not hide entries starting with .
-A, --almost-all
do not list implied . and ..
-b, --escape
print octal escapes for nongraphic characters
--block-size=SIZE
use SIZE-byte blocks