如何将本地连接服务器中的文件内容复制到本机的剪贴板

server/2025/2/26 1:14:24/

因为任务需要通过了跳板机连接到服务器,修改代码测试代码用原生的VIM很不方便,因此想怎么把服务的代码内容方便的复制到本机,网上相关的介绍内容不太多,不过看到有内容介绍vim插件之类的,碰巧看到一个命令,来自:https://www.zhihu.com/question/21132618

echo -ne "\033]52;c;$(echo -n hello | base64)\a"

然后发现运行真的可以将hello这个字符串复制到本机的剪贴板,因此就启发到将一个文件内容复制到本机的剪贴板的命令如下:

echo -ne "\033]52;c;$(cat data_infer.py | base64)\a"

在终端运行该命令就可以将data_infer.py文件中的内容复制到本机剪贴板了。继续查阅了一下这个命令的具体含义:

1. echo -ne

  • echo 是一个用于输出字符串的命令。通常用于打印文本到标准输出(终端)。
  • -n 选项表示 输出换行符。默认情况下,echo 命令会在输出的文本后面加一个换行符,-n 选项用来禁止这个行为。
  • -e 选项允许 echo 启用特殊字符(转义序列),例如 \n(换行)、\t(制表符)和 \033(表示 ESC 字符)等。

2. \033]52;c;... \a

这个部分是一个 ANSI 转义序列,用于与终端进行交互,特别是在某些支持剪贴板操作的终端中,将内容复制到剪贴板。

  • \033:是转义字符,表示 ESC,通常用于表示终端控制序列的开始。可以用 \e\x1b 代替。
  • ]52;c;:这是特定的 ANSI 转义序列的格式,用于向剪贴板发送数据。具体来说,52 是控制序列标识符,c 是指定的剪贴板类型,表示将数据发送到剪贴板。
  • $(cat data_infer.py | base64):这一部分是命令替换,会将 cat data_infer.py | base64 命令的输出插入到转义序列中。
  • \a:表示 BEL 字符,通常用于结束转义序列。这告诉终端,“转义序列的结束已经到达”。

3. $(cat data_infer.py | base64)

这一部分是 命令替换,它的作用是运行 cat data_infer.py | base64 命令,并将其输出替换到命令中的这个位置。

  • cat data_infer.py:该命令读取 data_infer.py 文件的内容。
  • |:管道符,它将 cat 命令的输出(即 data_infer.py 文件的内容)传递给后续的命令。
  • base64:该命令将输入的内容进行 Base64 编码。Base64 编码是一种将二进制数据(例如文件内容)转换为可打印字符的编码方式。这在传输数据时非常常见,因为它能够将二进制数据转换成文本形式,避免出现不可打印的字符。

整体流程

  1. 读取文件内容cat data_infer.py 会将 data_infer.py 文件的内容读取出来。
  2. 进行 Base64 编码base64 会将文件内容编码为 Base64 字符串。
  3. 将 Base64 编码的内容插入转义序列:命令替换 $(...) 将 Base64 编码后的内容插入到字符串 \033]52;c;$(cat data_infer.py | base64)\a 中,生成一个完整的转义序列。
  4. 发送到终端echo -ne 会打印该转义序列,并将数据复制到剪贴板。"\033]52;c;... \a" 这一部分告诉终端将 Base64 编码的内容发送到剪贴板。


http://www.ppmy.cn/server/170652.html

相关文章

dubbo转http方式调用

业务背景:在当前项目下,所有前端请求均通过外层网关转发到后端这边的dubbo服务,现计划去掉网关层,由前端直接http调用后端dubbo。 解决方案:在前端调用方式不变的前提下,后端服务新建controller层&#xf…

在windows下安装windows+Ubuntu16.04双系统(下)

这篇文章的内容主要来源于这篇文章,为正式安装windowsUbuntu16.04双系统部分。在正式安装前,若还没有进行前期准备工作(1.分区2.制作启动u盘),见《在windows下安装windowsUbuntu16.04双系统(上)》 二、正式安装Ubuntu …

数据结构:双链表list

list 是 C 标准库中的双向链表容器。 list初始化示例&#xff1a; #include <list>int n 7;std::list<int> lst; // 初始化一个空的双向链表 lststd::list<int> lst(n); // 初始化一个大小为 n 的链表 lst&#xff0c;链表中的值默认都为 0std::list<i…

Adpative Cursor Sharing引发的Oracle故障案例

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;10余年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝10万 擅长主流Oracle、MySQL、PG、高斯…

【Python】打造自己的HTTP server

词汇汇总 CRLF 指的是换行和回车\r\n 教程 ./your_program.sh #启动自己的服务curl -v http://localhost:4221#开启另一个终端 测试HTTP response An HTTP response is made up of three parts, each separated by a CRLF (\r\n): Status line. Zero or more headers, each …

大语言模型(LLM)微调技术笔记

图1&#xff1a;大模型进化树2 大模型微调 在预训练后&#xff0c;大模型可以获得解决各种任务的通用能力。然而&#xff0c;越来越多的研究表明&#xff0c;大语言模型的能力可以根据特定目标进一步调整。 这就是微调技术&#xff0c;目前主要有两种微调大模型的方法1&…

DeepSeek 全面分析报告

引言 DeepSeek 是一款由中国人工智能初创公司 DeepSeek 开发的大型语言模型 (LLM)&#xff0c;于 2025 年 1 月发布&#xff0c;迅速成为全球人工智能领域的一匹黑马。DeepSeek 不仅在性能上可与 OpenAI、Google 等巨头的模型相媲美&#xff0c;而且其训练成本和运行效率都显著…

C++ 设计模式-模板方法模式

文件处理 #include <iostream>// 抽象基类&#xff1a;定义模板方法和抽象步骤 class DataProcessor { public:// 模板方法&#xff08;固定流程&#xff09;void Process() {OpenFile();ProcessData(); // 由子类实现CloseFile();}protected:virtual void ProcessData…