Ejecuto rutinariamente varias screen
sesiones en mis escritorios y servidores Linux.
Un problema con esto es que cuando grep
reviso mi historial de comandos, encuentro que emití un comando en una sesión diferente y tengo que desconectar y volver a adjuntar para obtener ese elemento del historial.
¿Es posible 'forzar' que las historias actualizadas de manera diferente de múltiples sesiones vayan a una historia central?
Respuestas:
Hay dos cosas que debes hacer:
shopt -s histappend
en su.bashrc
. Esto se agregará al archivo de historial en lugar de sobrescribirlo..bashrc
, insertarPROMPT_COMMAND="$PROMPT_COMMAND;history -a; history -n"
y el archivo de historial se volverá a escribir y volver a leer cada vez que bash muestra el mensaje.EDITAR: Gracias a e-t172 por el
history -n
trucofuente
PROMPT_COMMAND
definido previamente, así que tuve que usarPROMPT_COMMAND="history -a; history -n"
para evitar errores.No lo use
history -a; history -n
, no funciona como esperaba y le dejará con muchos comandos duplicados y fuera de orden en su historial. Una solución que funciona generalmente como se espera es la siguiente:Usar una nueva línea en lugar de un punto y coma también es una forma corta de tratar el problema de punto y coma faltante / duplicado con PROMPT_COMMAND.
fuente
export
no es necesario. Debido a que se supone que las opciones de shell interactivas se establecen desde las~/.bashrc
cuales se llama desde cada shell secundario, la herencia no es necesaria.PROMPT_COMMAND="history -a; history -c; history -r; $PROMPT_COMMAND"
en su lugar?PROMPT_COMMAND no está definido por defecto en algunas distribuciones. Por ejemplo, se define en Arch, pero no en Debian.
Tengo un bashrc en mi Dropbox que uso mientras salto de distribución, e incluye:
fuente
PROMPT_COMMAND="$PROMPT_COMMAND; history -a; history -n"
PROMPT_COMMAND="$PROMPT_COMMAND"$'\n''history -a; history -n'