![使用自定义 bash 历史记录启动 XTerm](https://linux22.com/image/111376/%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89%20bash%20%E5%8E%86%E5%8F%B2%E8%AE%B0%E5%BD%95%E5%90%AF%E5%8A%A8%20XTerm.png)
我可以xterm
从包含预定义命令列表的自定义 bash 历史记录开始吗?这样我就可以运行多个实例xterm
,其中每个实例都有自己的历史记录。
答案1
~/myhistory
使用历史记录中所需的命令创建一个文件,每行一个chmod a-w ~/myhistory
,这样 Bash 就不会尝试改变它。如果你想用户输入的要写回的命令(写入同一文件),请跳过此步骤。HISTFILE=~/myhistory xterm -e bash
让 Bash 加载历史数据~/myhistory
。如果您的默认 shell 是,bash
那么您可能会丢失-e bash
.
在 shell 中,命令历史记录将是您在文件中写入的内容,可以通过向上箭头、历史扩展、命令fc
或任何其他获取历史记录的方式进行访问。
如果您无法创建真实的文件,这个相当老套的解决方法也可以工作:
HISTFILE=<(printf '%s\n' command1 "second 'command here'" 3rd) xterm -e bash
这使用流程替代生成一个类似文件的实体供 shell 读取,其输出为printf
命令作为内容。这printf
将打印出每个参数,每行一个。您必须仔细引用内容,以确保作为输出的命令采用您需要的格式。