主頁 > 知識庫 > cygwin使用心得

cygwin使用心得

熱門標(biāo)簽:萬利達(dá)綜合醫(yī)院地圖標(biāo)注點 外呼系統(tǒng)會封嗎 股票配資電銷機(jī)器人 地圖標(biāo)注如何弄全套標(biāo) 在電子版地圖標(biāo)注要收費嗎 實體店地圖標(biāo)注怎么標(biāo) 武漢AI電銷機(jī)器人 南京電銷外呼系統(tǒng)哪家好 電銷機(jī)器人 深圳
cygwin使用心得

1.在cygwin里訪問Windows盤
cd /cygdrive/c
cd c:

2.整合cygwin命令到Windows中
假設(shè)cygwin安裝在d:/develop/cygwin,則將d:/develop/cygwin/bin添加到系統(tǒng)變量PATH中(最好加在windows前面,這樣的話,有些相同的命令的話,是先執(zhí)行cygwin的命令,而不是windows命令,比如find)

就可以直接在cmd.exe下面執(zhí)行tar czvf xxx.tgz ./
基本上所有的命令都可以用了,包括ls,more,less,find,grep等。

3.使用TGZ備份
將cygwin的BIN加入到PATH
建一個BAT文件:
@echo off
d:
cd d:\website\8thmanage
tar czvf 8thmanage.tgz 8thmanage

4.Windows使用SHELL腳本
將cygwin的BIN加入到PATH
在$CYGWIN的目錄/var/下面建一腳本t.sh,注意,t.sh里面的路徑,都是相對于$CYGWIN的,里面需要訪問C盤的,請用/cygdrive/c/
在Windows下執(zhí)行:
d:\cygwin\bin\bash d:\cygwin\var\t.sh
(可以定期執(zhí)行)

5.同步Windows系統(tǒng)用戶
mkpasswd -l > /etc/passwd
mkgroup -l > /etc/group
如果有Domain的話,需要加上-d domainname

6.安裝系統(tǒng)服務(wù)
cygrunsrv

7.cygwing下使用rsync
a.安裝rsync組件
b.進(jìn)入cygwin,配置服務(wù)器
vi /etc/rsyncd.conf

...screts file=/etc/tom.ipaddr.pas

配置文件,參考我寫的另外一篇rsync的文章,注意:密碼文件權(quán)限必須是0400
chmod 0400 /etc/tom.ipaddr.pas
c.啟動服務(wù)端
rsync --daemon

d.客戶端同步
在客戶端的cygwin下面,運行rsync同步,具體命令,請參考另外一篇rsync的文章。

8.cygwin下使用SSHD
a.需要安裝了cygrunsrc,openssh
b.運行ssh-host-config -y
一路回車,直到出現(xiàn)CYGWIN=時,輸入tty ntsec,再回車,
(或者,增加一系統(tǒng)環(huán)境變量CUGWIN=nesec tty)
c.已經(jīng)安裝好SSHD服務(wù)到你的Windows服務(wù)中,可以直接在服務(wù)中啟動,關(guān)閉。
(cygrunsrc -S sshd或者net start sshd)

9.中文顯示
vi ~/.bashrc
# 讓ls和dir命令顯示中文和顏色
alias ls='ls --show-control-chars --color' 
alias dir='dir -N --color'
# 設(shè)置為中文環(huán)境,使提示成為中文
export LANG="zh_CN.GBK"
# 輸出為中文編碼
export OUTPUT_CHARSET="GBK"

~/.inputrc為 
set completion-ignore-case on 
set meta-flag on 
set output-meta on 
set convert-meta off 

cygwin.bat腳本為: 
@echo off 
set MAKE_MODE=UNIX 



--------------------------------
安裝

可以直接到http://www.cygwin.com下載一個安裝程序,setup.exe,這個程序只是一個安裝程序,所有的模塊將從網(wǎng)絡(luò)下載安裝?;蛘?,你可以下載一個cygwin.iso的鏡像,直接映象成光盤,再從光盤本地安裝,這樣會快很多,而且不用考慮斷線的問題。


