Segundo terminal sem histórico

4

Não sei se é possível, mas gostaria de usar um segundo terminal (como terminador) e não usar o atual $HISTFILE . Um terminal amnésico.

    
por billyocean 20.03.2017 / 09:27

2 respostas

8

Depende do shell. No Bash, você pode controlar o histórico de várias formas :

  • Desative o histórico de salvamento usando set +o history e reative-o com set -o history (observe o mais e o menos invertido). Com o histórico desativado, os comandos inseridos não serão salvos no registro do histórico, mas os anteriores estarão disponíveis.

  • Defina o arquivo usado para salvar o histórico, definindo HISTFILE ( HISTFILE=~/somehistoryfile ). Você pode desativá-lo completamente desativando a variável com unset HISTFILE . Se você desabilitar o arquivo de histórico, ainda terá acesso ao histórico de tempo de execução enquanto o shell estiver em execução. Você também pode definir HISTFILESIZE para controlar a quantidade de comandos salvos no arquivo.

  • Evite salvar determinados comandos no histórico usando HISTCONTROL e / ou HISTIGNORE . A definição de HISTCONTROL para ignorespace dirá ao shell para não salvar linhas de comando iniciando com um espaço. HISTIGNORE pode conter padrões de comandos para não salvar no histórico. por exemplo. HISTIGNORE='ls:ls *' impediria salvar linhas que contenham apenas ls ou ls , um espaço e qualquer coisa depois disso.

Para um shell "amnesiac", você precisaria aplicar uma dessas configurações manualmente ao abrir o shell ou defini-las em algum script de inicialização do shell.

Uma opção seria criar, digamos ~/.bashrc.nohist com:

# include the standard startup files as --rcfile will override them
if [ -f /etc/bash.bashrc ] ; then
    . /etc/bash.bashrc 
fi
if [ -f ~/.bashrc ] ; then
    .  ~/.bashrc
fi
# disable history completely
HISTSIZE=0
# disable the history file
unset HISTFILE
# we could even set a reminder in the prompt
PS1="[nohist] $PS1"

e, em seguida, organize o shell para ser iniciado com bash --rcfile ~/.bashrc.nohist . Ajuste o script a gosto.

    
por 20.03.2017 / 10:02
2

Para não gravar o histórico, você pode digitar unset HISTFILE na sessão atual (para o bash)

    
por 20.03.2017 / 09:58