【问题标题】:vi command: copy all the lines to clipboard from remote file and paste them to an host editorvi 命令:将所有行从远程文件复制到剪贴板并将它们粘贴到主机编辑器
【发布时间】:2017-12-05 05:28:44
【问题描述】:

我想知道使用哪个命令将文件文本的所有行从使用 vi 命令通过 ssh 访问的远程文件复制到我的主机 pc。

为了更清楚:

  1. 通过 ssh 访问远程主机
  2. 使用 vi 检查远程文件
  3. 将文件的所有行复制到我的主机剪贴板
  4. 将所有行粘贴到我主机上的文本编辑器中

如何做到这一点? 我试过这个命令:

gg"*yG

它说这些行被复制到注册表,但如果我尝试将这些行粘贴到我的文本编辑器(第 4 点),剪贴板不包含这些行。

任何建议将不胜感激。

注意:我的主机是 Mac OS X。

【问题讨论】:

  • 为什么不在自己的机器上用scp复制整个文件,然后在本地机器上做vi呢?
  • 是的,这可能是一个解决方案,但是当我通过 ssh 在远程主机中时如何做到这一点?通过 scp 命令?
  • 如果您在远程主机上:scp file user@local.ip:/path/to/folder 或者您可以从远程注销并从运行scp user@remote:/path/to/file /path/to/local/folder的本地计算机上退出@
  • "local.ip" 是我在主机上使用 ifconfig 获得的,对吧?
  • 原则上是的,但实际上它比这要复杂一些,尤其是如果您在家中使用自己的网络,因为您需要公共 ip,我不确定您是否需要一些端口转发。第二种解决方案更简单。

标签: macos ssh vi


【解决方案1】:

在 MacOS 上,您是否有某些原因无法从屏幕上选择所需的所有文本并 cmd-C(复制)到粘贴板? (和剪贴板,在其他操作系统中)。

它是您需要的整个文件吗?由于您是通过 ssh 访问它,因此您也可以从命令行粘贴到粘贴板:

$ ssh remote-svr cat ./subdir/location/textfile | pbcopy

现在 cmd-V 在本地粘贴到您想要的位置。

换个角度看,

  1. ssh remove-svr 访问远程服务器(虽然不是交互方式)
  2. 运行cat ./subdir/location/textfile,将文件内容输出到标准输出
  3. ssh 捕获该输出并将其发送到本地标准输出
  4. | pbcopy 将标准输出从 ssh 传送到 pbcopy 过滤器,该过滤器将其放在本地粘贴板上。

【讨论】:

  • 一个问题:当你通过ssh登录远程主机时,你发布的命令也可以工作?
  • pbcopy 是一个本地的 MacOS 命令,所以如果它在 ssh 上工作,我会感到惊讶。我的解决方案远程运行cat,但ssh 将输出溢出到标准输出,pbcopy 可以捕获。
  • 所以你的命令必须在通过 ssh 登录之前启动,对吧?
  • 如图所示,您正在使用 ssh 访问文件以将其内容复制到本地标准输出。这不是使用交互式 ssh 会话。
  • 好的,谢谢。问题是,如果您还不知道要检查的文件的远程路径,则无法执行。所以这就是为什么我之前必须访问远程主机,找到文件,然后在找到时将其复制(到主机或直接将他的内容到剪贴板)的原因。
猜你喜欢
  • 2017-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-08
  • 1970-01-01
  • 2011-01-03
  • 1970-01-01
  • 2015-08-27
相关资源
最近更新 更多