Mac使用VSCode遠(yuǎn)程調(diào)試Linux服務(wù)器的可視化輸出

好久不見~
廢話不多說,上教程。


在做 數(shù)據(jù)分析(數(shù)據(jù)挖掘 或 機(jī)器學(xué)習(xí))的時(shí)候,我們經(jīng)常需要繪制一些統(tǒng)計(jì)相關(guān)的圖表,這些統(tǒng)計(jì)、繪圖的程序常常是跑在服務(wù)器上的,可是服務(wù)器出于性能和效率的考慮,通常都是沒有安裝圖形化界面的,于是這些統(tǒng)計(jì)、繪圖的程序在服務(wù)器上壓根兒就跑不起來,或者無(wú)法直接顯示出來,這就很尷尬了!
Linux 本身是沒有圖形化界面的,所謂的圖形化界面系統(tǒng)只不過中 Linux 下的應(yīng)用程序。這一點(diǎn)和 Windows 不一樣。Windows 從 Windows 95 開始,圖形界面就直接在系統(tǒng)內(nèi)核中實(shí)現(xiàn)了,是操作系統(tǒng)不可或缺的一部分。Linux 的圖形化界面,底層都是基于 X 協(xié)議。

假設(shè)我在使用VSCode的remote-ssh,并成功連接上了遠(yuǎn)程服務(wù)器,現(xiàn)在需要在調(diào)試代碼的時(shí)候顯示圖形化界面。例如Python的opencv或者matplotlib的圖形輸出。

Mac 現(xiàn)在不提供X11 需要安裝Xquartz,在https://www.xquartz.org/下載適合Mac的最新版安裝包(其實(shí)不是很新了)。

首先,我們編輯服務(wù)器端的設(shè)置,使其能夠X11轉(zhuǎn)發(fā):
編輯/etc/ssh/sshd_config文件中找到如下兩個(gè)參數(shù),設(shè)置為yes10

X11Forwarding yes
X11DisplayOffset 10

更改后需要重啟服務(wù), Linux運(yùn)行如下命令重新啟動(dòng)ssh服務(wù)。

service ssh restart 

然后,我們編輯Mac上的配置,編輯/private/etc/ssh/ssh_config文件(可使用vi),設(shè)置如下參數(shù)為yes

ForwardX11 yes

最后,使用安裝了remote-ssh插件的VSCode,登錄遠(yuǎn)程服務(wù)器,記得要在命令后加-X選項(xiàng)。


跑一個(gè)帶有圖形輸入的代碼試試看~

不過,matplotlib輸出的模塊,上面的保存按鈕,還是只能保存在了服務(wù)器中,可以使用ssh配合scp傳輸?shù)奖镜亍?p>

當(dāng)然,配好了X11的轉(zhuǎn)發(fā),其實(shí)我們可以做很多事情,例如在遠(yuǎn)程登錄后終端里輸入任意一個(gè)linux的GUI軟件的命令:


參考:

  1. MAC運(yùn)行遠(yuǎn)程Linux服務(wù)器圖形界面應(yīng)用 - 簡(jiǎn)書
  2. 遠(yuǎn)程顯示(操作) 服務(wù)器 GUI 程序(圖形化界面) (基于 X11 Forwarding + Centos + MobaXterm) - 簡(jiǎn)書
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容