当前位置: 首页 > news >正文

在命令窗口便捷快速复制输出结果到剪贴板

在macOS上,将命令的输出结果复制到剪贴板

在日常的工作中, 经常使用命令的小伙伴可能会遇到一个场景, 就是把命令执行的结果复制出来另作它用.

每次都需要通过鼠标进行选择然后复制, 虽然 macOS 的命令行的复制快捷键和普通的复制是一样的, 非常友好, 但是还要选择, 还是有些复杂.

当然, 也可以使用 tmux, 然后使用类似 vi 的方式进行选择和复制, 但是操作还是非常多的. 虽然操作多, 但是是可以抛弃鼠标, 也是一个不错的选择.

如果有一种方式只在输入命令的时候假如几个字母就可以做到就更好了.

在 tmux 中对命令窗口的内容进行复制

旧版本的配置:

# use vi mode
set-window-option -g mode-keys vi
list-keys -t vi-copy
bind-key -t vi-copy 'v' begin-selection
bind-key -t vi-copy 'y' copy-selection

新版本的配置:

# use vi mode
set-window-option -g mode-keys vi
list-keys -T copy-mode-vi
bind-key -T copy-mode-vi 'v' send -X begin-selection
bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel
  1. 进入 copy-mode-vi:在 tmux 中,使用默认的快捷键 Ctrl-b [Ctrl-b PageUp 来进入 copy-mode-vi
  2. 使用 vi 风格的按键操作选择文本。通常情况下,您可以使用 v 键来启动选择模式,然后使用移动键(如 hjkl)来选择文本。
  3. 确保您正确选择了文本。选中的文本将会显示为反白。如果选择不正确,您可以继续使用 vi 风格的按键进行调整。
  4. 一旦您选择了所需的文本,按下 y 键,这将触发 bind-key -T copy-mode-vi 'y' send -X copy-selection-and-cancel 命令。

对于第 3 点要特别说明一下, 不一定按下 y 键, 就可以复制. 和系统里面 vi 设置有关. 例如在 vi 中禁止了 cmd + c 复制, 使用 \+y 复制到剪贴板, 那么在这里就要使用 \+y.

总结:

  • 优点:
    • 这种方式的好处是可能复制命令行里面的任何内容, 而且可以结合 vi 操作, 可以得到自己想要的部分.
    • Linux, macOS 都可以用
  • 缺点: 操作略微多了一些

如果有一个方式可以类似管道一样的操作那点方便很多. 其实 macOS 已经再带了这种命令.

macOS 使用pbcopy命令

  1. macOS自带了 pbcopypbpaste 命令,用于与剪贴板进行交互。要将命令的输出复制到剪贴板,可以使用管道 | 将命令的输出传递给 pbcopy。例如:
your-command | pbcopy

这将把命令的输出复制到剪贴板,您可以随后使用粘贴操作(通常是Command + V)将其粘贴到其他地方。

  1. 使用echo和重定向:
echo "Hello, World" | pbcopy

这将 “Hello, World” 复制到剪贴板。

  1. 使用Shell函数:

您可以将以下Shell函数添加到您的.bashrc或.zshrc文件中,以便更方便地将命令的输出复制到剪贴板:

# Function to copy command output to clipboard
copy_to_clipboard() {"$@" | pbcopyecho "Command output copied to clipboard."
}

然后,您可以使用 copy_to_clipboard 函数来执行命令,并将其输出复制到剪贴板。例如:

copy_to_clipboard your-command

这会将 your-command 的输出复制到剪贴板。

这些方法可在macOS上方便地将命令的输出复制到剪贴板,以便稍后粘贴到其他应用程序中。

这个方式可以用, 但是不可以使用 alias 的命令, 例如 zsh 下常用的 l (l='ls -lah')

改进

  1. 修改一个简单的名字, 便于输入
  2. 结果照样输出
  3. 支持使用了 alias 的命令
copy() {if [[ -n "$1" ]]; thenif alias "$1" &> /dev/null; thenc="$(alias "$1")"c=${c#*=}c=${c#*\"}c=${c%*\"}c=${c#*\'}c=${c%*\'}nc="$c "for arg in "${@:2}"; donc="${nc}${arg} "donenc="${nc% }"eval "$nc" | pbcopyelse$@ | pbcopyfipbpasteecho ""echo "Command output copied to clipboard."elseecho "Usage: copyto <command>"fi
}

相关文章:

在命令窗口便捷快速复制输出结果到剪贴板

在macOS上&#xff0c;将命令的输出结果复制到剪贴板 在日常的工作中, 经常使用命令的小伙伴可能会遇到一个场景, 就是把命令执行的结果复制出来另作它用. 每次都需要通过鼠标进行选择然后复制, 虽然 macOS 的命令行的复制快捷键和普通的复制是一样的, 非常友好, 但是还要选择…...

CUDA小白 - NPP(8) 图像处理 Morphological Operations

cuda小白 原始API链接 NPP GPU架构近些年也有不少的变化&#xff0c;具体的可以参考别的博主的介绍&#xff0c;都比较详细。还有一些cuda中的专有名词的含义&#xff0c;可以参考《详解CUDA的Context、Stream、Warp、SM、SP、Kernel、Block、Grid》 常见的NppStatus&#xf…...

java获取音频,文本准转语音时长

jar 以上传到资源中 <dependency><groupId>it.sauronsoftware</groupId><artifactId>jave</artifactId><version>1.0.2</version></dependency> mvn install:install-file -DfileD:\xxx\xxx\jave-1.0.2.jar -DgroupIdit.sauro…...

基于串口通讯的多电机控制技术研究

基于STM32CubeMX生成keil工程 基于proteus 8.7版本进行程序验证 采用了简单的串口通讯协议 基本效果如图 先对电机旋转方向进行指令设置 :221 :320 分别实现对第二个电机正转、第三个电机反转设置 为了方便观测&#xff0c;程序对接受到的串口数据会进行回显。 然后使能电…...

【深入解读Redis系列】(五)Redis中String的认知误区,详解String数据类型

有时候博客内容会有变动&#xff0c;首发博客是最新的&#xff0c;其他博客地址可能会未同步&#xff0c;请认准https://blog.zysicyj.top 首发博客地址 系列文章地址 需求描述 现在假设有这样一个需求&#xff0c;我们要开发一个图像存储系统。要求如下&#xff1a; 该系统能快…...

段指导-示例

RDBMS 19.20 参考文档&#xff1a; Database Administrator’s Guide 19 Managing Space for Schema Objects 19.3.2.4 Running the Segment Advisor Manually 针对表SOE.CUSTOMERS进行段指导 -- 创建段指导 variable id number; begindeclarename varchar2(100);descr …...

LeetCode 面试题 04.02. 最小高度树

文章目录 一、题目二、C# 题解 一、题目 给定一个有序整数数组&#xff0c;元素各不相同且按升序排列&#xff0c;编写一个算法&#xff0c;创建一棵高度最小的二叉搜索树。 点击此处跳转题目。 示例: 给定有序数组: [-10,-3,0,5,9], 一个可能的答案是&#xff1a;[0,-3,9,-10…...

华为云云耀云服务器L实例评测|初始化centos镜像到安装nginx部署前端vue、react项目

文章目录 ⭐前言⭐购买服务器&#x1f496; 选择centos镜像 ⭐在控制台初始化centos镜像&#x1f496;配置登录密码 ⭐在webstorm ssh连接 服务器⭐安装nginx&#x1f496; wget 下载nginx&#x1f496; 解压运行 ⭐添加安全组⭐nginx 配置⭐部署vue&#x1f496; 使用默认的ng…...

python项目制作docker镜像,加装引用模块,部署运行!

一、创建Dockerfile # 基于python:3.10.4版本创建容器 FROM python:3.10.4 # 在容器中创建工作目录 RUN mkdir /app # 将当前Dockerfile目录下的所有文件夹和文件拷贝到容器/app目录下 COPY . /app# 由于python程序用到了requests模块和yaml模块&#xff0c; # python:3.10.4基…...

Redis缓存设计与性能优化

多级缓存架构 缓存设计 缓存穿透 缓存穿透是指查询一个根本不存在的数据&#xff0c; 缓存层和存储层都不会命中&#xff0c; 通常出于容错的考虑&#xff0c; 如果从存储层查不到数据则不写入缓存层。缓存穿透将导致不存在的数据每次请求都要到存储层去查询&#xff0c; 失去…...

免杀对抗-Python-混淆算法+反序列化-打包生成器-Pyinstall

Python-MSF/CS生成shellcode-上线 cs上线 1.生成shellcode-c或者python 2.打开pycharm工具&#xff0c;创建一个py文件&#xff0c;将原生态执行代码复制进去 shellcode执行代码&#xff1a; import ctypesfrom django.contrib.gis import ptr#cs#shellcodebytearray(b"生…...

C#__线程池的简单介绍和使用

/*线程池原理&#xff1a;&#xff08;有备无患的默认备用后台线程&#xff09;特点&#xff1a;线程提前建好在线程池;只能用于运行时间较短的线程。*/class Program{static void Main(string[] args){for (int i 0; i < 10; i){ThreadPool.QueueUserWorkItem(Download); …...

安全员(岗位职责)

一、 安全员 是工程项目安全生产、文明施工的直接管理者和责任人,在业务上向 公司 负责; 二、贯彻安全条例和文明施工标准是安全员 工作 准则,执行相关规章、规程是安全员的责任; 三、办理开工前安全监审和安全开工审批,编制项目工程安全监督计划,上报安全措施和分项工程安全施…...

unity 使用声网(Agora)实现语音通话

第一步、先申请一个声网账号 [Agora官网链接]&#xff08;https://console.shengwang.cn/&#xff09; 第二步在官网创建项目 &#xff0c;选择无证书模式&#xff0c;证书模式需要tokenh和Appld才能通话 第三步 官网下载SDK 然后导入到unity&#xff0c;也可以直接在unity商店…...

vue2.X 中使用 echarts5.4.0实现项目进度甘特图

vue2.X 中使用 echarts5.4.0实现项目进度甘特图 效果图&#xff1a; 左侧都是名称&#xff0c;上面是时间&#xff0c;当中的内容是日志内容 组件&#xff1a; gantt.vue <template><div id"main" style"width: 100%; height: 100%"></…...

《PostgreSQL与NoSQL:合作与竞争的关系》

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…...

【FAQ】视频监控管理平台/视频汇聚平台EasyCVR安全检查相关问题及解决方法3.0

智能视频监控系统/视频云存储/集中存储/视频汇聚平台EasyCVR具备视频融合汇聚能力&#xff0c;作为安防视频监控综合管理平台&#xff0c;它支持多协议接入、多格式视频流分发&#xff0c;视频监控综合管理平台EasyCVR支持海量视频汇聚管理&#xff0c;可应用在多样化的场景上&…...

Java 8 新特性解读及应用实践

Java 8 新特性解读及应用实践 一、简介二、Lambda表达式三、流式编程四、日期/时间API1. 概述2. LocalDate、LocalTime、LocalDateTime等类的使用3. 格式化与解析 五、重复注解和类型注解1. 概念与作用2. 重复注解实例3. 类型注解实例 六、小结回顾 一、简介 Java 8带来了众多…...

C++项目实战——基于多设计模式下的同步异步日志系统-④-日志系统框架设计

文章目录 专栏导读模块划分日志等级模块日志消息模块日志消息格式化模块日志消息落地模块日志器模块日志器管理模块异步线程模块 模块关系图 专栏导读 &#x1f338;作者简介&#xff1a;花想云 &#xff0c;在读本科生一枚&#xff0c;C/C领域新星创作者&#xff0c;新星计划导…...

计算机专业毕业设计项目推荐02-个人医疗系统(Java+原生Js+Mysql)

个人医疗系统&#xff08;Java原生JsMysql&#xff09; **介绍****系统总体开发情况-功能模块****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计流程以…...

Nginx__高级进阶篇之LNMP动态网站环境部署

动态网站和LNMP&#xff08;LinuxNginxMySQLPHP&#xff09;都是用于建立和运行 web 应用程序的技术。 动态网站是通过服务器端脚本语言&#xff08;如 PHP、Python、Ruby等&#xff09;动态生成网页内容的网站。通过这种方式&#xff0c;动态网站可以根据用户的不同请求生成不…...

Zebec 生态 AMA 回顾:Nautilus 以及 $ZBC 的未来

在9月7日&#xff0c;Zebec创始人Sam做客社区&#xff0c;并进行了“Nautilus Chain以及$ZBC的未来”主题的AMA访谈。Sam在本次访谈中对Nautilus Chain生态的价值捕获、Zebec生态布局规划、可能会推出的Nautilus Chain治理通证NAUT进行了解读。本文将对本次AMA进行回顾与总结。…...

NXP iMX8MM 修改 UART4至 Cortex-A53 核心

By Toradex秦海 1). 简介 NXP iMX8MM SoC UART-4 接口在默认的 ATF(ARM Trusted Firmware) 中被 RDC 分配给了 Cortex-M4 核心&#xff0c;用作 M4 核心的 Debug UART。如果这时候在 Cortex-A53 核心 Linux Devcie-tree 配置中使能 UART-4&#xff0c;就会出现 Kernel Oops 错…...

C#控制台程序中使用log4.net来输出日志

Apache log4net 库是一个帮助程序员将日志语句输出到各种输出目标的工具。log4net 是优秀的 Apache log4j™ 框架到 Microsoft .NE​​T 运行时的端口。 我喜欢他可以自定义输出&#xff0c;区分等级等特点。 导入库 我们在工程里添加NuGet的包。输入名称log4net &#xff0…...

用GPT干的18件事,能够真正提高学习生产力,建议收藏

用GPT干的18件事&#xff0c;能够真正提高学习生产力&#xff0c;建议收藏。 语法更正 文本翻译 语言转换 代码解释 修复代码错误 作为百科全书 信息提取 好友聊天 创意生成器 采访问题 论文大纲 故事创作 问题类比 创建 SQL 需求 情感分析 将产品描述转变为广告 关键字提取 闲…...

线性代数的本质(二)——线性变换与矩阵

文章目录 线性变换与矩阵线性变换与二阶方阵常见的线性变换复合变换与矩阵乘法矩阵的定义列空间与基矩阵的秩逆变换与逆矩阵 线性变换与矩阵 线性变换与二阶方阵 本节从二维平面出发学习线性代数。通常选用平面坐标系 O x y Oxy Oxy &#xff0c;基向量为 i , j \mathbf i,…...

JavaScript获取字符串的字节长度

概要 提示&#xff1a;大家都知道&#xff0c;获取字符串的长度可用length来获取。 那么获取这段字符串的字节数呢&#xff1f;英文字母肯定lenght和字节数都一样&#xff1a;都是1而中文lenght1&#xff0c;字节数2因此&#xff0c;需要作的就是把中文字符的字节数计算出来。 …...

[2023.09.13]: Rust Lang,避不开的所有权问题

Rust的所有权问题&#xff0c;在我学Rust的时候就跳过了&#xff0c;因为我知道这玩意儿没有场景就不好理解。没想到场景很快就出现了。 在开发Yew应用组件的时候&#xff0c;涉及到了事件&#xff0c;闭包&#xff0c;自然就引出了所有权问题。 话不多说&#xff0c;下面让我们…...

Redux中间件源码解析与实现

基本介绍 本文中涉及到的关键npm包的版本信息如下&#xff1a; react 的版本为18.2.0 redux的版本为4.1.2 redux-thunk版本为2.4.2 redux-promise版本为0.6.0 redux-logger版本为3.0.6 在Redux源码解析与实现&#xff08;一&#xff09;Redux源码解析与实现&#xff08;二&…...

关于rsync用不了之后

1.尝试找出rsync使用错误原因&#xff1a; 我遇见一个问题&#xff1a;rsync:read errors mapping&#xff1a;communication error on send &#xff08;70&#xff09;&#xff0c;我查了一下这个问题很大可能是网络链接导致的&#xff0c;然后我用nslookup指令查看了/train2…...