X下的中文支持
locale支持
Cygwin的locale支持一直都有問題,好在X程序還可以使用XLOCALE。
建議還是使用zh_CN.gbk, 不要使用zh_CN.GB2312

在移植程序時需要注意不要讓程序連接libcygwin.a里面的setlocale,而是采用libX11.a里面的_Xsetlocale。方法是:檢查被移植程序的全部源代碼,發(fā)現(xiàn) 

#include 
就修改為 

#define X_LOCALE
#include 
同時注意程序的連接庫要添加-lX11.
如果對于結(jié)果沒有把握,可以找個Dependency Walker查看程序是否連接到了cygwin1.dll里面的setlocale,如果是,就說明有遺漏。

中文字體
PCF點陣字體
GTK1.x 和其他一些老的X程序都是用X字體,

注意必須要有編碼與locale一致的字體,比如用zh_CN.gbk就必須要由GBK編碼的字體,用zh_CN.GB2312就必須要有GB2312編碼的字體

如果使用zh_CN.GB2312,這里有一個RedOffice面帶的點陣字體包

可以采用ttf2bdf從TTF抽取得到bdf格式,然后再用bdf2pcf得到pcf格式的字體文件。
(這里有一個Windows版本的TTF2BDF,可以將Windows TTF字體轉(zhuǎn)換出BDF字體, 注意得到bdf后要手工編輯一下文件頭,將編碼聲明修改正確)


到字體之后,放到某個目錄下,執(zhí)行mkfontdir生成fonts.dir,然后用xset +fp
/path/to/your/fonts將字體路徑加入即可(注意與fontconfig的配置不同,這里路徑是不遞歸的,如果有的字體放在子目錄里面,
子目錄也需要添加進(jìn)去才行)。


TTF字體
很多新的應(yīng)用程序(比如GTK2)都使用fontconfig/libxft2來顯示字體,它對TTF字體的支持比較好(X以前通過freetype, xft模塊也支持TTF字體,但對中日韓字體的支持不是太好,而且也在Cygwin下似乎也沒有這些模塊)

完全可以使用Linux下的arphic字體包. 如果沒有安裝Linux,可以到http://packages.debian.org下載相應(yīng)的包,然后用7zip解壓提取出ttf文件。

得到字體文件之后,放到某個目錄之下,編輯/etc/fonts/local.conf,將字體路徑加入:
/path/to/my/ttf/fonts如果只是自己使用,可以將字體文件放到~/.fonts下,不需要修改任何配置,最多三十秒fontconfig就能夠發(fā)現(xiàn)這些字體了。



中文輸入法
老黃(hzhr)移植了miniChinput到Cygwin,我也移植了fcitx-1.8.5和3.0,均可以從我的網(wǎng)站上找到 http://www.oliwen.com/bama...

一般設(shè)置了LC_CTYPE和XMODIFIERS就可以在程序中激活輸入輸入法了(除非這個程序沒有XIM支持):

LC_CTYPE=zh_CN.gbk
XMODIFIERS="@im=Chinput"
export LC_CTYPE XMODIFIERS

對于fcitx而言,XMODIFIERS設(shè)置為什么都可以(但必須要設(shè)置),所以設(shè)置為"@im=Chinput"的話chinput和fcitx都可以正常使用

VI中的 Backspace 與 Delete 按鍵異常

首先確定 $TERM的設(shè)定為cygwin


echo $TERM


若不是,請設(shè)定為


TERM = cygwin 
export TERM


Backspace 與 Delete這兩個鍵正常狀況下只有一個有用??稍?nbsp;$HOME/.bash_profile 任選一個來使用


stty erase '^H' //ctrl+v, ctrl+h 


stty erase '^?' 




