如何在不使用鼠标的情况下在剪贴板中复制终端命令?

alh*_*lal 5 command-line shortcut-keys gnome-terminal clipboard

在此处输入图片说明

gsettings set org.gnome.desktop.interface clock-show-date true
Run Code Online (Sandbox Code Playgroud)

我想将此命令复制到剪贴板,以便我可以轻松地将其粘贴到文件或 Ask Ubuntu 问题中。

我知道我可以通过选择它并按Ctrl+ Shift+来复制它C,但我想得到一个无鼠标的答案。

des*_*ert 5

您可以使用bash的 History Expansion将上一个命令行复制到剪贴板,而无需执行命令替换、扩展等操作:

echo !!:q | xclip -sel clip # or respectively
echo !!:q | xsel -ib
Run Code Online (Sandbox Code Playgroud)

!!是 的快捷方式!-1,参考上一个命令。冒号:在修饰符之前q,它允许扩展用单引号引用替换的单词以防止进一步替换。

示例运行

$ uname -r                        # run your command
4.10.0-35-generic
$ echo !!:q | xclip -sel clip     # copy the previous command to clipboard 
echo 'uname -r' | xclip -sel clip # this line shows what’s done
$ xclip -sel clip -o              # print clipboard content (just for testing)
uname -r
$ $(xclip -sel clip -o)           # run command stored in clipboard (just for testing)
4.10.0-35-generic
Run Code Online (Sandbox Code Playgroud)

为了简化这一点,您可以在设置中创建alias或设置键盘快捷键。阅读man bash/HISTORY EXPANSIONman history了解有关历史扩展的更多信息。