gridcontrol选中多行数据进行复制_奇技淫巧:在 ssh 里面把服务器的文本复制到本地电脑...

2023-10-27

点击上方“ Python编程时光 ”,选择“ 加为星标 ” 第一时间关注Python技术干货! c4fc2288fecfed27ae10cc77e4caee76.png 2020年,力度最大的购书优惠,千万别错过了

使用 macOS 的同学,应该熟悉一个命令pbcopy,它可以在命令行中把一段内容写入到剪贴板,例如:

echo "kingname" | pbcopy

就能把字符串kingname复制到剪贴板里面。我们也可以使用这个方法把一个文件中的内容写入到剪贴板:

cat xxx.txt | pbcopy

这样我们就不需要把文件打开再手动复制的。

有时候,我要把服务器上面的日志复制下来。原来都是进入服务器以后,用 vim 打开日志文件,用鼠标选中再复制。且不说服务器是 Linux,没有pbcopy这个命令,即使有这个命令,服务器上又怎么能访问本地的剪贴板呢?

在网上一搜,竟然还真有办法。使用OSC52实现iTerm2远程pbcopy - 风雪之隅[1]这篇文章借助 iterms 的一个功能和几个特殊的字符,通过 php 实现了这个功能。我们来把它改写成 Python 版本。

首先打开 iterms 的设置,把方框框住的这一项勾上:

1a49706530121059264122e888c35de1.png

然后,在 iterms 里面,通过 ssh 连上服务器。

然后,我们来写一段 Python 代码:

import base64

print('\033]52;c;' + base64.b64encode('青南'.encode()).decode() + '\007')

然后在服务器上运行这段代码,运行效果如下图所示:

0a84d80378d62cf9dfa761381f5aefec.png

什么都没有打印出来?但不要担心,现在,你随便找一个可以打字的输入框,按下键盘上面的Command +V键。你会发现,青南两个字竟然被粘贴出来了!

有了这个机制,我们就来人工写一个pbcopy.py,接收管道的输入:

c7e84405993ac6362de794ed0ca3d4b8.png
在公众号后台回复 pbcopy 获得代码文本

其中,#! /usr/bin/python3是远程服务器上面 Python 的地址。你可以通过命令which python3找到这个地址。

保存完成以后,给他添加可执行权限:chmod +x pbcopy.py

现在,我们试一试把远程的多行文本复制到本地的剪贴板中:

4ea08dba3414b3693e515e1949efcaca.png

我这里复制的就是这个代码自身。大家也可以使用其他文件来测试。复制完成以后,我们随便找个地方粘贴,发现复制成功!

现在,我们使用软连接,把这个可执行文件变得更像命令一些:

sudo ln -s /home/ubuntu/pbcopy.py /usr/bin/pbcopy

运行效果如下图所示:

6454d4f3da7524caf079fbf7b71c1d90.png

完美满足要求。

需要注意的是,这个程序会把管道输入的所有内容全部接收完成以后才会复制,所以,如果你输入的文本内容太大,可能会撑爆内存。

本文涉及到的 pbcopy.py,可以通过在公众号后台回复【pbcopy】(不含方括号)获得。

【号外号外:公众号粉丝群正在进行中秋-国庆双节抽奖活动。还没有找到组织的同学速来。】

参考资料

[1]

使用OSC52实现iTerm2远程pbcopy - 风雪之隅: https://www.laruence.com/2020/05/21/5880.html

文末福利

明哥整理了  21 张 Python 代码速查表 ,每一张都是国外的大师总结的,非常实用 ~

c970081700e323fea200bb10a7124760.png

还有 2 张高清的 PyCharm 快捷键一览图,一张 Windows ,一张 Mac,放在桌面上,需要的时候打开一查,非常方便。。

23ded07f3d930e8130e0fbe9cd8cd674.png

怎么获取呢?

8f7b0ab4de77d0d169983c25a27c6b50.png

添加明哥微信,备注 "速查表" 和 "快捷键" 获取

