zoukankan      html  css  js  c++  java
  • Linux命令行history

    概述

    • 当执行命令后,系统默认会在内存记录执行过的命令
    • 当用户正常退出时,会将内存的命令历史存放对应历史文件中,默认是~/.bash_history
    • 登录shell时,会读取命令历史文件中记录下的命令加载到内存中
    • 登录进shell后新执行的命令只会记录在内存的缓存区中;这些命令会用户正常退出时“追加”至命令历史文件中
    • 利用命令历史。可以用它来重复执行命令,提高输入效率

    命令:history

    history [-c] [-d offset] [n]
    history -anrw [filename]
    history -ps arg [arg...]
    
    • -c: 清空命令历史
    • -d offset: 删除历史中指定的第offset个命令
    • n: 显示最近的n条历史
    • -a: 追加本次会话新执行的命令历史列表至历史文件
    • -r: 读历史文件附加到历史列表
    • -w: 保存历史列表到指定的历史文件
    • -n: 读历史文件中未读过的行到历史列表
    • -p: 展开历史参数成多行,但不存在历史列表中
    • -s: 展开历史参数成一行,附加在历史列表后

    命令历史相关环境变量

    环境变量可以 export 变量名="值" 形式存放在 /etc/profile 或 ~/.bash_profile

    • HISTSIZE:命令历史记录的条数
    • HISTFILE:指定历史文件,默认为~/.bash_history
    • HISTFILESIZE:命令历史文件记录历史的条数
    • HISTTIMEFORMAT="%F %T whoami" 显示时间和用户
    • HISTIGNORE="str1:str2*:…" 忽略str1命令,str2开头的历史
    • HISTCONTROL:控制命令历史的记录方式
      • ignoredups 是默认值,可忽略重复的命令,连续且相同为“重复”
      • ignorespace 忽略所有以空白开头的命令
      • ignoreboth 相当于ignoredups, ignorespace的组合
      • erasedups 删除重复命令
    [root@centos8 ~]#cat .bash_profile
    # .bash_profile
    # Get the aliases and functions
    if [ -f ~/.bashrc ]; then
    . ~/.bashrc
    fi
    # User specific environment and startup programs
    PATH=$PATH:$HOME/bin
    export PATH
    export HISTCONTROL=ignoreboth
    export HISTTIMEFORMAT="%F %T "
    [root@centos8 ~]#history
    1 2019-12-13 08:39:05 ls /data
    2 2019-12-13 08:39:05 date
    3 2019-12-13 08:39:05 vie0
    4 2019-12-13 08:39:05 nano .bash_profile
    5 2019-12-13 08:39:05 exit
    

    给history添加时间戳

    将export HISTTIMEFORMAT="%F %T " 写进~/.bash_profile里即可

    [root@C8-1 ~]# export HISTTIMEFORMAT="%F %T `whoami`"
    [root@C8-1 ~]# history
        1  2020-06-15 22:53:36 rootdmidecode|grep “System Information” -A9|egrep “Manufacturer|Product|Serial”
        2  2020-06-15 22:53:36 rootcat /etc/redhat-release
        3  2020-06-15 22:53:36 rootshutdown ?
        4  2020-06-15 22:53:36 roothelp shutdown
        5  2020-06-15 22:53:36 rootshutdown -h
        6  2020-06-15 22:53:36 rootshutdown -c
        7  2020-06-15 22:53:36 rootshutdown -s
        8  2020-06-15 22:53:36 rootshutdown now
    
    

    重复前一个命令方法

    重复前一个命令使用上方向键,并回车执行
    按 !! 并回车执行
    输入 !-1 并回车执行
    按 Ctrl+p 并回车执行
    !:0

    输入叹号和命令编号重复执行history记录的命令

      383  2020-06-16 10:04:14 root     pts/0        2020-06-16 09:58 (192.168.50.200) ll
      384  2020-06-16 10:11:58 root     pts/0        2020-06-16 09:58 (192.168.50.200) echo file{1,3,5}
      385  2020-06-16 10:12:22 root     pts/0        2020-06-16 09:58 (192.168.50.200) echo {1..35}
      386  2020-06-16 10:12:34 root     pts/0        2020-06-16 09:58 (192.168.50.200) echo {a..z}
      387  2020-06-16 10:12:40 root     pts/0        2020-06-16 09:58 (192.168.50.200) echo {a..Z}
    ……
      401  2020-06-16 10:47:56 root     pts/0        2020-06-16 09:58 (192.168.50.200) history
    [10:47:56 root@C8[ 2020-06-16DIR]#!383
    ll
    total 0
    -rw-r--r--. 1 root root 0 Jun 16 10:03 C8_2020-06-16.log
    -rw-r--r--. 1 root root 0 Jun 16 10:04 C8_root_2020-06-16.log
    
    * * * 胖并快乐着的死肥宅 * * *
  • 相关阅读:
    div错位解决IE6、IE7、IE8样式不兼容问题
    DIV背景半透明文字不半透明的样式
    Div 自适应屏幕大小
    mysql 设置外键 四大属性 CASCADE SET NULL NO ACTION RESTRICT 理解
    msyql 主从配置
    全国最新区划数据-四级-省-市-县(区)-乡(镇)
    ThinkPHP3.2 伪静态配置
    色彩网站
    Javascript php 异常捕获
    jQuery 操作大全
  • 原文地址:https://www.cnblogs.com/bpzblog/p/13121930.html
Copyright © 2011-2022 走看看