Bash Shell 中的History命令

###  Bash Shell 中的History命令


----------
日常运维工作中,我们经常使用History命令去检查在这台机器上所执行的历史命令,或者谁在什么时间执行的什么命令。History命令默认情况下不显示时间,我们可以设置。


----------


 - 显示所执行过的命令
  简单敲下键盘,输入一个单词:history即可。或者his +table键bash自动补全命令,终端会显示行号及对应的命令。
 

> [doctor@localhost ~]$ history
    1  exit
    2  DFDFD
    3  su -
    4  vim .bashrc
    5  vi .bashrc
    6  source .bash
    7  source .bashrc
    8  vi /etc/bashrc
    9  vi .bashrc
   10  su -


 


----------


 - 显示历史命令所执行的时间戳
 我们需要在/etc/profile.d/ 目录建立文件:history_config.sh 。
 其内容是:export HISTTIMEFORMAT='%F %T  '
其中:
%F 等价于 %Y - %m - %d
%T 等价于  ( %H : %M : %S )
配置在全局配置文件中,使得配置所有用户生效。当然你可以配置在特定用户的配置文件中。

----------

 - 设置历史命令保存和显示的数目
 linux系统中历史命令默认保存在~/.bash_history文件中,我们可以设置HISTFILESIZE 和HISTSIZE分别用来控制历史命令保存的数目和屏幕上显示的数目。
 
在/etc/profile.d/ history_config.sh文件中,
添加:
export HISTFILESIZE=1024
export HISTSIZE=100
如果设置为0,那就禁用了历史保存。
设置后,source /etc/profile   使得设置生效。
例如:

