linux历史命令history详解

history命令

history命令用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。

该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2

  128  ls
 129  history
[root@localhost ~]# !128
ls
aa.txt  anaconda-ks.cfg  awk.txt  grep  sed  sed1  sed2

语法

history(选项)(参数)

选项

-c:清空当前历史命令; 
-a:将历史命令缓冲区中命令写入历史命令文件中; 
-r:将历史命令文件中的命令读入当前历史命令缓冲区; 
-w:将当前历史命令缓冲区命令写入历史命令文件中。

参数

n:打印最近的n条历史命令。

[root@localhost ~]# history 3
 133  echo $HISTSIZE
 134  history -3
 135  history 3

历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制。

[root@localhost ~]# echo $HISTSIZE
1000

HISTFILE :指定历史文件,默认为~/.bash_histor或存放在 /etc/profile 
HISTFILESIZE :命令历史文件记录历史的条数; 
HISTTIMEFORMAT=“%F %T“ 显示时间 
export 变量名=" 值“

[root@localhost ~]# export HISTTIMEFORMAT='%F %T '
[root@localhost ~]# history
.........
 138  2016-09-02 03:12:12 vim .bash_history
 139  2016-09-02 03:14:46 export HISTTIMEFORMAT='%F %T '
 140  2016-09-02 03:14:49 history
 141  2016-09-02 03:15:15 export HISTTIMEFORMAT='%F %T '
 142  2016-09-02 03:15:16 history

控制命令历史的记录方式: 
环境变量:HISTCONTROL 
ignoredups :忽略重复的命令;连续且相同方为“重复” 
ignorespace :忽略所有以空白开头的命令 
ignoreboth :ignoredups, ignorespace 
erasedups: 删除重复命令

History命令的用途确实很大!但需要小心安全的问题!尤其是 root 的历史纪录档案,这是黑客们的最爱!因为不小心的 root 会将很多的重要资料在执行的过程中会被纪录在 ~/.bash_history 当中,如果这个档案被解析的话,后果不堪设想!

原创文章,作者:M20_he,如若转载,请注明出处:http://www.178linux.com/42910

(0)
M20_heM20_he
上一篇 2016-09-05 08:49
下一篇 2016-09-05 08:50

相关推荐

  • 程序包管理rpm

    Linux程序包管理      API:Application Program Interface      ABI:Application Binary Interface         Unix…

    Linux干货 2016-08-23
  • Linux部分命令及通配符用法

    pwd: 显示工作目录 cd -: 在上一次所在目录与当前目录之间来回切换 cd: 切换回家目录 cat:  文本查看工具 n:给显示的文本行编号 -E:显示行结束符$ passwd 修改用户的密码 which 查看系统命令所对应的路径 df 查看系统分区 runlevel 查看系统运行级别  (共有6个级别) Tty…

    2017-03-28
  • HAProxy七种调度方法的简单示意图

    看了三个月,中间因出差和其他事没有看估计也有十几天,刚把35天的视频看完。很多内容都记不住,待第一次看完后再回头看吧。 现在想,对内容进行简单的画图,把基本的体现出来,对记忆和回顾应该有帮助。

    Linux干货 2016-07-26
  • Linus:利用二级指针删除单向链表

    感谢网友full_of_bull投递此文(注:此文最初发表在这个这里,我对原文后半段修改了许多,并加入了插图) Linus大婶在slashdot上回答一些编程爱好者的提问,其中一个人问他什么样的代码是他所喜好的,大婶表述了自己一些观点之后,举了一个指针的例子,解释了什么才是core low-level coding。 下面是Linus的教学原文及翻译—— “…

    Linux干货 2016-07-10
  • N26-第二周

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及相关示例演示;   1)alias:命令别名;     # alias ;获取所有可用别名的定义;     # alias NAME=‘COMMAND’:定义别名;    &nbs…

    Linux干货 2017-02-11
  • 马哥教育网络班21期+第7周课程练习

    马哥教育网络班21期+第7周课程练习 创建一个10G分区,并格式为ext4文件系统;    a.要求block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl;    b.挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不能更新文件的访问时间戳; #&…

    Linux干货 2016-08-22