2011-03-03 wcdj
問題背景:
同學Deng的ns2出現了問題,想使用同學Yang的已安裝好的ns2。是以,Deng将已安裝後的ns-allinone-2.27目錄壓縮後全部拷貝到自己的硬碟上。然後Deng再在自己的機子上安裝了Cygwin。安裝好後,為了不改動ns-allinone-2.27中已有的配置,Deng在/home目錄下建立與Yang相同的使用者檔案夾,再把ns-allinone-2.27解壓到此檔案夾下。此時的問題是,由于Deng的使用者名與Yang的使用者名不同,是以在第一次運作Cgywin後,會在/home目錄下自動建立一個Deng的檔案夾,而Deng拷貝過來的ns-allinone-2.27應該位于Yang的檔案夾下,是以需要修改Cygwin的預設啟動路徑。可行的方法如下:
預設情況下,打開Cygwin後,pwd顯示目前路徑為 /home/目前使用者名。例如:
WCDJ@WCDJ_PC ~
$ pwd
/home/WCDJ
方法1:
用 env 指令檢視目前系統中有哪些環境變量,可以找到:
HOME=/home/WCDJ
是以,想改變Cygwin預設啟動路徑就是去修改HOME的環境變量為你所想要的值就可以了。
方法如下:
右鍵 桌面上我的電腦->屬性->進階->環境變量,在上面那個個人使用者的環境變量框中,或者下面的系統變量框中,建立,變量名設定為HOME,變量值為你想要的具體路徑。
如果在自己使用者變量處建,那麼這個變量值的有效範圍就是目前自己使用者。如果在系統變量處建,那麼這個變量值的有效範圍就是目前整個系統,也就是無論哪個使用者登入系統,這個變量都有效。
這樣,每次啟動Cygwin後,就會自動轉到HOME所在路徑下。
方法2:
在C:/cygwin/cygwin.bat裡面加入了這樣一行
@echo off
C:
chdir C:/cygwin/bin
rem 新加的一行,手工指定home的路徑(rem用于注釋)
set HOME=C:/cygwin/home/abc
bash --login -i
這樣Cygwin就會去HOME的這個路徑下面找相關配置檔案,如果C:/cygwin/home/abc下面有 .bashrc, .inputrc, .bash_profile 這樣幾個檔案,Cygwin就能找到相關的配置。而不用管Cygwin是否建立了home,隻要最後Cygwin能找到配置檔案就OK了。
方法 3:
修改目前使用者名,這個不太友善,沒有采取。
關于那三個配置檔案哪裡找去?打開C:/cygwin/etc/skel 目錄,你就會發現它們靜靜的躺在那裡。這三個檔案就是Cygwin一開始為使用者準備的。把這三個檔案拷貝到你的home目錄下就可以了,然後用文本編輯器打開.bashrc 檔案,把你需要設定的環境變量和參數寫在這裡,儲存後重新啟動Cygwin就可以看到已經生效了(注意 :如果不想重新啟動Cygwin使.bashrc檔案生效,輸入source .bashrc 或 . .bashrc 指令即可)。
測試:
[1] ns 成功
[2] ./leach_test 成功
參考:
[1] 修改Cygwin的預設啟動路徑 [Change to default running path of Cygwin]
http://hi.baidu.com/serial_story/blog/item/366978106724b9f9c2ce797a.html
[2] Cygwin home路徑問題
http://www.baisi.net/thread-39168-1-1.html