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

相关推荐

  • inode总结

    inode的介绍以及影响inode号的命令

    2017-11-27
  • Mariadb数据库复制系列(四):复制过滤器的实现

       实验四:复制过滤器的实现 复制过滤器的作用是让从节点仅复制主节点的指定的库,或指定数据库的指定表,而不是全部复制。其配置方式有两种,一种是在主节点上配置,通过定义主节点只记录部分库或表产生的二进制日志时间来实现;一种是通过从节点上配置,当复制了主节点的所有的二进制日志数据后,在SQL线程执行时,只执行指定的库或表相关的二进制日志时间;一般采取在从节点上…

    Linux干货 2016-11-24
  • 文本三剑客之sed用法总结

    描述:    sed是Stream EDitor(行编辑器)的简写,是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space ),接着用sed 命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你…

    Linux干货 2016-08-10
  • N26 – 第二周作业

    1、文件管理类命令和常用使用方法 2、bash命令执行后返回值,和目录展开:     命令执行返回值,存储在“$?”这个特殊变量内。可以使用echo显示或在shell脚本中引用。其中0表示正常执行完成,1-255表示不同的错误类型。     目录展开的特殊符号:  &n…

    Linux干货 2016-12-30
  • httpd2.2基础安装

    编译安装前,首先要确认开发包组已经装上。 开发包组: Developments tools server platform development(centos 7) 并且将apr 与 apr-unil 装上。这是httpd 可移植运行所必须用到的组件.这里举例说明的是httpd2.2版本。 若是安装httpd2.4以上版本的话,还要安装pcre库。pcre…

    2017-04-24
  • 马哥教育网络班19期+第三周课程练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。   whoami 只显示已经登录的用户     who | cut -d' ' -f1 | sort&nbs…

    Linux干货 2016-06-19