jtessboxeditorfx 界面顯示不出來_macOS 使用 XQuartz 支持 X11 實現 Linux 圖形化界面顯示...

9cc38c10808588fe4dd62b77c8f2aafe.gif

更多奇技淫巧歡迎訂閱博客:https://fuckcloudnative.io

前言

在 Windows 中相信大家已經很熟悉使用 Xmanager(Xshell), MobaXterm, SecureCRT 通過 X11 實現 Linux 圖形化界面顯示,我的需求是在 macOS 下使用 iTerm2 作為 Terminal 實現 X11 圖形化界面顯示,網上大部分教程只提到安裝 Xquartz 但并沒有結合實際問題給出完整的解決步驟,我把實踐過程做了詳細的記錄方便大家按照最簡單的步驟實現 Linux 圖形化顯示效果。

1. X11 介紹

有些 Linux 服務器出于性能和效率的考慮,通常都是沒有安裝圖形化界面的,那么圖形化程序在服務器上壓根兒就跑不起來,或者無法直接顯示出來,這就很尷尬了!那么如何解決這個問題呢?可以基于 X11 Forwarding 技術 + MobaXterm/Xshell/SecureCRT/XQuartz 等第三方工具,就可以輕松搞定,是不是很簡單?

X 協議

686631402e803bfb80f805dc9acf75e9.png

Linux 本身是沒有圖形化界面的,所謂的圖形化界面系統只不過中 Linux 下的應用程序。這一點和 Windows 不一樣。Windows 從 Windows 95 開始,圖形界面就直接在系統內核中實現了,是操作系統不可或缺的一部分。Linux 的圖形化界面,底層都是基于 X 協議。

X 協議由 X server 和 X client 組成:

  • X server 管理主機上與顯示相關的硬件設置(如顯卡、硬盤、鼠標等),它負責屏幕畫面的繪制與顯示,以及將輸入設置(如鍵盤、鼠標)的動作告知 X client。
  • X client (即 X 應用程序) 則主要負責事件的處理(即程序的邏輯)。

舉個例子,如果用戶點擊了鼠標左鍵,因為鼠標歸 X server 管理,于是 X server 就捕捉到了鼠標點擊這個動作,然后它將這個動作告訴 X client,因為 X client 負責程序邏輯,于是 X client 就根據程序預先設定的邏輯(例如畫一個圓),告訴 X server 說:“請在鼠標點擊的位置,畫一個圓”。最后,X server 就響應 X client 的請求,在鼠標點擊的位置,繪制并顯示出一個圓。

X11 Forwarding

aac5eecee642fb9b78dcd4430103f2e4.png

這么繞,有啥意義呢?當然有!

許多時候 X server 和 X client 在同一臺主機上,這看起來沒什么。但是, X server 和 X client 完全可以運行在不同的機器上,只要彼此通過 X 協議通信即可。于是,我們就可以做一些 “神奇” 的事情,比如像本文開頭談到的,在本地顯示 (X server),運行在服務器上的 GUI 程序 (X client)。這樣的操作可以通過 SSH X11 Forwarding (轉發) 來實現。

X11 中的 X 指的就是 X 協議,11 指的是采用 X 協議的第 11 個版本。

2. macOS 實現 X11 圖形化界面顯示

#?macOS?安裝?xquartz
brew?cask?install?xquartz

#?啟動?xquartz,實測?`Allow?connections?from?clients`?選項非必須條件
Run?Applications?>?Utilities?>?XQuartz.app

#?設置?DISPLAY?環境變量
export?DISPLAY=:0

#?沒有使用?xquartz?中?terminal?的話不會自動設置?DISPLAY?環境變量,可能會出現以下錯誤
[root@VM-2-11-centos?~]#?firefox
Failed?to?open?connection?to?"session"?message?bus:?Unable?to?autolaunch?a?dbus-daemon?without?a?$DISPLAY?for?X11
Running?without?a11y?support!
Error:?no?DISPLAY?environment?variable?specified

#?ssh?添加?-?Y?flag?登錄遠程主機
ssh?-Y?user@host

#?登錄成功后可能出現以下錯誤,安裝?xauth?即可解決
ssh?-Y?root@192.168.117.148
X11?forwarding?request?failed?on?channel?0

#?遠程主機安裝?xauth,以?centos?為例,使用?xclock?可以測試圖形化效果
yum?install?-y?xauth?xclock
xclock

#?如果需要瀏覽器支持安裝?firefox?或者?chrome?即可
yum?install?firefox
firefox

yum?install?https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
/usr/bin/google-chrome-stable?%U?--no-sandbox
ebed7ac1be039cac2bb4f633d870a5aa.png
f463ddd5ea44c66bcd2ef59642fac740.png