------------------------
Cygwin使用指南
1 引言
cygwin 是一個在windows平臺上運行的unix模擬環(huán)境,是cygnus solutions公司開發(fā)的自由軟件(該公司開發(fā)了很多好東西,著名的還有eCos,不過現(xiàn)已被Redhat收購)。它對于學(xué)習(xí)unix/linux操作環(huán)境,或者從unix到windows的應(yīng)用程序移植,或者進(jìn)行某些特殊的開發(fā)工作,尤其是使用gnu工具集在windows上進(jìn)行嵌入式系統(tǒng)開發(fā),非常有用。隨著嵌入式系統(tǒng)開發(fā)在國內(nèi)日漸流行,越來越多的開發(fā)者對cygwin產(chǎn)生了興趣。本文將對其作一介紹。

2 機(jī)理
cygnus 當(dāng)初首先把gcc,gdb,gas等開發(fā)工具進(jìn)行了改進(jìn),使他們能夠生成并解釋win32的目標(biāo)文件。然后,他們要把這些工具移植到windows平臺上去。一種方案是基于win32 api對這些工具的源代碼進(jìn)行大幅修改,這樣做顯然需要大量工作。因此,他們采取了一種不同的方法——他們寫了一個共享庫(就是cygwin dll),把win32 api中沒有的unix風(fēng)格的調(diào)用(如fork,spawn,signals,select,sockets等)封裝在里面,也就是說,他們基于 win32 api寫了一個unix系統(tǒng)庫的模擬層。這樣,只要把這些工具的源代碼和這個共享庫連接到一起,就可以使用unix主機(jī)上的交叉編譯器來生成可以在 windows平臺上運行的工具集。以這些移植到windows平臺上的開發(fā)工具為基礎(chǔ),cygnus又逐步把其他的工具(幾乎不需要對源代碼進(jìn)行修改,只需要修改他們的配置腳本)軟件移植到windows上來。這樣,在windows平臺上運行bash和開發(fā)工具、用戶工具,感覺好像在unix上工作。
關(guān)于cygwin實現(xiàn)的更詳細(xì)描述,請參考http://cygwin.com/cygwin-ug-net/highlights.html.

3 安裝設(shè)置cygwin
3.1 安裝
要安裝網(wǎng)絡(luò)版的cygwin,可以到http://cygwin.com,點擊"Install Cygwin Now!"。這樣會先下載一個叫做setup.exe的GUI安裝程序,用它能下載一個完整的cygwin。按照每一屏的指示可以方便的進(jìn)行安裝。
3.2 環(huán)境變量
開始運行bash之前,應(yīng)該設(shè)置一些環(huán)境變量。cygwin提供了一個.bat文件,里面已經(jīng)設(shè)置好了最重要的環(huán)境變量。通過它來啟動bash是最安全的辦法。這個.bat文件安裝在cygwin所在的根目錄下。 可以隨意編輯該文件。
CYGWIN變量用來針對cygwin運行時系統(tǒng)進(jìn)行多種全局設(shè)置。開始時,可以不設(shè)置CYGWIN或者在執(zhí)行bash前用類似下面的格式在dos框下把它設(shè)為tty 
C:\&; set CYGWIN=tty notitle glob 

