zoukankan      html  css  js  c++  java
  • Linux历史命令

    Linux历史命令

    敲过的命令,Linux是会有记录的,预设可以记录1000条历史命令。这些命令保存在用户的家目录中的.bash_history文件中。只有当用户正常退出当前shell时,在当前shell中运行的命令才会保存至.bash_history文件中。

    [root@centos-01 ~]# ls /root/.bash_history 
    /root/.bash_history
    [root@centos-01 ~]# cat !$

    history命令如果未改动过环境变量,默认可以把最近1000条历史命令打印出来。

    [root@centos-01 ~]# history

    历史命令条数由环境变量HISTSIZE决定的

    [root@centos-01 ~]# echo $HISTSIZE
    1000

    可以在/etc/profile文件中修改环境变量HISTSIZE

    [root@centos-01 ~]# vi /etc/profile

    如果修改了环境变量HISTSIZE,并想使之生效,那么需要重新进入终端。或者执行命令source /etc/profile使之生效。

    [root@centos-01 ~]# source /etc/profile

    清空当前内存中的历史命令

    [root@centos-01 ~]# history -c
    [root@centos-01 ~]# history
        1  history
    [root@centos-01 ~]# cat .bash_history

    可以看到,文件中的历史命令并没有清空


    修改历史命令保存的格式

    [root@centos-01 ~]# history
        1  history
        2  cat .bash_history 
        3  vi /etc/profile
        4  source /etc/profile 
        5  source /etc/profile
        6  $HISTSIZE
        7  echo $HISTSIZE
        8  history
    [root@centos-01 ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
    [root@centos-01 ~]# echo $HISTTIMEFORMAT
    %Y/%m/%d %H:%M:%S
    [root@centos-01 ~]# history 
        1  2018/05/06 00:11:46 history
        2  2018/05/06 00:12:57 cat .bash_history 
        3  2018/05/06 00:16:12 vi /etc/profile
        4  2018/05/06 00:18:16 source /etc/profile 
        5  2018/05/06 00:18:34 source /etc/profile
        6  2018/05/06 00:19:41 $HISTSIZE
        7  2018/05/06 00:19:57 echo $HISTSIZE
        8  2018/05/06 00:20:27 history
        9  2018/05/06 00:24:36 HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
       10  2018/05/06 00:24:54 echo $HISTTIMEFORMAT
       11  2018/05/06 00:28:57 history

    在新打开的终端中,再次查看环境变量HISTTIMEFORMAT

    [root@centos-01 ~]# echo $HISTTIMEFORMAT
    
    [root@centos-01 ~]#

    发现之前修改环境变量HISTTIMEFORMAT,只对当前终端有效,对其他终端无效。


    要想使设置的环境变量HISTTIMEFORMAT有效,可以编辑/etc/profile文件。

    [root@centos-01 ~]# vim /etc/profile

    可以在HISTSIZE=5000下面另起一行,添加

    HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "

    保存退出

    [root@centos-01 ~]# source !$
    source /etc/profile

    再新打开一个终端,查看环境变量HISTTIMEFORMAT

    [root@centos-01 ~]# echo $HISTTIMEFORMAT
    %Y/%m/%d %H:%M:%S

    永久保存历史命令,可以增加隐藏权限

    chattr +a ~/.bash_history

    • !!”连续两个‘!’,表示执行上一条指令
    [root@centos-01 ~]# ls
    anaconda-ks.cfg
    [root@centos-01 ~]# !!
    ls
    anaconda-ks.cfg
    • “!n”(n是数字),表示执行历史命令中第n条指令。例如“!1002”,表示执行历史命令中第1002条命令。

    • “!字符串”(字符串大于等于1),倒着找历史命令中第一个以该字符串开头的命令。例如“!echo”,表示执行历史命令中最近一次以“echo”开头的指令。

  • 相关阅读:
    LOL 计蒜客
    cf1486 D. Max Median
    P3567 [POI2014]KUR-Couriers
    dp 求物品组合情况
    黑暗爆炸
    hdu5306 Gorgeous Sequence
    P4609 [FJOI2016]建筑师
    cf 1342 E. Placing Rooks
    重修dp-背包
    acwing 2154. 梦幻布丁
  • 原文地址:https://www.cnblogs.com/Genesis2018/p/8999161.html
Copyright © 2011-2022 走看看