3. FAQ

  1. Why do I need to install Xquartz?

    From https://stackoverflow.com/a/50182736/6769366

    XQuartz is standard. It used to come bundled with the OS, but Apple removed it back around Mavericks.

  2. Why do I have to add environment DISPLAY?

    Please see https://askubuntu.com/a/432257/745885[1]

  3. Why do I have to use -Y instead of -X?

    I got the following error when trying to run a python script which draws some curves using matplotlib:

X?Error?of?failed?request:??BadAccess?(attempt?to?access?private?resource?denied)
Major?opcode?of?failed?request:??18?(X_ChangeProperty)
Serial?number?of?failed?request:??12
Current?serial?number?in?output?stream:??15

This problem is sovled when using -Y instead of -X. Haven’t got enough time to find exact explanation, just post a link for those who are curious:

Can’t run “ssh -X” on MacOS Sierra[2]

  1. How to fix X11 forwarding request failed on channel 0?

    Install X authority file utility

$?sudo?yum?install?xauth

參考資料

[1]

https://askubuntu.com/a/432257/745885: https://askubuntu.com/a/432257/745885

[2]

Can’t run “ssh -X” on MacOS Sierra: https://stackoverflow.com/q/39622173/6769366

原文鏈接:https://wsgzao.github.io/post/x11/

7d90f877c8c16036c70aa4d62f91153e.gif

6382535da206459625d784969d41e682.png

你可能還喜歡

點擊下方圖片即可閱讀

4fe4ac298f6f42816d3dc88b4dd90112.png

在 k8s 中使用 Kubevirt 運行管理 Windows 10 操作系統

31f6c60c80c8b104cfc5edc0cb6eac1f.gif

云原生是一種信仰??

07b985a6d552c90bcb0508d14090ad92.png

碼關注公眾號

后臺回復?k8s?獲取史上最方便快捷的 Kubernetes 高可用部署工具,只需一條命令,連 ssh 都不需要!

3e6e18ec1519120fe5932549b3bdbc0f.gif

409175912b4828874f8de9fbfc3f7204.gif

點擊

??給個「在看」,是對我最大的支持??

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/539213.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/539213.shtml
英文地址,請注明出處:http://en.pswp.cn/news/539213.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

EntityFramework Core 2.0 Explicitly Compiled Query(顯式編譯查詢)

前言 EntityFramework Core 2.0引入了顯式編譯查詢,在查詢數據時預先編譯好LINQ查詢便于在請求數據時能夠立即響應。顯式編譯查詢提供了高可用場景,通過使用顯式編譯的查詢可以提高查詢性能。EF Core已經使用查詢表達式的散列來表示自動編譯和緩存查詢&a…

Oracle Minus關鍵字 不包含 取差集

Oracle Minus關鍵字   SQL中的MINUS關鍵字   SQL中有一個MINUS關鍵字,它運用在兩個SQL語句上,它先找出第一條SQL語句所產生的結果,然后看這些結果有沒有在第二個SQL語句的結果 中。如果有的話,那這一筆記錄就被去除&#xff0…

python掃描器甄別操作系統類型_20189317 《網絡攻防技術》 第三周作業

一.教材內容總結1.網絡踩點:web搜索與挖掘、DNS和IP查詢、網絡拓撲偵察(1)網絡踩點目標確定(2)技術手段:web信息搜索與挖掘、DNS和IP查詢、網絡拓撲偵察(3)web信息搜索與挖掘:基本搜索與挖掘技巧、高級搜索與挖掘技巧、編程實現google搜索、元…

python 網頁重定向_小試牛刀:python爬蟲爬取springer開放電子書.

