一种存储/记忆单行命令的方法

一种存储/记忆单行命令的方法

通常,在配置和调整基于 UNIX 的系统时,我会使用大量难以记住的一行命令。例如,要确定正在运行的 ntp(时间服务器)版本,您可以发出以下命令:

ntpq -c "rv 0 version"

这是我永远不会记得的事情。有没有某种方式或方法来存储所有这些单行代码,以便我可以在需要时轻松查看它们并将它们粘贴到命令行(我使用 vim 顺便说一句,而不是 emacs,所以以 emacs 为中心的解决方案并不能真正帮助我)。我在想可能有一种方法可以从 shell 的缓冲区中执行当前的文本行,但找不到任何这样的命令。

我的一个想法是将命令放入文本文件中,然后在 vimrc 中创建这一行:

nnoremap <F10> :.w !bash<CR>

现在,假设我的文件中有这一行:

ntpq -c "rv 0 version"    # show current version of NTP which is running

然后,我将光标放在这一行上并按 F10,它就可以工作了(请注意,由于命令被发送到 bash,因此您使用 bash 注释 (#),而不是 vim 注释)。这似乎是朝着正确方向迈出的一步。还有更好的想法吗?

答案1

您是否尝试过使用别名?

例子

为新命令创建别名:

alias ntpversion='ntpq -c "rv 0 version"'

运行命令:

ntpversion

在将 ntpversion 设置为别名后,运行 ntpversion 将为您的单行代码提供输出。

http://www.linuxhowtos.org/Tips%20and%20Tricks/command_aliases.htm

答案2

从 vim 运行命令

你问的是vim。在 vim 中,您可以使用快捷方式创建文件。它会有这样的行:

!ntpq -c "rv 0 version"

然后您可以将该行复制到维姆命令行 ( :) 来执行它。因为该行以 开头!,所以当您按 Enter 时,vim 将为它提供要执行的 shell。你永远不必离开 vim。

通过我的 vim 设置,我通过单击鼠标将该行复制到 X11 缓冲区中,然后键入:以打开命令行并按住 Shift-Insert 来粘贴该行。 Vim 的可配置性很强,您的设置可能会有所不同。如果是这样,请看一下这个帖子了解粘贴到命令行的其他方法。

将命令保存在~/.bashrc

或者,您可以将 bash 别名或函数添加到文件中~/.bashrc。典型的别名如下所示:

alias ll="ls --color -l"

只需将上述行放入您的~/.bashrc文件(或源自该文件的另一个文件)中,当您想要查看它们时,您就可以将它们全部放在一个方便的位置。

别名简单方便,但有局限性。如果您想要更多功能,例如处理参数、执行算术等,您可能需要阅读有关 bash 函数的内容。它们也可以存储在~/.bashrc.

答案3

你可以让你的历史变得非常大,然后从那里执行一些东西。
还有 commandlinefu.com...
您可以在您保存的纯文本文件中记下所有这些行。

我运行一个私人 habari 实例,在其中放置此类内容(以及更多文档)...

相关内容