我一直在尝试更改 HISTSIZE 系统范围,但没有成功。我尝试了多种不同的方法:
- 添加
/etc/profile
导出 HISTSIZE=100 - 添加
/etc/enviroment
HISTSIZE=100 - 添加
/etc/bash.bashrc
HISTSIZE=100
我不想更改每个用户的.bashrc
文件。
答案1
太长了;查看 HISTSIZE 更改的位置:
grep HISTSIZE /etc/profile /etc/bash.bashrc ~/.profile ~/.bash_profile ~/.bash_login
HISTSIZE 只是一个环境变量,环境变量在几个地方设置或覆盖。我假设您正在使用 bash (我确信其他 shell 也使用 HISTSIZE,但 bash 通常是默认 shell)
默认的 HISTSIZE 是 500,正如您在 bash/bind.c 中看到的:https://github.com/bminor/bash/blob/d233b485e83c3a784b803fb894280773f16f2deb/lib/readline/bind.c#L2040
当用户登录时,会加载一个相当复杂的配置文件树。这是一篇关于此的优秀帖子:https://blog.flowblok.id.au/2013-02/shell-startup-scripts.html
现在,当运行正常的交互式远程(紫色线)shell 时,您可以看到以下文件被解析:
- /etc/配置文件
- /etc/bash.bashrc
- 〜/.profile
- 〜/ .bash_profile
- 〜/.bash_login
这些文件中的任何一个都可以设置或更改 HISTSIZE 变量。
现在您可以通过键入以下内容来读取当前的 HISTSIZE 变量:echo $HISTSIZE
如果结果是空行,则表示未设置,应应用默认值 500。
任何其他金额将由上面列表中的其他脚本设置。您可以通过 grep 查找 HISTSIZE 来快速查看,如下所示:
grep HISTSIZE /etc/profile /etc/bash.bashrc ~/.profile ~/.bash_profile ~/.bash_login