linux - 将 STDOUT 粘贴到远程主机上的剪贴板的选项

标签 linux bash ssh pbcopy

我在远程主机上的 .bashrc 中有一个非常简单的脚本别名,我经常通过 SSH 连接到该主机进行工作。它使我能够输入“pth”作为命令,并且别名为“bash/user/your/home/pathprinter.sh”,如下所示:

#!/bin/bash

NOWDIR=`pwd`
echo 'scp  myname@remote.host.institution.name:'"$NOWDIR" 

这使我能够相当快速地将文件从本地计算机 scp 到远程主机,反之亦然,而无需输入太多内容,因为它会回显输出,然后我单击并拖动该输出以突出显示,然后复制并粘贴到本地计算机上的另一个终端窗口中。

如果这个脚本存储在我的本地计算机上,我可以写:

NOWDIR=`pwd`
echo 'scp  myname@remote.host.institution.name:'"$NOWDIR" | pbcopy

它会直接进入剪贴板。但是,如果我在执行此命令时最频繁地在远程主机上,并且如果我在远程主机上没有 sudo 权限(但是,我仍然可以在主目录或其他地方安装东西),是否还有方法可以实现此目的?任何可以节省几秒钟的事情!

最佳答案

脚本可以运行它,而不是回显命令,因此您不需要复制粘贴任何内容。

您可以有两个脚本,一个用于从远程复制到本地

#!/bin/bash
remote_path="${1:?Missing remote path}"
local_path="${2:?Missing local path}"
scp "myname@remote.host.institution.name:$remote_path" "$local_path"

另一个从本地复制到远程

#!/bin/bash
local_path="${1:?Missing local path}"
remote_path="${2:?Missing remote path}"
scp "$local_path" "myname@remote.host.institution.name:$remote_path"

您可以将它们执行为

copy-remote-to-local <path copied from the other terminal> .
copy-local-to-remote file.txt <whatever path you want on remote system>

或者,更好的是,configure ssh该主机的简称

Host serv
HostName remote.host.institution.name
User myname

然后就可以像这样直接使用scp

scp serv:<remote path> <local path>
scp <local path> serv:<remote path>

这样,如果您使用该主机的公钥登录,则当您按 tab 时,远程路径将完成,就像本地路径一样!

关于linux - 将 STDOUT 粘贴到远程主机上的剪贴板的选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33191491/

相关文章:

python - linux python应用程序pid存在检查

linux - 如何在远程机器上运行多个脚本

linux - 使用 chroot 运行命令时我的权限被拒绝

PHP/Linux shell 不需要的字符

c++ - 内存释放后进程的RES内存会下降吗?

ssh - 如何停止 SSH 使用已删除的私钥

linux - git push origin master 请求远程服务器密码

php - unixODBC 连接到 Linux 上的 Access 数据库失败

linux - 使用 echo/linux 创建一个包含多行脚本的输出文件

git - 在服务器上设置 Git/Bitbucket : Permission Issues