首先聲明,本文旨在記錄反思,并沒有資源,代碼也不具有借鑒意義(水平實在不行.某天,水群的時候發現群友發了一個文件,里面是疫情時期springer開放的免費電子書名單,同時還附有下載鏈接,總共有400多本,這要是一個一個下載不得累死個人,只下載自己感興趣的書也是一個好主意,但是,我…

直面桌面云帶來的現狀優勢

在桌面云解決方案里,首先,所有的數據以及運算都在服務器端進行,客戶端只是顯示其變化的影像而已,所以在不需要擔心客戶端來非法竊取資料,我們在電影里面看到的商業間諜拿著 U 盤瘋狂的拷貝公司商業機密的情況再也不會出…

ORA-28001: the password has expired解決方法

Oracle提示錯誤消息ORA-28001: the password has expired,是由于Oracle11G的新特性所致, Oracle11G創建用戶時缺省密碼過期限制是180天(即6個月), 如果超過180天用戶密碼未做修改則該用戶無法登錄。 Oracle公司是為了數…

.net 導出excel_Qt編寫的項目作品18-數據導出到Excel及Pdf和打印數據

一、功能特點原創導出數據機制,不依賴任何office組件或者操作系統等第三方庫,尤其是支持嵌入式linux。10萬行數據9個字段只需要2秒鐘完成。只需要四個步驟即可開始急速導出大量數據到Excel。同時提供直接寫入數據接口和多線程寫入數據接口,不…

hive數據庫定義

默認數據庫"default" 可以顯式切換數據庫:hive> use 數據庫名; 創建 hive>CREATE DATABASE [IF NOT EXISTS] mydb [LOCATION] /....... [COMMENT] ....; 實例 hive (default)> create database test_db comment test database; OK Ti…

圖像增強_Keras 常用的圖像增強方式

歡迎關注 “小白玩轉Python”,發現更多 “有趣”在使用神經網絡和深度學習模型時,需要進行數據準備。對于更復雜的物體識別任務,也越來越需要增加數據量。數據增加意味著增加數據量。換句話說,擁有更大的數據集意味著更健壯的模型…

Facebook產品經理的三年敘事與協作思考

產品經理和研發工程師的關系經常被大家調侃,可偏偏就有同時受到研發和設計都喜歡的“別人家的產品經理”,溝通協調、對接需求、項目把控面面俱到還有好人緣。有沒有人天生就是產品經理?產品經理的工作就是寫需求寫需求和寫需求么?…

sis新地址_堅若磐石不掉速,老平臺升級新選擇,入手昱聯Asint 500G SSD

我是文章的原作者,文章首發于:什么值得買愛折騰的老狐貍?zhiyou.smzdm.com首發文章鏈接:堅若磐石不掉速,老平臺升級新選擇,入手昱聯Asint 500G SSD _值客原創_什么值得買?post.smzdm.com雖然說,現在越來越…

hive表定義(3種方式)

創建表 方式一 建表語法 CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ..…

進度條設置_為你的練習設置進度條

在我們的日常練習中,遇到最多的一個問題就是不知道自己練得怎么樣了?還需不需要繼續,或者調整練習方法。這種問題大多出現在自學吉他的學生當中,因為得不到老師的反饋,自己練得對不對,夠不夠,都…

Python之路(第二篇):Python基本數據類型字符串(一)

一、基礎1、編碼 UTF-8:中文占3個字節 GBK:中文占2個字節 Unicode、UTF-8、GBK三者關系 ascii碼是只能表示英文字符,用8個字節表示英文,unicode是統一碼,世界通用碼,規定采用2個字節對世界各地不同文字進行編碼&#x…

python ftp下載文件_文件上傳下載Python

點擊上方藍字關注我!圖片來源 pexels.com簡單實現文件上傳、下載1 Server端 # -*- coding: utf-8 -*-import jsonimport os__author__ sange# Time : 2020/8/17 下午5:26# Author : sange# File : tcpserver_socket.py# Software: PyCharmimport socketserv…

hive列定義

修改 列的名稱、類型、位置、注釋 hive>ALTER TABLE t3 CHANGE COLUMN old_name new_name String [COMMENT ...] [AFTER column2]; 實例 hive (zmgdb)> alter table t1 change column car sarly int after office; FAILED: Execution Error, return code 1 from org.a…

react json轉換_Typescript + React 新手篇

極鏈科技前端工程師茅丹丹前言 TS是什么Type Type (標準JS)。TS的官方網站:Type is a typed superset of Java that compiles to plain Java。Type是一個編譯到純JS的有類型定義的JS超集。 TS優點 TS 最大的優勢是它提供了強大的靜態分析能力,結合 TSL…

android listview 滑動條顯示_第七十六回:Android中UI控件之RecyclerView基礎

各位看官們,大家好,上一回中咱們說的是Android中UI控件之ListView優化的例子,這一回咱們說的例子是UI控件之RecyclerView。閑話休提,言歸正轉。讓我們一起Talk Android吧!看官們,我們在前面章回中介紹了Lis…

數據建模大數據就業挑戰月薪30K

點擊關注 異步圖書,置頂公眾號每天與你分享 IT好書 技術干貨 職場知識本文大概 10624 字讀完共需 30 分鐘Tips 參與文末話題討論,即有機會獲得異步圖書一本。數據建模是對現實世界各類數據進行抽象組織、界定數據庫需管轄的范圍、確定數據的組織形式等直…

Hive的數據模型-管理表

概述 管理表,也稱作內部表,受控表。 所有的 Table 數據(不包括 External Table)都保存在warehouse這個目錄中。 刪除表時,元數據與數據都會被刪除。 在加載數據的過程中,實際數據會被移動到數據倉庫目錄中&#xff1b…