Loo*_*oom 6 bash command-history keyboard shell-script
有时我想从history输出中获取一些命令,将其复制到 bash 提示符,进行一些更改并运行它。有没有办法在history不涉及鼠标的情况下将命令从输出复制到 bash 提示符?例如,这将是一些我可以绑定快捷方式的脚本。
也许我不够了解fc,但看起来我无法通过fc(例如Tab通常的命令提示符)选择文件夹或文件
你需要看看 bashfc命令。
如果您想在重新执行历史行之前进行编辑,请执行以下操作
fc 123
Run Code Online (Sandbox Code Playgroud)
123您在键入命令时看到的历史记录行号在哪里history。
它将打开您最喜欢的编辑器,并允许您修改该行,然后退出并保存,它将运行。
您还可以执行以下一系列命令:
fc 123 135
Run Code Online (Sandbox Code Playgroud)
处理从 123 到 135 的命令历史记录。
编辑 1:
如果您需要在没有编辑的情况下运行,请考虑从历史记录中重新执行 fc 命令
下面是一个tmux方法。输入命令编号(如!1234)并按Alt+ Shift+ X。之后,带有数字的命令1234将在终端提示符中打印,并且该命令照常可编辑。
copy_line_from_history_to_prompt () {
READLINE_LINE=$( history -p "$READLINE_LINE" ) ;
}
bind -x '"eX": copy_line_from_history_to_prompt' # Alt+Shift+X
Run Code Online (Sandbox Code Playgroud)