在os x系统下使用终端,比如iterm,ssh到Linux机器上,然后在Linux机器上使用gnuplot进行绘图。
一、工程配置
我使用的是os x yosemite 10.10,去ssh RedHat Linux,下面的这些操作都是在这样的前提条件下进行的。
1. mac os x系统安装x11. 当你用os x系统的搜索功能(control+space)试图查找x11的时候,会得到是否安装x11的提示,选择继续,会被带到在线商店会,下载XQuartz-2.7.7.dmg这个文件,下载完毕安装即可。x11现在已经不再os x里面集成了,所以我们还得需要进行安装。安装完后不需要对x11进行任何配置,也不需要对os x系统做任何配置。
2. Linux系统打开x fowarding功能
2.1 sudo vi /etc/ssh/sshd_config 进行下面的设置:
X11Forwarding yes
X11UseLocalhost no
不进行这样的设置,或许在你登录的时候会得到提示 :X11 forwarding request failed on channel 0
2.2然后重启ssh服务
sudo /etc/init.d/sshd reload
得到下面的输出提示
Reloading sshd: [ OK ]
3. 从 os x登录 linux系统,你可以使用系统的终端或者iterm等
ssh -X [email protected]
这时os x系统上安装的x11会被自动调起
4. 在ssh终端登录窗口下你可以在linux系统下工作了,键入命令
gnuplot
你会看到这样的提示:Terminal type set to ‘x11‘
(配置成功前总是得到这样的提示,gnuplot: unable to open display ‘:0.0‘ gnuplot: X11 aborted.)
试试命令plot sin(x),os x会出现一个新的窗口,它上面绘制了正弦曲线。
5.多说一些,为了更加方便,以后你还可以这样在shell下执行gnuplot -persist -e "plot sin(x) ... ..."
6. 或许你的linux系统下没有安装X authority,请安装sudo yum install xauth
二、一些搜索的关键词
1.也许你的机器环境和我使用的机器环境不尽一致,可能你那里多安装了或者少安装了什么,我并没有确定这些。按照上面给出的这些操作,出现问题会是在所难免的。出现问题还是要解决的,这里给出一些搜索词,建议使用Google,这些资料在百度上还是很难搜到的:
tunnel X over ssh from OS X Unix terminal to login far_away_machine (a Linux server)
SSH X11-Forwarding sshd_config文件 “xorg-x11-xauth”软件包 export DISPLAY=:0.0 DISPLAY环境变量
set-up X11 Forwarding over ssh x-server x 窗口系统
2.还有一些好的博客资料,以这些资料为入口,你可以快速的检索出更多的资料,免得你大费周折的去寻找他们:
http://www.cyberciti.biz/faq/how-to-fix-x11-forwarding-request-failed-on-channel-0/
http://www.wenzk.com/archives/888
http://dyhr.com/2009/09/05/how-to-enable-x11-forwarding-with-ssh-on-mac-os-x-leopard/
http://www.linuxidc.com/Linux/2013-06/86743.htm(这个在讲解原理+实践,虽然是windows版的,但是很值得参考)
http://www.360doc.com/content/10/0519/15/1242710_28400112.shtml
http://www.seas.upenn.edu/cets/answers/x11-forwarding.html
https://kb.iu.edu/d/bdnt
http://www.cyberciti.biz/faq/apple-osx-mountain-lion-mavericks-install-xquartz-server/(貌似是apple社区的文档)
三、原理
下面是我自己对原理的一些见解: