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

mb62c788fd198da mb62c788fd198da     2022-11-30     813

关键词:

基本认识
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

 

 


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

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

命令使用基础

1.命令基础1.1命令的结构UNIX/Linux命令的一般结构为:命令名 [-选项] [参数]选项是对命令的特别定义,用来选择一个命令的不同操作。以-开始,多个选项可以用一个-连起来,如:ls-l-a与ls-la相同。参数提供命令运行所需要... 查看详情

tmux简单使用(代码片段)

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

linux中有关进程管理的命令

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

linux基础--访问命令行(代码片段)

命令行概念命令行是基于文本的界面,可用于向计算机系统输入指令。Linux命令行由shell程序提供。红帽默认shell是bash,普通用户启动shell时默认提示符的结尾是$,超级用户root是#命令行的组成部分在shell提示符输入的... 查看详情

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

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

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

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

linux基础二:初识linux命令

 一、UNIX和Linux操作系统概述1.UNIX是什么  1)UNIX的定义:UNIX是一个计算机操作系统,一个用来协调、管理和控制计算机硬件和软件资源的控制程序。  2)UNIX操作系统的特点:多用户和多任务    a)多用户表示在同一时... 查看详情

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命令行同时运行多个相同程序

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

linux记录用户操作命令

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

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

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

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笔记:screen(代码片段)

...字模式画面。        用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。        在Screen环境下,所有的会话(session)都独立的运行,并拥有各自的编号、输 查看详情