PATH 變量被cygwin應(yīng)用程序作為搜索可知性文件的路徑列表。當(dāng)一個cygwin進(jìn)程啟動時,該變量被從windows格式(e.g. C:\WinNT\system32;C:\WinNT)轉(zhuǎn)換成unix格式(e.g., /WinNT/system32:/WinNT)。如果想在不運行bash的時候也能夠使用cygwin工具集,PATH起碼應(yīng)該包含x:\cygwin \bin,其中x:\cygwin 是你的系統(tǒng)中的cygwin目錄。
HOME變量用來指定主目錄,推薦在執(zhí)行bash前定義該變量。當(dāng) cygwin進(jìn)程啟動時,該變量也被從windows格式轉(zhuǎn)換成unix格式,例如,作者的機(jī)器上HOME的值為C:\(dos命令set HOME就可以看到他的值,set HOME=XXX可以進(jìn)行設(shè)置),在bash中用echo $HOME看,其值為/cygdrive/c.
TERM變量指定終端型態(tài)。如果美對它進(jìn)行設(shè)置,它將自動設(shè)為cygwin。
LD_LIBRARY_PATH被cygwin函數(shù)dlopen()作為搜索.dll文件的路徑列表,該變量也被從windows格式轉(zhuǎn)換成unix格式。多數(shù)Cygwin應(yīng)用程序不使用dlopen,因而不需要該變量。 
3.3 改變cygwin的最大存儲容量
Cygwin 程序缺省可以分配的內(nèi)存不超過384 MB(program+data)。多數(shù)情況下不需要修改這個限制。然而,如果需要更多實際或虛擬內(nèi)存,應(yīng)該修改注冊表的 HKEY_LOCAL_MACHINE或HKEY_CURRENT_USER區(qū)段。田家一個DWORD鍵heap_chunk_in_mb并把它的值設(shè)為需要的內(nèi)存限制,單位是十進(jìn)制MB。也可以用cygwin中的regtool完成該設(shè)置。例子如下:
regtool -i set /HKLM/Software/Cygnus\&;Solutions/Cygwin/heap_chunk_in_mb 1024
regtool -v list /HKLM/Software/Cygnus\&;Solutions/Cygwin

