一种线性命令的存储/记忆方法

Tyl*_*den 3 command-line shell bash vim

在配置和调整基于 Unix 的系统时,我经常使用很多难以记住的单行命令。例如,要确定正在运行的 ntp(时间服务器)版本,请发出以下命令:

ntpq -c "rv 0 version"
Run Code Online (Sandbox Code Playgroud)

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

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

nnoremap <F10> :.w !bash<CR>
Run Code Online (Sandbox Code Playgroud)

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

ntpq -c "rv 0 version"    # show current version of NTP which is running
Run Code Online (Sandbox Code Playgroud)

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

cmo*_*s14 5

您是否尝试过使用别名?

例子

为新命令创建别名:

alias ntpversion='ntpq -c "rv 0 version"'
Run Code Online (Sandbox Code Playgroud)

运行命令:

ntpversion
Run Code Online (Sandbox Code Playgroud)

运行 ntpversion,将其设置为别名后,将为您的单行程序提供输出。

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