it-swarm-es.com

¿Cómo tener un historial de comando separado para diferentes sesiones para el mismo usuario?

Me enfrento a este tema en algunos de los servidores UNIX. Cuando abra la sesión diferente para el mismo usuario, la sesión de comandos es compartida por toda la sesión. Esto crea problemas si por error, presiono Ctrl-P o up arrow y solo presione ENTER. En una ocasión termino corriendo rm -rf * Afortunadamente estaba en el directorio donde no tengo permisos para eliminar archivos.

¿Cómo tener un historial de comando separado para diferentes sesiones para el mismo usuario? La mayoría de las veces estoy usando Shells KSH y TCSH.

8
Hemant

De los ksh FAQ :

Q1. ¿Cómo obtengo archivos de historia separados para Shell?

A1. KSH utiliza un archivo de historial compartido para todas las conchas que usan el mismo nombre de archivo de historial. Esto significa que los comandos ingresados ​​en una ventana serán vista por conchas en otras ventanas. Para obtener ventanas separadas, la variable HISTFILE debe configurarse en un nombre diferente antes de que se cree el primer comando HISTORIE.

8
theotherreceive

Puedes añadir HISTFILE=~/.hist$$ para usted .profile. Esto debería generar un archivo único por sesión.

Terminarás con un gran número de .hist* Entonces te sugiero que los eliminen ocasionalmente.

11
Gert

Supongo que estás hablando de sesiones simultáneas; Separación de sesiones que se encuentren después del otro no es muy útil: nunca podrías usar su historia, porque todas las sesiones serían únicas. Si ese fuera el caso, probablemente estaría mejor en desactivar el historial de comandos.

Si estamos hablando de separar la sesión simultánea, le recomendaría que use bash. Estoy bastante seguro de que no estoy recibiendo el historial de comandos de dos sesiones simultáneas mezcladas con ella. Bash solo escribe historia a .bash_history En cierre de sesión, por lo que el historial de comandos no se mezclará hasta después del cierre de sesión. Siempre que el uso de Bash sea aceptable, ¿lo resolvería su problema?

2
wzzrd

Me gustaría agregar algo a la respuesta de Gert.

Gert's

Puede agregar histfile = ~/.hist $$ a su .profile. Esto debería generar un archivo único por sesión.

mina

Puede eliminar estos archivos automáticamente agregando lo siguiente.

trap 'rm ${HISTFILE}' exit

1
Robert Jacobs