1f7e3531a9b83a4209d44b52c1dca597.png对了,看完记得来个四连,这个对我真的很重要

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gridcontrol选中多行数据进行复制_奇技淫巧:在 ssh 里面把服务器的文本复制到本地电脑... 的相关文章

  • 9.多重循环结构和程序调试

    2022 9 3 记录学习java的第九天 今天主要学习了多种循环的嵌套使用和程序调试 1 多重循环 使用方法 1 相同循环可以互相嵌套使用 2 各循环之间可以互相嵌套使用 3 外循环变量改变一次 内循环变量要从头到尾变化一遍 即 内循环是
  • 单链表算法实现, 查找, 删除, 销毁

    从链表的指定位置读取参数 从链表中查找第i个元素 用e来保存查找元素的数据 指定位置读取参数 list 头节点 i 要读取的位置 e 保存读取的元素 bool Link GetElem LinkList list int i int e i
  • 数组的indexOf 方法

    1 数组的indexOf 方法 String 类型的使用 let str orange str indexOf o 0 字符串中出现字母 o 的位置 str indexOf n 3 字符串中出现字母 n 的位置 str indexOf c
  • vue封装公共组件库并发布到npm库详细教程

    vue组件封装的原理 利用vue框架提供的api Vue use plugin 我们需要把封装好组件的项目打包成vue库 并提供install方法 然后发布到npm中 Vue use plugin 的时候会自动执行插件中的install方法
  • STM32CubeMX驱动ADS1118模块

    文章目录 1 前言 2 ADS1118模块简介 3 移植源码到工程 4 驱动源码中函数介绍 4 1 us延时函数 4 2 写入和读取ADS1118配置寄存器 4 3 初始化ADS1118 4 4 测量电压函数 5 实验 5 1 单通道采样
  • 2022年软件测试面试题大全【含答案】

    一 面试基础题 简述测试流程 1 阅读相关技术文档 如产品PRD UI设计 产品流程图等 2 参加需求评审会议 3 根据最终确定的需求文档编写测试计划 4 编写测试用例 等价类划分法 边界值分析法等 5 用例评审 主要参与人员 开发 测试
  • mysql drivermanager_jdbc详解:2、DriverManager管理多个数据库驱动

    先上代码 static String driverName com mysql jdbc Driver static String url jdbc mysql 127 0 0 1 3306 mysql static String user
  • react+ts+vite

    项目结构初始 1 使用vite构建项目 2 script常见用法 host 显示地址 port 端口号 设置端口号 open 编译后自动打开 3 配置 路径 项目路径别名的配置 ts对 指向src的目录提示是不支持的 所以需要手动配置 符号
  • Anaconda 打开时卡在Initializing(打不开)

    找到的一种说法是anaconda有个广告载入功能 这个功能需要联网 但国内网络环境有时候连不上目标网络 所以打开anaconda navigator的时候会因为网络问题一直卡在Initializing 解决的方法 方法一 把网络断开 没有了
  • 进入虚拟机 networkManager is not running 问题

    运行 systemctl restart NetworkManager命令 重启网络管理
  • java--基础--23--接口组成更新

    java 基础 23 接口组成更新 代码 https gitee com DanShenGuiZu learnDemo tree mysql mybaties DB jdk8 learn 1 接口组成更新 常量 public static
  • 每日学术速递5.3

    CV 计算机视觉 ML 机器学习 RL 强化学习 NLP 自然语言处理 Subjects cs CV 1 Learning Locally Editable Virtual Humans 标题 学习本地可编辑虚拟人 作者 Hsuan I H
  • 详解Seaborn,看这一篇就够了

    转载 Seaborn常见绘图总结 Seaborn是一个比Matplotlib集成度更高的绘图库 在科研和数据分析中我们常常看到一些画的非常高大上的图 这往往就是Seaborn绘制的图形 因此我们就使用短短的半天时间来学习一下Seaborn的
  • lsun数据集下载、转换、使用

    最近复现SAGAN用到了lsun数据集 1 下载地址 http dl yf io lsun scenes 我下载了church outdoor train lmdb zip 中间还安装了lmdb库 2 转换 一般下载的data py 转换代
  • Git 常用命令 --- git push命令

    git push的一般形式为 git push lt 远程主机名 gt lt 本地分支名 gt lt 远程分支名 gt 例如 git push origin master refs for master 即是将本地的master分支推送到远
  • IMP-00003: 遇到 ORACLE 错误 959 ORA-00959: 表空间 '' 不存在

    描述 在使用imp命令将dmp文件导入oracle中时 遇到如下错误 IMP 00003 遇到 ORACLE 错误 959 ORA 00959 表空间 TBS CDUSER 不存在 IMP命令如下 IMP cduser cduser123
  • Java Stream流详解

    本文目录 学习目标 中间操作 Filter 过滤 Map 转换 Sorted 排序 Distinct 去重 Limit 限制 Skip 跳过 Peek 展示 终止操作 forEach 循环 Collect 收集 Count 计数 Reduc
  • 软件测试基础理论知识—用例篇

    什么是测试用例 测试用例 Test Case 是为了实施测试而向被测试的系统提供的一组集合 这组集合包含 测试环境 操作步骤 测试数据 预期结果等要素 需求的概念 满足用户期望或正式规定文档 合同 标准 规范 所具有的条件和权能 包含用户需
  • 【整理】QT .pro文件中的变量说明

    注释 以 开始的行 直到结束 模板变量 告诉qmake生成哪种makefile TEMPLATE app 其中 app 表示该工程建立一个应用程序的makefile 这是默认值 所以如果模板没有被指定 这个将被使用 lib 表示该工程建立一

