如何在BusyBox环境下查看历史输入命令列表?
问题原因
你当前使用的BusyBox内置shell(默认是ash)没有编译history内置命令,但命令历史功能本身是正常运行的,所以你能用方向键调取历史、用快捷键搜索命令。
解决方法
方法1:直接读取历史记录文件(适用查看已持久化的历史)
BusyBox的shell默认会把历史命令写入当前用户家目录的.ash_history文件,直接读取即可:
cat ~/.ash_history
注意:当前会话刚输入的命令还没写入文件时,用这个方法看不到最新的命令。
方法2:用fc内置命令查看全量历史(推荐)
fc是POSIX标准规定的shell内置命令,几乎所有BusyBox的shell默认都会携带,执行以下命令即可列出所有历史:
fc -l
如果要清空当前历史,执行:
fc -c
方法3:永久开启history命令
如果需要原生支持history命令,可重新编译BusyBox开启对应配置:
- 进入Buildroot的BusyBox配置界面:
make busybox-menuconfig - 依次进入
Shells→ 选择你正在使用的shell(默认是ash),勾选以下选项:- History support
- history built-in
- 保存配置后重新编译Buildroot,重新烧录系统即可。
可选配置:持久化保留命令历史
如果重启后历史命令消失,说明你的家目录是不可写的临时文件系统,可以在~/.profile中添加以下配置,指定历史文件的可写存储路径:
export HISTFILE=/mnt/data/.ash_history export HISTSIZE=1000
内容的提问来源于stack exchange,提问作者FabienM
相关产品推荐
相关产品推荐

