在 ubuntu 16.0.4LTS 中更改 HISTSIZE

在 ubuntu 16.0.4LTS 中更改 HISTSIZE

我一直在尝试更改 HISTSIZE 系统范围,但没有成功。我尝试了多种不同的方法:

  1. 添加 /etc/profile导出 HISTSIZE=100
  2. 添加/etc/enviromentHISTSIZE=100
  3. 添加/etc/bash.bashrcHISTSIZE=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

相关内容