博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

History命令及其环境变量设置

Posted on 2021-01-31 21:11  zwj0319  阅读(991)  评论(0)    收藏  举报

History命令介绍

 

当执行命令后,系统默认会在内存记录执行过的命令,通过History命令,可以查看到系统管理员或普通用户在操作系统上执行过的命令操作,利用命令历史。可以用它来重复执行命令,提高输入效率

 

1.1工作原理

当执行命令后,系统默认会在内存记录执行过的命令,当用户正常退出时,会将内存的命令历史存放到历史文件中。再次登录shell时,会读取命令历史文件中记录的命令加载到内存中,登录进shell后新执行的命令只会记录在内存的缓存区中;这些命令会用户正常退出时"追加"至命令历史文件中

1.2History文件存放位置

    各用户家目录下的隐藏文件 ~/.bash_history

1.3 History环境变量配置文件

     全局:/etc/profile 各用户:~/.bash_profile

 

 

History命令用法

     History     option

    2.1命令选项(Options)

-C: 清空命令历史

-d offset: 删除历史中指定的第offset个命令

n: 显示最近的n条历史

-a: 追加本次会话新执行的命令历史列表至历史文件

-r: 读历史文件附加到历史列表

-w: 保存历史列表到指定的历史文件

-n: 读历史文件中未读过的行到历史列表

-p: 展开历史参数成多行,但不存在历史列表中

        -s: 展开历史参数成一行,附加在历史列表后

    2.2相关环境变量

        HISTSIZE:命令历史记录的条数

HISTFILE:指定历史文件,默认为~/.bash_history

HISTFILESIZE:命令历史文件记录历史的条数

HISTTIMEFORMAT="%F %T `whoami`" 显示时间和用户

HISTIGNORE="str1:str2*:…" 忽略str1命令,str2开头的历史

HISTCONTROL:控制命令历史的记录方式

        范例:使用户查看history时,可以看到各命令执行时间

        解决思路:定义用户家目录下的history配置文件~/.bash_profile

            

            T后面要有多几个空格,不然到时显示,时间会与命令逼在一起

            修改完配置文件后,需要使用命令.或者source filename ,才能生效

            

                效果图

    2.3 调用History里面的命令

        重复前一个命令:使用上方向键,并回车执行 = !! 并回车执行 = Ctrl+p 并回车执行

        重新调用前一个命令中最后一个参数:!$ = Esc, .(点击Esc键后松开,然后点击 . 键) = Alt+ .(按住Alt键的同时点击 . 键)

 

        执行前一条命令(去除参数): !:0

执行history命令输出对应序号n的命令 :!n

执行history历史中倒数第n个命令:!-n

重复前一个以"string"开头的命令:!string

重复前一个包含string的命令:!?string