将行注入 bash 历史记录

rgt*_*gtk 9 bash

默认情况下,bash 从~/.bash_history历史加载行。是否可以添加要加载的自定义文件?我想注入包含我经常使用的命令的文件,并通过内置搜索访问它们。

eww*_*ite 13

我通过alias h='history|grep'加载到我的 Bash 配置文件来保持简单。

所以我的工作流程是h command,例如:h hpssa

#  h hpssa
  202  05-28-2015 11:54:33  hpssacli
  217  05-28-2015 11:54:33  hpssa -start
  225  05-28-2015 11:54:33  hpssacli -stop
  226  05-28-2015 11:54:33  hpssa -stop
  228  05-28-2015 11:54:33  hpssa -start
Run Code Online (Sandbox Code Playgroud)

如果我想运行“ hpssa -stop”,我只需输入!226


这只是我的方法,但也许您可以修改回忆历史项目的方式。我认为将数据实际注入历史文件没有意义。

  • @CameronKerr 看看这个答案下面的答案 (http://serverfault.com/a/695115/120438 )。在这种特殊情况下使用 Ctrl+R 的缺点是它会给你一个相关的命令时间,而 ewwhite 的方法返回所有相关命令的列表。 (2认同)

Ant*_*gan 7

我曾经非常依赖Ctrl-Rreverse-search-historyReadline 命令),它通过历史记录向后搜索以检索以前输入的长命令,但我现在更喜欢使用别名和 shell 脚本/函数。无论如何,Bashhistory内置命令可用于将自定义命令列表加载到您当前的历史记录中。

history -r [filename]
Run Code Online (Sandbox Code Playgroud)

从 bash 手册页:

读取历史文件的内容并将它们附加到当前历史列表中。

启动自动化

我只是尝试通过将它添加为我的.bashrc. 但是,当我启动一个新的 shell 时,我的自定义历史文件中的命令不可用。似乎 shell 历史记录仅从默认.bash_history文件加载:处理启动文件之后,就为交互式 shell 显示提示之前。不幸的是,似乎没有一种简单的方法可以自动执行此操作。