> [doctor@localhost ~]$ source /etc/profile
> [doctor@localhost ~]$ history
  712  2015-08-08 12:33:55  df -h /home
  713  2015-08-08 12:33:55  du
  714  2015-08-08 12:33:55  du / -h
  715  2015-08-08 12:33:55  du -sh
  716  2015-08-08 12:33:55  du -sh /home/doctor/
  717  2015-08-08 12:33:55  quot
  718  2015-08-08 12:33:55  quota
  719  2015-08-08 12:33:55  su -
  720  2015-08-08 12:33:55  source /etc/profile
  721  2015-08-08 12:33:55  android update sdk
  722  2015-08-08 12:33:55  tns
  723  2015-08-08 12:33:55  su -
  724  2015-08-08 12:33:55  android
  725  2015-08-08 12:33:55  source /etc/profile
  726  2015-08-08 12:33:55  adb
  727  2015-08-08 12:33:55  source /etc/profile
  728  2015-08-08 12:33:55  adb
  729  2015-08-08 12:33:55  su -
  730  2015-08-08 12:33:55  source /etc/profile
  731  2015-08-08 12:33:55  android sdk update
  732  2015-08-08 12:33:55  android sdk
  733  2015-08-08 12:33:55  npm install -g nativescript
  734  2015-08-08 12:33:55  npm install nativescript -g --unsafe-perm
  735  2015-08-08 12:33:55  source /etc/profile
  736  2015-08-08 12:33:55  npm install nativescript -g
  737  2015-08-08 12:33:55  source /etc/profile
  738  2015-08-08 12:33:55  adb
  739  2015-08-08 12:33:55  android
  740  2015-08-08 12:33:55  npm install -g nativescript
  741  2015-08-08 12:33:55  tns hello
  742  2015-08-08 12:33:55  adb
  743  2015-08-08 12:33:55  which adb
  744  2015-08-08 12:33:55  android sdk update
  745  2015-08-08 12:33:55  android update sdk
  746  2015-08-08 12:33:55  su -
  747  2015-08-08 12:33:55  npm install -g nativescript
  748  2015-08-08 12:33:55  cd Documents/
  749  2015-08-08 12:33:55  tns create hello-world
  750  2015-08-08 12:33:55  cd hello-world/
  751  2015-08-08 12:33:55  ll
  752  2015-08-08 12:33:55  tree
  753  2015-08-08 12:33:55  tns platform add android
  754  2015-08-08 12:33:55  ll
  755  2015-08-08 12:33:55  tns run android --emulator
  756  2015-08-08 12:33:55  source /etc/profile
  757  2015-08-08 12:33:55  android sdk
  758  2015-08-08 12:33:55  less /etc/ssh/sshd_config
  759  2015-08-08 12:33:55  su -
  760  2015-08-08 12:33:55  service sshd status
  761  2015-08-08 12:33:55  WHO
  762  2015-08-08 12:33:55  who
  763  2015-08-08 12:33:55  pwd;who;cd ..;pwd;
  764  2015-08-08 12:33:55  pwd;who;cd ..;pwd
  765  2015-08-08 12:33:55  who
  766  2015-08-08 12:33:55  who am i
  767  2015-08-08 12:33:55  service sshd status
  768  2015-08-08 12:33:55  ssh localhost
  769  2015-08-08 12:33:55  pwd;
  770  2015-08-08 12:33:55  ll
  771  2015-08-08 12:33:55  who
  772  2015-08-08 12:33:55  who am i
  773  2015-08-08 12:33:55  date
  774  2015-08-08 12:33:55  su -
  775  2015-08-08 11:51:57  history
  776  2015-08-08 12:33:55  history
  777  2015-08-08 12:33:55  su -
  778  2015-08-08 11:25:25  history
  779  2015-08-08 11:26:07  echo $HISTTIMEFORMAT
  780  2015-08-08 11:42:45  history
  781  2015-08-08 11:44:00  reset
  782  2015-08-08 11:44:04  history
  783  2015-08-08 11:47:06  export HISTTIMEFORMAT = '%F %T'
  784  2015-08-08 11:47:14  export HISTTIMEFORMAT='%F %T'
  785  2015-08-08 11:47:17  history
  786  2015-08-08 11:47:58  ll
  787  2015-08-08 11:48:02  history
  788  2015-08-08 11:48:24  reset
  789  2015-08-08 11:48:28  history
  790  2015-08-08 11:49:54  cd ..
  791  2015-08-08 11:49:55  pwd
  792  2015-08-08 11:49:58  reset
  793  2015-08-08 11:50:00  history
  794  2015-08-08 11:52:37  ll
  795  2015-08-08 11:52:38  history
  796  2015-08-08 11:52:52  less /etc/profile
  797  2015-08-08 11:57:15  su -
  798  2015-08-08 11:57:42  ll
  799  2015-08-08 11:57:43  clear
  800  2015-08-08 11:57:47  history
  801  2015-08-08 11:58:28  less /etc/bashrc
  802  2015-08-08 12:03:42  less /etc/profile
  803  2015-08-08 12:04:10  less /etc/bashrc
  804  2015-08-08 12:05:15  su -
  805  2015-08-08 12:06:51  ll
  806  2015-08-08 12:06:53  history
  807  2015-08-08 12:33:57  pwd
  808  2015-08-08 12:33:59  ll
  809  2015-08-08 12:34:00  history
  810  2015-08-08 12:35:28  source /etc/profile
  811  2015-08-08 12:36:23  history

只显示了100行。

----------


 - 查询特定用户所执行的命令
 bash在用户根目录下,会把这个用户的命令历史记录保存在~/.bash_history文件中,我们就可以知道此用户的命令历史记录。

   


----------

 - 删除历史命令记录
 

> [doctor@localhost ~]$ history -c
>
[doctor@localhost ~]$ history
    1  2015-08-08 12:22:56  history
[doctor@localhost ~]$


----------

 - 用grep命令查询命令历史记录
 

> [doctor@localhost ~]$ history | grep pwd
>
     3  2015-08-08 12:23:57  pwd
     4  2015-08-08 12:24:04  history | grep pwd
[doctor@localhost ~]$


----------

 - 查询最近刚执行过的命令
 我们可以用键盘上的up和down箭头键盘翻阅记录。也可以用ctrl + r ,输入部分命令查找(会提示)

 


----------

 


你可能感兴趣的:(shell,shell,bash,History命令,BashHistory命令,中的History)