当前位置:  技术问答>linux和unix

请教HISTFILE环境变量的问题。

    来源: 互联网  发布时间:2017-03-30

    本文导语:  大家好:         请问HISTFILE环境变量是否是执行history命令是读取的命令历史记录文件? 但我发现直接在命令行中设置该环境变量  export HISTFILE="/home/testsys/cmd.hist"  后,执行history命令显示的是当时登录系统后...

大家好:
        请问HISTFILE环境变量是否是执行history命令是读取的命令历史记录文件?
但我发现直接在命令行中设置该环境变量  export HISTFILE="/home/testsys/cmd.hist"  后,执行history命令显示的是当时登录系统后执行的命令记录,而不是/home/testsys/cmd.hist文件里的命令记录。
但在/etc/profile 文件里加入 /home/testsys/cmd.hist 在第三次登录后,执行history命令才会显示/home/testsys/cmd.hist 文件里的命令记录,但也会显示当前登录后执行的命令记录,而/home/testsys/cmd.hist文件里的命令记录是固定的,不会加入当前登录所执行的命令。
请问:
1.设置HISTFILE环境变量是不是要重新登录后,history才能读取其指定的命令历史记录?这样的话,重新登录后,HISTFILE环境变量的值又变了,必须在/etc/profile文件里设置?这样很麻烦?

具体你可以帮忙测试一下就知道了。
__________
麻烦能帮忙解答一下history命令及HISTFILE环境变量具体的作用和工作原理吗?
待复,感谢!

|
history 一般是builtin command,不同shell的实现略有不同
你所希望的设置HISTFILE 就立刻可以看到file里面的所有command 有些shell比如ksh就是支持的
而另外一些shell比如bash是在shell start的时候读取的,之后设置是不起作用的
所以可以肯定你用的至少不是ksh

即使是对于bash这样的,也有变通的做法,可以使用内置的带参数 history 命令来强迫从最新设置的HISTFILE里面来读取,比如 history -r, 或者强迫当前session的history写入最新设置的HISTFILE里面 (有些shell为了performance的原因可能采用缓冲写,所以不是所有的cmd 即时反应在file里面,但通常logout会做flush)

楼主多参看man,自然有变通之道

比如 bash

man bash

       history -s arg [arg ...]
              With no options, display the command history list with line numbers.  Lines listed with a * have been modified.  An argument of n lists only  the
              last  n lines.  If the shell variable HISTTIMEFORMAT is set and not null, it is used as a format string for strftime(3) to display the time stamp
              associated with each displayed history entry.  No intervening blank is printed between the formatted time stamp and the history line.   If  file‐
              name  is  supplied,  it is used as the name of the history file; if not, the value of HISTFILE is used.  Options, if supplied, have the following
              meanings:
              -c     Clear the history list by deleting all the entries.
              -d offset
                     Delete the history entry at position offset.
              -a     Append the ``new'' history lines (history lines entered since the beginning of the current bash session) to the history file.
              -n     Read the history lines not already read from the history file into the current history list.  These are lines appended to the history file
                     since the beginning of the current bash session.
              -r     Read the contents of the history file and use them as the current history.
              -w     Write the current history to the history file, overwriting the history file's contents.
              -p     Perform  history substitution on the following args and display the result on the standard output.  Does not store the results in the his‐
                     tory list.  Each arg must be quoted to disable normal history expansion.
              -s     Store the args in the history list as a single entry.  The last command in the history list is removed before the args are added.

|


如果要看所有用户的历史记录, 看来最好的办法就是你定制一个shell然后所有用户都必须使用这个shell,这个shell提供带时间记录的历史,并且写入一个集中的地方

    
 
 

您可能感兴趣的文章:

  • 请教:(static)静态变量和静态方法是什么意思?
  • 请教:使用什么命令查看导出的环境变量?
  • 请教个shell环境变量的问题
  • 请教:linux平台(redhat7.2)下的环境变量在哪里设置?
  • 请教进程与变量的问题
  • 请教关于环境变量的问题
  • 请教一奇怪的环境变量的问题
  • shell变量和子shell的问题请教
  • 请教:如何在两个javaBean之间传送变量
  • 基础问题,刚学的!请教,两个日期格式变量,我要求两个日期之间的天数,怎么求?
  • 请教 变量= { function:函数名};什么意思
  • 请教SuSE Linux的环境变量设置?
  • 请教:<xsl:template match="/">中,match得值可以是变量吗,如:match="$node"
  • 请教关于linux内存管理问题,如何给定义的变量指定固定内存段
  • 请教大虾们:在shell脚本中如何用expr连续进行多个变量之间的计算
  • 请教JSP变量在JavaScript中使用的问题.
  • 请教一下, .bash_profile文件里面的环境变量没有生效
  • awk 输出值给变量请教!
  • shell和c之间的变量传递问题,请教!
  • 请教:整合apache/tomcat时设置JAVA_HOME/TOMCAT_HOME环境变量起什么作用?没有用到啊?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教jsp的运行环境
  • 请教何种Java环境易学易用!
  • 请教:JSP最简单的测试环境如何配置!
  • 请教搭建Linux环境
  • ¥¥¥¥¥请教,什么是LINUX上最好的C++集成开发环境
  • 请教win2000下配置运行jsp环境的问题
  • 请教:如何在windows环境下以图形界面登录linux?
  • 请教:Linux下C++的主流开发环境是什么?
  • 才鸟请教:linux下安装C/C++环境
  • 请教linux英文环境下使用中文输入法
  • Linux环境下QT交叉编译环境的移植问题请教帮忙
  • 请教如何在tomcat下配置servlet运行环境??
  • 请教:关于[linux/unix环境下连接到Oracle数据库后断开连接]的问题
  • 请教如何在qt-linux环境下两个cpp文件中对同一个数组作读写互斥操作?
  • armlinux环境下,液晶屏频闪严重,请教解决办法!
  • 请教各位大侠,在windows环境下的mysql 存储过程、视图在linux下是否都能运行?
  • 请教scounix环境下ftp程序编译问题
  • java.exe以及相关程序环境运行时报内存错误,请教各位什么原因?
  • 请教在linux系统开发环境下,有没有db和dbf数据库引擎,如何使用这个数据库?
  • 请教:Linux下进行图形显示的开发环境与工具的选择
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,