首页 > 其他分享 >多个会话同时执行命令history记录不全的解决方案

多个会话同时执行命令history记录不全的解决方案

时间:2023-07-20 19:33:53浏览次数:41  
标签:执行命令 命令 写入 会话 终端 c1 bash history

基本认识

linux默认配置是当打开一个shell终端后,执行的所有命令均不会写入到\~/.bash\_history文件中,只有当前用户退出后才会写入,这期间发生的所有命令其它终端是感知不到的。

问题场景

那么问题来了,假若之前history命令记录为c0,用户先打开了shell终端a,执行了一部分命令c1,又打开了一个shell终端b,又执行了一部分命令c2.\ 问题1.终端a执行的这部分命令终端b上看不到。\ /.bash_history文件中(c1命令也会写入,即c0+c1),等到终端b正常退出后,相关命令也会写入到/.bash\_history文件中,注意这个时候终端b写入的内容为c0+c2,也即c1记录会丢失!!!

解决方案

~/.bashrc 并执行 . ~/.bashrc即可

# format history
# save in ~/.bashrc
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S  `whoami`@${USER_IP}: "
export HISTFILESIZE=1000000
export PROMPT_COMMAND="history -a; history -r;  $PROMPT_COMMAND"
shopt -s histappend
#bind '"\e[A": history-search-backward'
#bind '"\e[B": history-search-forward'

第一行是获取USER\_IP也就是会话的ip

第二行是设置history的时间格式,这里设置的格式为:history序号 2018-09-29 19:33:59  root\@192.168.25.1: history

第三行设置的是history可以存放的历史命令最多可以存放1000000行

第四行 history -a 追加本次会话新执行的命令到.bash\_history中也就是内存中的命令写入到历史文件中,history -r 读取历史文件中的所有历史命令到内存中的历史列表,即使内存中的列表中已经存在这条历史

第五行 打开histappend选项,将其修改为on 意为,推出这个回话后,回想shell中发送一个sighup的信号,告诉他我退出了

标签:执行命令,命令,写入,会话,终端,c1,bash,history
From: https://blog.51cto.com/u_15227402/6790286

相关文章

  • android 微信会话列表实现
    Android微信会话列表实现1.简介本文将教授如何实现Android微信会话列表的功能。微信会话列表是一个常见的功能,它显示了用户与其他人或群组的聊天会话列表,用户可以点击进入特定的聊天会话。2.实现步骤下面是实现Android微信会话列表的流程,我们将用表格形式展示每个步骤和......
  • Navicat会话解析取证小程序
    美亚审核也太慢了。。干脆先发出来得了一个简单的Navicat保存的会话解析小程序,数据从注册表当中提取,可以解决之前同类型分析工具需要ncx文件的痛点。对大佬的java脚本重构了半天,上传后发现早有人发了py3的版本,哭晕。。不过我也不高兴换上去了,就用我那挫挫的脚本就够用了效果如......
  • go通过docker sdk进入容器执行命令
    代码部分packagemainimport( "context" "fmt" "io" "os" "github.com/docker/docker/api/types" "github.com/docker/docker/client")funcmain(){ //设置远程Docker守护进程的地址 remoteDockerURL:=&quo......
  • 【笔记整理】使用Session会话保持
    importrequestsif__name__=='__main__':#Session对象实现了客户端和服务器端的每次会话保持功能。session=requests.Session()resp=session.get("http://www.baidu.com")#使用Session会自动携带cookie每次请求后的cookieresp2=session.g......
  • IoTOS-v1.5.3 新增 智能诊断&会话记录导出
    IoTOS v1.5.3     一、新增智能诊断       智能诊断功能:    智能诊断会根据不同上游接口能力开放提供接近官方甚至比官方更加完善的智能诊断功能。    目前还原OneLink官方智能诊断功能包括动效、诊断建议等可供诊断的接口基本全部覆盖;(卡状态、......
  • ubuntu history 历史命令条数设置 显示日期
    Linux版本中,支持查看历史命令。0.前言Linux不同的发行版的设置的文件也不一样。Ubuntu:vim~/.bashrcCentOS:vim~/.bashrc或vim/etc/profile下面命令告诉你,历史命令保存在哪个文件:echo$HISTFILE历史命令保存在:~/.bash_history文件中1.修改默认历史条数1)查......
  • 【shell】循环执行命令行
    在shell下面循环执行命令行,但不想用cron任务,只用纯粹的shell指令,要怎样实现呢。比如,现在要执行,查看当前目录下文件个数,及各文件的大小,要每隔5秒钟查看一次如果手动执行的话,要先输入ls|wc-l(查看当前目录下,文件的个数)然后再通过du-sh*来查看每个文件的大小如......
  • IIS部署createWebHistory路由模式的Vue项目
    接口使用NetCore,前端使用Vue3.+网站部署目录如下api(虚拟应用程序)webindex.html需要在服务器上按照URLRewrite下载地址:https://www.iis.net/downloads/microsoft/url-rewrite安装后在网站根目录下创建“web.config”文件,内容如下<?xmlversion="1.0"encoding="UTF-8"?......
  • 介绍Vue router的history模式以及如何配置history模式
    引言Vuerouter给我们提供了两种路由模式,分别是hash模式和history模式。其中默认是使用hash模式,即URL中带有一个#符号,但是处于业务或个人喜爱的差别,Vuerouter也提供了history模式。但是由于Vue是单页SPA应用,所以每个路由并没有对应的html文件。什么是history模式history模式特......
  • historyApiFallback的解释
    historyApiFallback是一个webpack-dev-server的配置选项,用于解决使用HTML5HistoryAPI实现的前端路由在开发环境下的问题。它的原理是将没有匹配到静态文件的请求重定向到指定的HTML文件,通常是前端应用程序的入口文件。具体原理如下:当使用webpack-dev-server启动开发服务器时......