过去人们如何“复制粘贴”命令?

过去人们如何“复制粘贴”命令?

我发现自己使用history | grep ‘whatever'然后复制并粘贴cmd,我发现这很乏味。

$(history | grep 'whatever')如果它是 1 行(超过这一行,我必须处理它),我有时也会执行 cmd,但我必须用来sed删除行号。

那么当复制粘贴不可用时,人们是否只需重新输入命令?或者他们是否只需使用sedawk处理然后执行?

答案1

从我自己的历史来看,UNIX 不一定按时间顺序排列。

在“过去”,既没有命令行编辑,也没有鼠标。您确实重新输入了命令,就像输入普通shdash.我怀疑这是常用命令较短的原因之一。个人$HOME/bin目录中的简单脚本有助于$PATH更常用的操作。

多年来,这就是我的环境,通过 PC 上运行的 X Windows 进行了增强(X视觉),这使我可以用鼠标复制和粘贴。

接下来是 C Shell ( csh) 及其命令历史记录。仍然没有命令行编辑,但您可以重复以前的命令并对其进行简单的修改。以下%是 C Shell 提示符:

% echo hello, world
hello, world

% ^world^earth
echo hello, earth
hello, earth

% history
    12  echo hello, world
    13  echo hello, earth
    14  history

% !13
echo hello, earth
hello, earth

% !13:s/hello/goodbye
echo goodbye, earth
goodbye, earth

% !h
history
    12  echo hello, world
    13  echo hello, earth
    14  history
    15  echo hello, earth
    16  echo goodbye, earth
    17  history

然后tcsh它提供了命令行编辑工具。尽管我编写的脚本是针对sh.

然后我发现bash,这意味着我可以使用history命令行替换(使用^old^new,如上所述),但也可以使用与我的脚本相同的语法。我还没有搬到,zsh所以这是我目前的首选环境。

答案2

Bash 提供了一些选项来避免在无法进行复制和粘贴的终端上重新输入命令。

最有用的可能是CTRL+R,它允许您在历史记录中进行反向搜索。

ALT+。插入最后一个命令的参数。

CTRL+I或者标签自动完成命令、文件名和目录名。 ALT+/仅自动完成文件名和目录名。

CTRL+ALT+E扩展当前在命令行中输入的 Bash 别名。

然后,当然,你有向上向下箭头键可浏览历史记录并选择已运行的命令。

相关内容