<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>https://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>https://jackxiang.com/post//</link>
<title><![CDATA[[实践OK]使用OSC52实现iTerm2远程pbcopy。]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Php/Js/Shell/Go]]></category>
<pubDate>Mon, 25 May 2020 02:26:19 +0000</pubDate> 
<guid>https://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	从Macbook通过iTerm2的SSH连接到其它linux实现iTerm2远程pbcopy，前几周我也想过，但是不知怎么实现，<br/>前两天鸟哥在其微信朋友圈里贴了一个PHP版本的实现思路，我这实践了一下，用Go语言实现了使用起来顺手，<br/><br/>于是在想，可能很多人都有这个需求，于是写下我的实现过程，拿走不谢，PHP是最好的语言没有之一，如下：<br/><br/><br/>使用OSC52实现iTerm2远程pbcopy实现模仿Mac的pbcopy的拷贝最基础原理如下：<br/><textarea name="code" class="php" rows="15" cols="100">
echo -e &quot;&#92;e]52;c;$(base64 &lt;&lt;&lt; php)&#92;a&quot;
;c;cGhwCg==

php =base64后得到=&gt; cGhw. #base的Web工具来自：https://tool.oschina.net/encrypt?type=3&nbsp;&nbsp;，

简言之，
也就是鸟哥文章里面的，以&#92;e]52;c;开头，然后是base64 encode后的内容，以&#92;a结尾， 如果terminal支持，那么上面例子中的文字“php”就会进入到你的剪贴板了，你就可以使用command + V粘贴了。
</textarea><br/><br/>关于PHP实现的鸟哥版本pbcopy的详细情况见如下链接：<br/><a href="https://mp.weixin.qq.com/s/-aFTI32LWCJG_7aEuCUBgw" target="_blank">https://mp.weixin.qq.com/s/-aFTI32LWCJG_7aEuCUBgw</a><br/><br/><br/>现在，开启swoole顾问的GO实现正文：<br/>上面是摘录来自鸟哥的文章，他是用PHP实现了的，但是PHP不是每台机器都有且没有PHP怎么办呢？<br/>于是用Go歪歪斜斜的写了一个，以力求实现功能就算是很OK了，实践发现果然OK的，有鸟哥加持嘛！<br/><br/>pbcopy.go<br/><textarea name="code" class="php" rows="15" cols="100">
package main

import (
&nbsp;&nbsp;&nbsp;&nbsp;&quot;bufio&quot;
&nbsp;&nbsp;&nbsp;&nbsp;&quot;fmt&quot;
&nbsp;&nbsp;&nbsp;&nbsp;&quot;os&quot;
&nbsp;&nbsp;&nbsp;&nbsp;&quot;encoding/base64&quot;
&nbsp;&nbsp;&nbsp;&nbsp;&quot;strings&quot;
)

var inputReader *bufio.Reader
var input string
var err error

func main() &#123;
&nbsp;&nbsp;&nbsp;&nbsp;inputReader = bufio.NewReader(os.Stdin)
&nbsp;&nbsp;&nbsp;&nbsp;input, err = inputReader.ReadString(&#039;&#92;n&#039;)
&nbsp;&nbsp;&nbsp;&nbsp;input = strings.Replace(input, &quot;&#92;n&quot;, &quot;&quot;, -1)
&nbsp;&nbsp;&nbsp;&nbsp;var inputdata []byte = []byte(input)
&nbsp;&nbsp;&nbsp;&nbsp;if err == nil &#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fmt.Printf(&quot;&#92;033]52;;%s&#92;007&quot;, base64.StdEncoding.EncodeToString(inputdata))
&nbsp;&nbsp;&nbsp;&nbsp;&#125;
&#125;
</textarea><br/><br/>在MacBook上面编译成Linux上可运行的pbcopy,如不这样会报-bash: ./pbcopy: 无法执行二进制文件错：<br/>CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o pbcopy pbcopy.go<br/><br/><br/>从MAC机上编译成功后把上面的二进制GO文件扔到CentOS的服务器上，修改iTerm2连接远程机器设置，<br/><br/><a href="https://jackxiang.com/attachment.php?fid=589" target="_blank"><img src="https://jackxiang.com/attachment.php?fid=589" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>运行，就成功复制到Mac的剪切板上了，注意一定是用iTerm2软件下ssh连接远程服务器，不是在secureCRT:<br/>echo &quot;osc520 codes&quot; &#124; /home/xiangdong/bin/pbcopy<br/><br/><br/>最后，就是把/home/xiangdong/bin/pbcopy 加到那个Linux 的环境PATH变量里了，如下：<br/>chmod +x ~/bin/pbcopy<br/><br/>vim&nbsp;&nbsp;~/.bashrc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#/home/xiangdong/.bashrc 把这个pbcopy路径加到PATH环境变量里面去，下次不用再输入绝对路径了。<br/>export PATH=/home/xiangdong/bin:$PATH<br/><br/><br/>$tree&nbsp;&nbsp;~+/bin/<br/>/home/xiangdong/bin/<br/>├── kubeladder<br/>└── pbcopy<br/><br/><br/>就可直接运行pbcopy了，不用加点了：<br/>echo &quot;osc520 codes&quot; &#124;pbcopy<br/><br/>最后，<br/>鸟哥微信朋友圈问了一喙，这个能否在secureCRT里也支持一下呢，可不就可以批量部署到控制机上，拷贝操作更完美了。<br/><br/>目前在secreCRT里运行输出如下：<br/>$echo &quot;osc540 codes&quot; &#124;pbcopy<br/>;;b3NjNTQwIGNvZGVz<br/><br/><br/>乔大妈给了一个纯shell的白膘（月票）版本：<br/>cat&nbsp;&nbsp;~/.bashrc <br/>alias pbcopy2=&quot;(printf &#039;&#92;033]1337;CopyToClipboard=&#92;7&#039;; cat -; printf &#039;&#92;033]1337;EndCopy&#92;7&#039;)&quot;<br/><br/>echo &quot;osc520 codes&quot; &#124;pbcopy2<br/>osc520 codes<br/>osc52000 codes<br/>
]]>
</description>
</item><item>
<link>https://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] [实践OK]使用OSC52实现iTerm2远程pbcopy。]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>