duc*_*ens 45 command-line ubuntu
我想知道是否有一种快速的方法可以在 Ubuntu 的终端中保存命令。场景是:
问题:
我希望能够以一种简单的方式保存命令以供以后使用,而不仅仅是#在它之前放置一个并将其放入上下键历史记录中。最好将其直接保存到寄存器或剪贴板。
我忘了说我也不想回声。
Jde*_*eBP 52
这不是您的终端,这是您的外壳。
您正在寻找的 shell 机制的名称是kill buffer。人们忘记了 shell 命令行编辑器有这些。Z shell 中的 ZLE、Bourne Again shell 中的 GNU Readline、(FreeBSD) Almquist shell 中的 libedit、Korn shell 的行编辑器和 TENEX C shell 的行编辑器都有它们。
在所有这些 shellemacs模式中,只需转到要保存的行的末尾,使用⎈ Control+将其杀死到头部终止缓冲区U,键入并运行中间命令,然后使用⎈ Control+猛拉终止缓冲区内容Y。确保在输入中间命令时不对终止缓冲区执行任何操作。
在vi模式中的 Z shell 中,您具有vi用于指定命名vi样式缓冲区的前缀序列以终止该行。您可以使用其他缓冲区之一代替默认缓冲区。只需使用类似" a d d(in vicmdmode) 的东西将整行删除到缓冲区“a”中,键入并运行中间命令,然后将该缓冲区的内容放入" a p.
在它们的vi模式中,Korn shell、Bourne Again shell 中的 GNU Readline 和 (FreeBSD) Almquist shell 中的 libedit 没有命名vi风格的缓冲区,只有一个 cut 缓冲区。 d d将该行删除到该缓冲区中,然后将缓冲区内容放入p, 将起作用。但它使用与vikilling 和yanking 在输入中间命令时相同的样式缓冲区。
use*_*803 31
您不想在您的行中添加echo(或任何其他无操作类型命令),因为您可能有 I/O 重定向,并且它们仍会被执行,可能会覆盖您可能仍需要访问的任何文件(直到您已准备好执行您的命令)。
相反,转到该行的开头并输入注释字符#。然后您可以按Enter,该行将保存在您的历史记录中。
如果你在 vi 模式下,ksh 和 bash(至少)有一个特定的命令:进入命令模式(按Esc)然后按#字符。
这是专门针对此用例的。O'Reilly Learning the Korn Shell书中对这个命令的描述说:
将#(注释字符)添加到该行并将其发送到历史文件;用于保存稍后要执行的命令而无需重新键入它。如果该行已经以 # 开头,请删除多行命令中的前导 # 和任何其他跟在换行符之后的注释字符。
我通常只是在行尾附加“'”(单引号),然后按 Enter 和 Ctrl-C。后来我用 Cursor Up 或 Ctrl-R 回忆起来。但是,您必须确保之前没有杂散的引号。