web-development-kb-pt.site

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

Eu enfrento esse problema em alguns dos servidores UNIX. Quando eu abro a sessão diferente 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-P ou up arrow e apenas pressione ENTER. Em uma ocasião eu acabo correndo rm -rf * Felizmente eu estava no diretório onde não tenho permissões para remover arquivos.

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

8
Hemant

Do KSH FAQ :

Q1. Como faço para obter arquivos de histórico separados para shell?

A1. O KSH usa um arquivo de histórico compartilhado para todos os shells que usam o mesmo nome do arquivo de histórico. Isso significa que os comandos inseridos em uma janela serão vistos por shells em outras janelas. Para obter o Windows separado, a variável histfile precisa ser definida como um nome diferente antes que o primeiro comando do histórico seja criado.

8
theotherreceive

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

Você vai acabar com um grande número de .hist* Então eu sugiro que você remova-os ocasionalmente.

11
Gert

Estou supondo que você esteja falando de sessões simultâneas; Separando as sessões que são depois que uns dos quais não são muito úteis: você nunca seria mais capaz de usar a história, porque todas as sessões seriam únicas. Se esse fosse o caso, provavelmente seria melhor desabilitar o histórico de comandos.

Se estamos falando de separar a sessão simultânea, eu recomendo que você use o bash. Tenho certeza de que não estou recebendo o histórico de comando de duas sessões simultâneas misturadas com ela. Bash só escreve o histórico para .bash_history no logout, então o histórico de comandos não será misturado até o logout. Desde que o uso de bash seja aceitável, isso resolveria seu problema?

2
wzzrd

Mal adicionar algo à resposta de Gert.

Gert's

Você pode adicionar histfile = ~/.hist $$ para o seu .Profile. Isso deve gerar um arquivo exclusivo por sessão.

me

Você pode remover esses arquivos automaticamente adicionando o seguinte.

trap 'rm ${HISTFILE}' exit

1
Robert Jacobs