在 NetBSD 中/bin/sh
是一个修改版本阿尔姆奎斯特壳。通过命令fc -l
可以查看在提示符中输入的最后 16 个命令当前的会话和不是那些年长的。
环境变量HISTSIZE
设置为 1000 并在bash
这意味着最后 1000 个命令(是否它们是在当前会话中键入的)保存在.bash_history
主目录中命名的文件中。但这里似乎只是说这个会话中的最后1000条命令保存在历史记录中,而历史记录似乎没有保存在文件中。
我正在寻找一个历史记录,它不仅可以读取当前会话的最后命令,还可以之前会话的命令(例如,上次启动系统的时间,而不是实际时间)。做/bin/sh
NetBSD 中默认有这样的历史?如果没有,是否可以在该 shell 中创建这样的历史记录?
答案1
我不太明白你的问题,你真正的问题是什么?
首先,您声明您可以通过内置访问历史记录fc
,然后您询问 shell 是否实现历史记录?
此外,man page
状态:
可以访问的先前命令的数量由变量的值决定
HISTSIZE
。
和
登录 shell 首先从文件中读取命令
/etc/profile
以及.profile
它们是否存在。如果环境变量ENV
是在进入 shell 时设置的,或者是在.profile
登录 shell 中设置的,则 shell 接下来会从 中命名的文件中读取命令ENV
。因此,用户应该将仅在登录时执行的命令.profile
以及为文件中的每个 shell 执行的命令放置在该ENV
文件中。要将ENV
变量设置为某个文件,请将以下行放入.profile
您的主目录中ENV=$HOME/.shinit; export ENV
替换为
.shinit
您想要的任何文件名。
如果您的问题是历史记录是否被写入文件,那么情况似乎并非如此。