4 使用cygwin
這一段講一下cygwin和傳統(tǒng)unix系統(tǒng)的不同之處。
4.1 映射路徑名
4.1.1 引言
cygwin 同時支持win32和posix風(fēng)格的路徑,路徑分隔符可以是正斜杠也可以是反斜杠。還支持UNC路徑名。(在網(wǎng)絡(luò)中,UNC是一種確定文件位置的方法,使用這種方法用戶可以不關(guān)心存儲設(shè)備的物理位置,方便了用戶使用。在Windows操作系統(tǒng),Novell Netware和其它操作系統(tǒng)中,都已經(jīng)使用了這種規(guī)范以取代本地命名系統(tǒng)。在UNC中,我們不用關(guān)心文件在什么盤(或卷)上,不用關(guān)心這個盤(或卷)所在服務(wù)器在什么地方。我們只要以下面格式就可以訪問文件:
\\服務(wù)器名\共享名\路徑\文件名
共享名有時也被稱為文件所在卷或存儲設(shè)備的邏輯標(biāo)識,但使用它的目的是讓用戶不必關(guān)心這些卷或存儲設(shè)備所在的物理位置。)
符合posix標(biāo)準(zhǔn)的操作系統(tǒng)(如linux)沒有盤符的概念。所有的絕對路徑都以一個斜杠開始,而不是盤符(如c:)。所有的文件系統(tǒng)都是其中的子目錄。例如,兩個硬盤,其中之一為根,另一個可能是在/disk2路徑下。
因為許多unix系統(tǒng)上的程序假定存在單一的posix文件系統(tǒng)結(jié)構(gòu),所以cygwin專門維護(hù)了一個針對win32文件系統(tǒng)的內(nèi)部posix視圖,使這些程序可以在windows下正確運行。在某些必要的情況下,cygwin會使用這種映射來進(jìn)行win32和posix路徑之間的轉(zhuǎn)換。
4.1.2 cygwin mount表
cygwin 中的mount程序用來把win32盤符和網(wǎng)絡(luò)共享路徑映射到cygwin的內(nèi)部posix目錄樹。這是與典型unix mount程序相似的概念。對于那些對unix不熟悉而具有windows背景的的人來說,mount程序和早期的dos命令join非常相似,就是把一個盤符作為其他路徑的子目錄。
路徑映射信息存放在當(dāng)前用戶的cygwin mount表中,這個mount table 又在windows的注冊表中。這樣,當(dāng)該用戶下一次登錄進(jìn)來時,這些信息又從注冊表中取出。mount 表分為兩種,除了每個用戶特定的表,還有系統(tǒng)范圍的mount表,每個cygwin用戶的安裝表都繼承自系統(tǒng)表。系統(tǒng)表只能由擁有合適權(quán)限的用戶(windows nt的管理員)修改。
當(dāng)前用戶的mount表可以在注冊表"HKEY_CURRENT_USER/Software/Red Hat, Inc./Cygwin/mounts v" 下看到。系統(tǒng)表 
存在HKEY_LOCAL_MACHINE下。
posix 根路徑/缺省指向系統(tǒng)分區(qū),但是可以使用mount命令重新指向到windows文件系統(tǒng)中的任何路徑。cygwin從win32路徑生成posix路徑時,總是使用mount表中最長的前綴。例如如果c:被同時安裝在/c和/,cygwin將把C:/foo/bar轉(zhuǎn)換成/c/foo/bar.
如果不加任何參數(shù)地調(diào)用mount命令,會把Cygwin當(dāng)前安裝點集合全部列出。在下面的例子中,c盤是POSIX根,而d盤被映射到/d。本例中,根是一個系統(tǒng)范圍的安裝點,它對所有用戶都是可見的,而/d僅對當(dāng)前用戶可見。
c:\&; mount
f:\cygwin\bin on /usr/bin type system (binmode)
f:\cygwin\lib on /usr/lib type system (binmode)
f:\cygwin on / type system (binmode)
e:\src on /usr/src type system (binmode)
c: on /cygdrive/c type user (binmode,noumount)
e: on /cygdrive/e type user (binmode,noumount)
還可以使用mount命令增加新的安裝點,用umount刪除安裝點。
當(dāng)Cygwin 不能根據(jù)已有的安裝點把某個win32路徑轉(zhuǎn)化為posix路徑時,cygwin會自動把它轉(zhuǎn)化到一個處于缺省posix路徑/cygdrive下的的一個安裝點. 例如,如果Cygwin 訪問Z:\foo,而Z盤當(dāng)前不在安裝表內(nèi),那么Z:\將被自動轉(zhuǎn)化成/cygdrive/Z.
可以給每個安裝點賦予特殊的屬性。自動安裝的分區(qū)顯示為“auto”安裝。安裝點還可以選擇是"textmode"還是 "binmode",這個屬性決定了文本文件和二進(jìn)制文件是否按同樣的方式處理。
4.1.3 其他路徑相關(guān)信息
cygpath工具提供了在shell腳本中進(jìn)行win32-posix路徑格式轉(zhuǎn)換的能力。
HOME, PATH,和LD_LIBRARY_PATH環(huán)境變量會在cygwin進(jìn)程啟動時自動被從Win32格式轉(zhuǎn)換成了POSIX格式(例如,如果存在從該win32路徑到posix路徑的安裝,會把c:\cygwin\bin轉(zhuǎn)為/bin)。
您可能感興趣的文章:
  • 在Windows系統(tǒng)上安裝Cygwin搭建Swoole測試環(huán)境的圖文教程
  • Cygwin下安裝vim后,vim中退格鍵無法正常使用的解決方法
  • Cygwin中安裝PHP方法步驟
  • Windows下使用Cygwin編譯MySQL客戶端
  • cygwin 在windows下使用linux命令的方法
  • Java將文件夾保留目錄打包為 ZIP 壓縮包并下載的教程詳解

標(biāo)簽:濟(jì)寧 臺州 濟(jì)源 泰安 汕頭 廣東 武威 安徽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《cygwin使用心得》,本文關(guān)鍵詞  cygwin,使用,心得,cygwin,使用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《cygwin使用心得》相關(guān)的同類信息!
  • 本頁收集關(guān)于cygwin使用心得的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章