zoukankan      html  css  js  c++  java
  • .sh_history文件的管理机制

    来源:http://www.aixchina.net/Article/27258

    字数 1056阅读 4365评论 1赞 0

    内容提要:

    .sh_history是在ksh中用于存储用户在shell中输入的命令历史的文件。它的大小是否有限制?AIX又是如何管理它的?下面我们将从几个方面来讲述该文件的管理机制。

    说明

    1. .sh_history文件的大小是否有限制?
    .sh_history文件本身并没有大小的限制,它的大小由用户或系统的限制所限制。但是,我们可以通过环境变量HISTSIZE来限制该文件的大小。注意,HISTSIZE指的是该文件中存储的命令的行数,它的默认值是128,最大值是28671(最大短变量值-4k,即32767-4096)。当HISTSIZE没有设置时,默认.sh_history会为non-root用户保留128行命令,为root用户保留512行命令。
    我们可以通过下面一段命令来验证:

    #cat .sh_history |wc -l
    1023
    #history |wc -l
    16
    #history -2500|wc -l
    512
    #export HISTSIZE=2500
    #history -2500|wc -l
    1024

    2. 如果.sh_history文件达到了它的大小限制,此时再有新的命令进入,该文件如何处理?
    当.sh_history文件达到了它的大小限制,此时又有新的命令进入时,.sh_history文件会继续保存该命令。注意,.sh_history可以保存比HISTSIZE多得多的历史命令,直到达到用户或系统的限制;但是,内存内(in-memory)的历史列表最多只能保存HISTSIZE个历史命令,并且它像FIFO一样操作。即当新的命令进入时,第一条命令从列表中挤出,但是该命令并不会从.sh_history文件中删除。.sh_history文件仅会在某些情况下剪裁至HISTSIZE设置的大小,详情参看问题3。

    3. .sh_history文件在什么条件下会进行裁减?如何裁减?
    当下面三个条件同时满足时,.sh_history文件会裁减到HISTSIZE设置的大小。该裁减发生在初始登录的时刻。
    (a)该文件在最近的600秒中没有被访问;
    (b)在.sh_history文件中存储的命令行数大于HISTSIZE或28671,二者取最大。如果HISTSIZE超过28671,限制取作28671。如果没有设置HISTSIZE,该限制默认是128行。
    (c).sh_history的大小超过(IOBSIZE * sizeof(int))。其中,IOBSIZE定义为1024并且是shell内部的值。

  • 相关阅读:
    C语言中的字符串处理库函数介绍与实现
    尾声,毕业设计答辩
    《算法图解》第六章笔记_广度优先搜索
    《算法图解》第五章笔记与课后练习_散列函数与散列表
    《算法图解》第四章笔记与课后练习_快速排序算法
    《算法图解》第三章笔记与课后练习_递归
    c# 执行javascript 脚本
    HttpWebRequest出错 服务器提交了协议冲突. Section=ResponseHeader Detail=CR 后面必须是 LF
    秒转换成时分秒
    SQL2008中Merge的用法
  • 原文地址:https://www.cnblogs.com/guanghuiqq/p/6773071.html
Copyright © 2011-2022 走看看