随机推荐

  • 第一个servlet程序、配置web.xml以及使用html表单给服务器传输数据

    一 Serlvet简介 serlvet是一个服务器小程序 它可以对用户的请求 request 作出响应 response 举个例子 当我们在html页面填写一个表单时 我们点击提交 这就能发送一个请求 服务器可以接收到我们的请求然后执行相应
  • 【Ceph】1 pools have many more objects per pg than average

    公司 Ceph 集群从 v12 升级到 v14 后 今天某个 CephFS 的集群收到一个 HEALTH WARN 的告警 具体的 Warning 的信息为 1 pools have many more objects per pg tha
  • vue3组件内判断是否进行路由跳转

    import onBeforeRouteLeave from vue router import ElMessageBox from element plus onBeforeRouteLeave to from next gt if fo
  • 【毕业设计】机器视觉停车位识别检测系统 - python 深度学习

    文章目录 1 简介 2 检测效果 3 实现方式 3 1 整体思路 3 2 检测空车位 3 3 车辆识别 4 最后 1 简介 Hi 大家好 这里是丹成学长的毕设系列文章 对毕设有任何疑问都可以问学长哦 这两年开始 各个学校对毕设的要求越来越高
  • PHP7 连oracle 11g 可能出现的pdo_oci_handle_factory,Check the character问题和解决方法

    错误代码 SQLSTATE HY000 pdo oci handle factory Error while trying to retrieve text for error ORA 12541 错误代码 SQLSTATE HY000 O
  • 分布式日志系统解决方案

    一 什么是PlumeLog PlumeLog 是一款无入侵的分布式日志系统 基于log4j log4j2 logback搜集日志 设置链路ID 方便查询关联日志 基于elasticsearch作为查询引擎 实现日志报错预警 PlumeLog
  • C++ Primer 16 类模板部分特例化

    模板与泛型编程 面向对象编程和泛型编程都能矗立在编写程序时不知道类型的情况 不同之处在于 OPP 能处理类型在程序运行之前都未知的情况 而泛型编程中 在编译时就能知获类型了 当我们编写一个泛型程序时 是独立于任何特定类型来编写代码的 模板是
  • 基于mbedTLS算法库实现国密SM2签名和验签算法

    网上有大量的基于OpenSSL实现的国密算法库 比如著名的GmSSL 可以直接拿来用 我自己常用的是mbedTLS的算法库 比较小巧简单 在mbedTLS的大数算法的基础上实现了国密SM2的签名和验签算法 在基于mbedTLS实现SM2签名
  • 配置pacemaker时用到的一些CRM CLI命令

    官方网站 http www clusterlabs org doc crm cli html CRM CLI是分层设计 常见层级如下 node 主要用于节点的各种操作 resource 主要用于资源的各种操作 ra 查看RA的各种属性 co
  • python 均方误差_python如何实现均方误差和均方根误差?

    一 python实现均方误差 均方误差是各数据偏离真实值的距离平方和的平均数 也即误差平方和的平均数 用法 一般被用在机器学习的预测值与真实值之间的距离 均方误差对应的是最小二乘法 coding utf 8 import math def
  • python程序员 培训

    非常感谢大家这么长时间对我们的喜爱和关注 我们都知道 python是当前的大趋势 无论是就业前景 发展空间 还是薪资待遇都是当下最为火爆的行业 所以我们特意联系了央视公开课曾推荐的万门大学 向大家赠送一份人工智能的课程 这个课程我们已经了解
  • QSlider风格设置

    QT的滑动条在开发的过程中经常使用 默认的QSlider风格比较简陋 一般达不到UI设计的效果 本篇记录一个QSlider使用过程中风格的设置 1 qss常用的字段属性 1 1背景属性 属性 值 意思 background Backgrou
  • 用C语言实现经典游戏——贪吃蛇

    目录 1 游戏实现思想 1 定义蛇对象 2 食物对象 3 分数 4 初始化蛇 5 初始化食物 6 修改控制台光标位置 7 画出蛇和食物 8 蛇的移动控制 9 开始游戏 10 蛇移动 11 画墙 12 去除蛇尾 13 去除光标 14 显示分数
  • 06.数据库日常应用实例

    生活事例 01 用户注册 A select操作 搜索数据库所有用户名 B 与新注册的用户名进行比对 C 如果相同 新用户需从新改名 D 直到与数据库中的用户名不同 方能注册 02 转账 A select操作 搜索数据库所有账号 B 收款方账
  • Please enable Javascript to view this page

    今天进防火墙时出错 以下设置解决 internet选项 gt 安全 gt 受信任站点 gt 添加站点 转载于 https www cnblogs com cw828 p 10063200 html
  • 测试原则-阶段-测试用例设计-调试

    测试原则 阶段 测试用例设计 调试 测试原则和方法 测试阶段 测试策略 测试用例的设计 调试 软件度量 测试原则和方法 系统测试 成功的测试 测试原则 软件测试的方法 静态测试 动态测试 测试阶段 单元测试 集成测试 确认测试 系统测试 配
  • 【ETH链游】阿蟹Axie Infinity模拟器运行及多开

    Axie Infinity 众所周知 阿蟹 Axie Infinity 是去年最火的一款GameFi游戏 由越南团队Sky Mavis开发 短短几个月内就红遍东南亚 最大市场在菲律宾 其次是越南 马来西亚 印尼与美国等 去年6月 该游戏单日
  • 个人学习经验: C++ ifndef 作用和用法

    ifndef是if not define的简写 一般的使用场景为 1 头文件中使用 防止头文件被多重调用 2 作为测试使用 省去注释代码的麻烦 3 作为不同角色或者场景的判断使用 头件的中的 ifndef 这是一个很关键的东西 比如你有两个
  • react函数式组件传值之子传父

    在用react进行函数式编程时 父组件可以通过props向子组件传值 那么子组件怎么向父组件传值呢 首先 父组件需要向子组件传递一个函数 然后 子组件通过props获取函数并附上参数 最后 父组件通过函数拿到子组件传递的值 一 具体案例 父
  • gridcontrol选中多行数据进行复制_奇技淫巧:在 ssh 里面把服务器的文本复制到本地电脑...

    点击上方 Python编程时光 选择 加为星标 第一时间关注Python技术干货 2020年 力度最大的购书优惠 千万别错过了 使用 macOS 的同学 应该熟悉一个命令pbcopy 它可以在命令行中把一段内容写入到剪贴板 例如 echo