是否可以在一个文件中检索 bash 的历史命令?

是否可以在一个文件中检索 bash 的历史命令?

我有很多命令想要再次运行,但命令太多了,用向上箭头键移动到它们太长了。是否可以将其放入 cat/tail 命令中并将其传送到文件中?

答案1

您可以使用历史命令:

history > my_file

答案2

键入 Ctrl-R,然后键入命令的前几个字母。

答案3

将其添加到 ~/.inputrc 将使向上和向下箭头循环显示与行首匹配的命令:

"\e[A": history-search-backward
"\e[B": history-search-forward

我也经常使用这些功能:

h() {
    if [ $# = 0 ]; then
        history 33 | sed '$d'
    else
        history | grep -iEF "$*" | grep -v '^ *[0-9]* *h '
    fi
}

r() {
    history ${1-200} | sed 's/^ *[0-9]* *//' | tail -r > /tmp/recent
    open /tmp/recent -e
}

如果您添加" ": magic-space到 .inputrc,您可以通过键入!1234和空格来插入命令 1234。但这也会使空格在 irb 和 gnuplot 中的交互模式中停止工作。

相关内容