麒麟server11命令History的使用方法

📅 发布时间:2026/7/6 23:30:16 👁️ 浏览次数:
麒麟server11命令History的使用方法
一、基本查询与搜索1、搜索特定命令# 显示所有包含ssh的历史命令 history | grep ssh # 显示最近20条命令 history 20 # 显示第100-150条命令 history 100 1502、使用反向搜索CtrlR# 按 CtrlR 进入反向搜索模式 (reverse-i-search): # 输入关键字如ssh (reverse-i-search)ssh: ssh user192.168.1.100 # 继续按 CtrlR 向前搜索下一个匹配 # 按 Enter 执行按 CtrlC 取消二、快速执行历史命令1、通过编号执行# 执行历史记录中第n条命令 !n # 示例执行第1024条命令 !10242、通过反向引用执行# 执行上一条命令 !! # 或 !-1 # 执行倒数第n条命令 !-n # 示例执行倒数第三条命令 !-33、通过字符串匹配执行# 执行最近以ssh开头的命令 !ssh # 执行最近包含grep的命令 !?grep? # 执行最近以vim开头且包含conf的命令 !vim*conf三、历史记录操作1、清空历史记录# 清空当前会话的历史记录 history -c # 清空历史文件 history -c ~/.bash_history # 或 cat /dev/null ~/.bash_history2、删除特定历史记录# 删除第n条历史记录 history -d n # 删除多个记录 history -d 100 101 102 # 或 for i in {100..110}; do history -d 100; done3、保存历史记录# 立即将内存中的历史记录写入文件 history -a # 从历史文件中读取记录到当前会话 history -r # 追加历史文件到当前会话 history -n例如将当前会话历史记录写入 /data/history_log通过登录时间判断# 获取登录时间 login_time$(who -u | grep $(whoami) | grep -Eo ([0-9]{2}:){2}[0-9]{2} | head -1) # 如果HISTTIMEFORMAT已设置为包含时间可以过滤 history | grep -A 1000 $(date %F) $login_time /data/history_log手动录入# 查看当前会话的历史记录编号范围 history | tail -5 # 将当前会话的所有历史记录写入文件 history /data/history_log # 追加方式写入保留原有内容 history /data/history_log四、会话管理多会话历史记录同步# 编辑用户配置文件 vim ~/.bashrc # 实时同步历史记录 shopt -s histappend export PROMPT_COMMANDhistory -a; history -c; history -r; $PROMPT_COMMAND按会话保存历史记录# 编辑用户配置文件 vim ~/.bashrc # 为每个终端会话创建独立历史文件 export HISTFILE${HOME}/.bash_history.$(tty | sed s/\//-/g).$(date %Y%m%d)五、历史命令history增加执行时间显示要在server11的history命令中显示命令的执行时间可以设置HISTTIMEFORMAT环境变量。以下是具体配置方法1、临时生效当前会话直接在终端执行export HISTTIMEFORMAT%F %T 之后执行的命令会被记录时间但之前的历史命令不会显示时间。2、永久生效修改bashrc配置文件# 编辑用户配置文件 vim ~/.bashrc # 或使用nano nano ~/.bashrc在文件末尾添加# 设置历史命令时间格式 export HISTTIMEFORMAT%Y-%m-%d %T # 设置历史记录大小 export HISTSIZE5000 export HISTFILESIZE10000 # 忽略重复命令 export HISTCONTROLignoredups:erasedups保存后生效source ~/.bashrc