Como ter um histórico de comandos separado para sessões diferentes para o mesmo usuário?

Como ter um histórico de comandos separado para sessões diferentes para o mesmo usuário?

Eu enfrento esse problema em alguns servidores Unix. Quando abro sessões diferentes para o mesmo usuário, o histórico de comandos é compartilhado por toda a sessão. Isso cria problemas se, por engano, eu pressionar Ctrl-Pou up arrowe apenas pressionar Enter. Em uma ocasião acabo correndo rm -rf *felizmente por estar em um diretório onde não tenho permissão para remover arquivos.

Como ter um histórico de comandos separado para sessões diferentes para o mesmo usuário? Na maioria das vezes estou usando shells ksh e tcsh.

Responder1

Você pode adicionar HISTFILE=~/.hist$$ao seu arquivo .profile. Isso deve gerar um arquivo exclusivo por sessão.

Você acabará com um grande número, .hist*então sugiro que você os remova ocasionalmente.

Responder2

Deperguntas frequentes sobre ksh:

Q1. Como obtenho arquivos de histórico separados para o shell?

A1. ksh usa um arquivo de histórico compartilhado para todos os shells que usam o mesmo nome de arquivo de histórico. Isso significa que os comandos inseridos em uma janela serão vistos pelos shells em outras janelas. Para obter janelas separadas, a variável HISTFILE precisa ser definida com um nome diferente antes que o primeiro comando de histórico seja criado.

Responder3

Presumo que você esteja falando de sessões simultâneas; separar sessões uma após a outra não é muito útil: você nunca mais poderá usar seu histórico, porque todas as sessões seriam únicas. Se fosse esse o caso, provavelmente seria melhor apenas desabilitar o histórico de comandos.

Se estamos falando sobre separar sessões simultâneas, recomendo que você use o Bash. Tenho certeza de que não estou misturando o histórico de comandos de duas sessões simultâneas. O Bash só grava o histórico no .bash_historylogout, portanto, o histórico de comandos não será misturado até depois do logout. Desde que o uso do Bash seja aceitável, isso resolveria o seu problema?

Responder4

Você poderia usartela. Eu também fiz umvariável que foi definida pelo meu perfil do konsole e deu a cada sessão um arquivo de histórico diferente, apenas maneiras em que consigo pensar.

informação relacionada