我有一些相当长的命令和文件路径,它们已经复制到剪贴板并需要在TTY中执行,但是文件路径太长而无法重新键入,我只想在(之后$
可以重新键入命令然后他们),有没有办法做到这一点?
因此,我想执行一个命令,并在下一行将$
其复制到剪贴板,如下所示:
$ specialCommandToPasteText
$ pastedText
我正在使用GNOME 3.20运行Ubuntu GNOME 16.04。
gpm
按照自己对上一个问题的回答中的建议,在VT中提供鼠标支持?
我有一些相当长的命令和文件路径,它们已经复制到剪贴板并需要在TTY中执行,但是文件路径太长而无法重新键入,我只想在(之后$
可以重新键入命令然后他们),有没有办法做到这一点?
因此,我想执行一个命令,并在下一行将$
其复制到剪贴板,如下所示:
$ specialCommandToPasteText
$ pastedText
我正在使用GNOME 3.20运行Ubuntu GNOME 16.04。
gpm
按照自己对上一个问题的回答中的建议,在VT中提供鼠标支持?
Answers:
很简单,但是您需要其他工具。
安装该软件包xsel
,该软件包提供了访问剪贴板的简单命令:
sudo apt-get install xsel
找出$DISPLAY
您的桌面正在使用。通常应该是:0
,但是您可以通过在GUI桌面上的终端仿真器中运行以下命令来进行检查:
echo $DISPLAY
我将假设输出为:0
,如果不同,请在以下命令中将其替换为您的实际输出。
在TTY中复制要执行的命令,例如,使用Ctrl+ C。
切换到要使用的TTY,例如,使用Ctrl+ Alt+ 切换到TTY1 F1。
输入用户名和密码登录。
输入您要运行的完整命令,但将要从剪贴板插入的部分替换为$(DISPLAY=:0 xsel -ob)
。
例如,如果您复制了大量要安装的软件包,则可以在TTY中键入以下内容:
sudo apt-get update && sudo apt-get install $(DISPLAY=:0 xsel -ob)
剪贴板代码段不一定必须在命令末尾,它可能出现在任何地方。
为了进一步简化操作,让我们将其移动DISPLAY=:0 xsel -ob
到脚本中还有些复杂。我将其命名PASTE
(因为paste
已被使用),但是您也可以使用其他名称。
要在每个用户都可以运行该脚本文件的位置创建脚本文件而不必指定完整路径(我/usr/local/bin
为此建议),并使该脚本文件可执行,只需运行以下两个命令:
( echo '#!/bin/bash' && echo 'DISPLAY=:0 xsel -ob' ) | sudo tee /usr/local/bin/PASTE
sudo chmod +x /usr/local/bin/PASTE
现在,您只需将其嵌入$(PASTE)
TTY中的命令中,即可从桌面上插入剪贴板内容。
DISPLAY=:0 xsel -ob
Bash别名或小脚本存储为任何地方(将其命名为PASTE
),并且仅使用简化形式,例如$(PASTE)
在命令中使用剪贴板内容。
就个人而言,我只使用文本文件:
在您的桌面环境中,打开一个终端,然后
echo "whatever long text you have copied" > file
放到tty和
$(cat file)
some-command '
shift + insert(粘贴)。 '
返回。在单引号或双引号内粘贴可防止粘贴文本中的换行符运行命令,然后再对其进行编辑以解决任何问题。IDK将文本放在文件中会带来什么好处。Bash具有非常强大的行编辑键,例如按ctrl-left或ctrl-right箭头可以逐字移动。alt-backspace删除向后单词。ALT-d删除前进的话,等等,等等