
Me enfrento a este problema en algunos servidores Unix. Cuando abro una sesión diferente para el mismo usuario, toda la sesión comparte el historial de comandos. Esto crea problemas si por error presiono Ctrl-P
o up arrow
y simplemente presiono Enter. En una ocasión terminé ejecutando, rm -rf *
afortunadamente estaba en un directorio donde no tengo permisos para eliminar archivos.
¿Cómo tener un historial de comandos separado para diferentes sesiones para el mismo usuario? La mayor parte del tiempo uso shells ksh y tcsh.
Respuesta1
Puedes agregar HISTFILE=~/.hist$$
a tu .profile
. Esto debería generar un archivo único por sesión.
Terminarás con una gran cantidad de ellos, .hist*
por lo que te sugiero que los elimines de vez en cuando.
Respuesta2
Desde elpreguntas frecuentes sobre ksh:
P1. ¿Cómo obtengo archivos de historial separados para Shell?
A1. ksh usa un archivo de historial compartido para todos los shells que usan el mismo nombre de archivo de historial. Esto significa que los comandos ingresados en una ventana serán vistos por los shells de otras ventanas. Para obtener ventanas separadas, la variable HISTFILE debe configurarse con un nombre diferente antes de crear el primer comando de historial.
Respuesta3
Supongo que estás hablando de sesiones simultáneas; separar sesiones que se suceden una tras otra no es muy útil: nunca más podrás usar su historial, porque todas las sesiones serían únicas. Si ese fuera el caso, probablemente sería mejor que simplemente deshabilitaras el historial de comandos.
Si estamos hablando de separar sesiones simultáneas, te recomiendo que uses Bash. Estoy bastante seguro de que no obtengo el historial de comandos de dos sesiones simultáneas mezclado con él. Bash solo escribe el historial al .bash_history
cerrar sesión, por lo que el historial de comandos no se mezclará hasta después de cerrar sesión. Siempre que usar Bash sea aceptable, ¿eso resolvería su problema?
Respuesta4
Podrías usarpantalla. También hice unvariable que fue definida por mi perfil de consola y le dio a cada una de las sesiones un archivo de historial diferente, únicas formas que se me ocurren.