我們經常在虛擬機器平台下的linux shell內執行命令如編譯或運行某些程式時出錯,這時想把錯誤的代碼或運行情況複製到windows平台下粘貼到網上論壇內求助。但直接在虛擬機器下複製shell內的字元,在windows環境下是粘貼不了的,如何使在windows環境下能夠複製粘貼虛擬機器內linux shell中的字元呢,我們可以通過三種辦法解決這個問題。
一:通過ssh
這種方法需要虛擬機器內的linux安裝ssh服務,預設是安裝的。為確保sshd服務是開啟的,redhat平台可通過shell下執行命令:redhat-config-services,在彈出的服務配置視窗中查看sshd服務是否已開啟,若沒有開啟,勾上sshd選項,重起運行。若linux沒有安裝ssh服務,下載ssh包重新安裝一下。
ssh服務運行後,在windows平台下下載ssh用戶端程式安裝,運行ssh用戶端,點擊quick connect,輸入虛擬機器linux的IP地址、使用者名稱,連接埠預設22,提示輸入密碼後,即可登入linux ssh服務端。登入後可以在ssh用戶端的shell環境下執行linux命令,就如同在linux本地執行一樣,非常方便。ssh的shell環境下是可以複製當前shell內的字元的,並且可以在windows內粘貼。這樣就可以將執行命令後的一些錯誤資訊粘貼儲存到文字檔或粘貼到論壇上求助。還有一點需注意的是,虛擬機器下的linux和本地windows的ip地址應在同一網段,否則ssh用戶端程式是串連不上linux的ssh服務端的。linux下設定網卡IP的命令是ifconfig,如:ifconfig
eth0 192.168.0.2 ,eth0為虛擬機器預設網卡名。
二:通過VMware Tools
虛擬機器安裝過VMware Tools後,如果正在運行 VMware Tools,你可以在虛擬機器和主機的應用程式之間或者在兩台虛擬機器之間複製和粘貼文本。
要進行複製和粘貼:
1. 確保在你的虛擬機器中已經安裝並且啟動 VMware Tools。
2. 使用來源視窗中的作業系統支援的方式在來源視窗中選擇要複製的項目。
3. 更改游標和鍵盤控制到目標視窗,然後使用目標視窗中的作業系統支援的方式粘貼項目。
你只能複製和粘貼文本,而不是圖片或者其他項目。
(如何使用VMware Tools可參考相關資料)
三:通過linux的命令重新導向
將執行linux命令返回的資訊重新導向到一個文字檔,比如./gdbserver 192.168.0.1:1234hello>&info.txt ,"&"指輸出所有資訊。然後通過某種方式將包含輸出資訊的文字檔info.txt拷回到windows下就可以查看了。拷貝的方式很多,ssd、ftp、虛擬機器內建的共用檔案功能等等。這裡舉一個簡單的例子,ssh本身就內建了一個檔案傳輸功能,windows下ssh用戶端串連上虛擬機器服務端後,點擊工具列上的new file transfer window ,即可開啟一個類似cuteftp的檔案傳輸介面,在這裡可以進行簡單的檔案上傳和下載,比較方便。
這裡提出了三種解決辦法。若你經常使用ssh的話,無疑第一種辦法是最簡單方便的,而且ssh本身功能十分強大,同時提供了shell終端、檔案傳輸等功能,操作比較方便,而且安全性高。若你不會使用ssh,第二種辦法也較為方便,只是要注意每次在主機和虛擬機器之間相互複製文本前都必須先運行vmware-toolbox ,方法是虛擬機器安裝vmware tools後直接在shell內執行:vmware-toolbox命令。第三種辦法較適合於處理大量資料。如要進行複製和粘貼的文本較多時可以使用檔案來傳輸。
注意:採用第二種方法時需要在終端輸入vmware-toolbox.命令,如果出現Gtk-WARNING **: Failed to load module "libgnomebreakpad.so": libgnomebreakpad.so: cannot open shared object file: No such file or directory錯誤,則是庫檔案的註冊出了問題,請參考下一篇文章迷失的 "libgnomebreakpad.so"
==Failed to load module "libgnomebreakpad.so"