linux随笔-linux多个会话同时执行命令后history记录不全的解决方案转发

martin001 martin001     2022-11-24     202

关键词:

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

问题场景
那么问题来了,假若之前history命令记录为c0,用户先打开了shell终端a,执行了一部分命令c1,又打开了一个shell终端b,又执行了一部分命令c2.
问题1.终端a执行的这部分命令终端b上看不到。
问题2.终端a正常退出,相关命令会写入到~/.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‘
---------------------
作者:Alioo-壞人
来源:CSDN
原文:https://blog.csdn.net/hl_java/article/details/80847488
版权声明:本文为博主原创文章,转载请附上博文链接!

JSch 在一个会话中执行多个 linux 命令

】JSch在一个会话中执行多个linux命令【英文标题】:JSchexecutingmultiplelinuxcommandsinonesession【发布时间】:2015-06-1118:08:49【问题描述】:我正在做一个项目,我打算在其中创建一个JavaGUI应用程序,该应用程序连接到ssh服务器并在服... 查看详情

tmux简单使用(代码片段)

...功能更强大的tmuxTmux作用它允许在单个窗口中,同时访问多个会话。这对于同时干多件事有很大用处可以在不同的窗口中,访问已存在的会话。并可以进行实时共享会话它不会随着窗口关闭或者Session端口而关闭会话统一由Tmux维... 查看详情

linux命令随笔

mkdir:创建文件或文件夹的命令.举例:mkdir123.txt      mkdir123mkdir-p 文件/文件夹:在当前路径下已存在的文件夹不再创建,并跳过提示.举例:mkdir-p jason1..10mkdir-m文件/文件夹权限:在创建文件/文件夹... 查看详情

linux中有关进程管理的命令

...ll、sleepLinux是一个多用户、多任务操作系统。这就意味着多个用户会使用同一个操作系统,每个用户又可以同时运行多个命令。命令的执行就是通过进程来实现的。进程就是程序的一次执行过程。在提示符后输入一个命令或... 查看详情

linux下shell脚本执行多个命令的方法

1.每个命令之间用;隔开说明:各命令的执行给果,不会影响其它命令的执行。换句话说,各个命令都会执行,但不保证每个命令都执行成功。2.每个命令之间用&&隔开说明:若前面的命令执行成功,才会去执行后面的命令。... 查看详情

linux系统在终端中如何同时运行多个任务

如何在终端界面下执行多个任务:我们可以在任何命令后面加上&来标明该命令后台执行、也就是你前台还有个命令行供你干其它事、比如apt-getinstallruby&这时你就可以使用jobs来查看所有正在运行的任务,如果你要执行其它的任务... 查看详情

linux怎样一次运行多个shell脚本?

参考技术Ainux下shell脚本执行多个命令的方法\\x0d\\x0a1.每个命令之间用;隔开\\x0d\\x0a说明:各命令的执行给果,不会影响其它命令的执行。换句话说,各个命令都会执行,但不保证每个命令都执行成功。\\x0d\\x0a2.每个命令之间用&&... 查看详情

linux下tmux的使用(代码片段)

...f0c;将它们彻底分离。它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。它可以让新窗口"接入"已经存在的会话。它允许每个会话有多个连接窗口,因此可以多人实时共享会话。它还... 查看详情

awk-f选项同时指定多个符号做为分割符时遇到空格坑,题目:请执行命令取出linux中eth0的ip地址

...个题讲过awk-F选项可以指定输入分割符,也可以同时使用多个符号作为分割符对文件进行切割,所以我决定先使用awk-F以前awk-F同时指定多个分割符的例子:[[email protected] ~]# cat oldboy.txt 查看详情

♠linux命令随笔(代码片段)

目录文件操作流量包找查flag文件操作将文件内容转换成base64解码eg:catflag.txt|base64-deg:base64-dflag.txt用法:base64[选项]...[文件]-d,--decode 解码数据-i,--ignore-garbag 解码时忽略非字母字符-w,--wrap=字符数 在指定的字符数后自动换行... 查看详情

怎样在linux命令行同时运行多个相同程序

参考技术A放到后台运行cmd&cmd&cmd& 查看详情

linux记录用户操作命令

...的时间。2、没有记录用户登陆的IP3、同一个用户的不同会话,记录到同一个文件中;无法根据不同会话分别记录。优化:1、每次用户登陆后,根据用户账号、登陆IP和登陆时间确定存储文件名。这样除非同一个用户,同一个IP,... 查看详情

在一行中执行组合多个 Linux 命令

】在一行中执行组合多个Linux命令【英文标题】:ExecutecombinemultipleLinuxcommandsinoneline【发布时间】:2012-10-1603:32:17【问题描述】:我正在尝试将多个linux命令合并到一行中以执行部署操作。例如cd/my_folderrm*.jarsvncopathtorepomvncompilepack... 查看详情

linux中实现延迟45分钟后执行命令,写了一段c程序,实现延迟,接下来,该如何执行命令呢,也就是shell

目标:45分钟后执行命令!source/mnt/us/DK_System/startdk.sh&目前思路:写了一段c程序延迟45分钟#include<stdio.h>#include<stdlib.h>#include<unistd.h>intmain()inta;a=100;printf("hello\n");sleep(2400000);printf("Whatisyourname\n");syste... 查看详情

linux终端命令神器--screen命令

...、输入、输出和窗口缓存。会话共享:Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性。安装screen:#CentOSyuminstallscreen#Debian/UbuntuaptinstallscreenAttached:表示当前screen正在作为主终端使用,为活跃... 查看详情

如何在 Java 的 linux 终端中交互地执行多个命令?

】如何在Java的linux终端中交互地执行多个命令?【英文标题】:HowtoexecutemultiplecommandsinteractivelyinlinuxterminalfromJava?【发布时间】:2016-07-2806:37:52【问题描述】:我想在linuxterminal中运行多个命令,如下所示:1.我会运行假设torch并... 查看详情

linux一个脚本可以实现让多个linux服务器执行相同的命令吗?

可以,先把命令做成一个目标命令脚本,做一个批量脚本,把目标命令脚本传输到各个服务器上分别执行参考技术A可以的,集群中这个很常见。 参考技术B1、ssh2、python本回答被提问者采纳 查看详情

linux命令行执行export后如何取消

...用它。参考技术A  晓风残月博客园首页联系管理随笔-298文章-0评论-9阅读-58万liunx中如何删除export设置的环境变量export命令功能说明:设置或显示环境变量。语  法:export[-fnp][变量名称]=[变量设置值]补充说明:在shell... 查看详情