Mais de uma vez, acidentalmente, executei vários comandos e poluí meu histórico do bash. Como fecho meu terminal sem salvar meu histórico do bash? Estou usando o Fedora.
Mais de uma vez, acidentalmente, executei vários comandos e poluí meu histórico do bash. Como fecho meu terminal sem salvar meu histórico do bash? Estou usando o Fedora.
Respostas:
O histórico do seu shell é salvo no arquivo indicado pela HISTFILEvariável Tão:
unset HISTFILE
Isso também se aplica ao zsh, mas não ao ksh, que continua salvando no arquivo indicado por $HISTFILEquando o shell é iniciado (e, inversamente, você decide salvar seu histórico no ksh depois de iniciar o shell).
Resposta curta:
Digite isso no prompt:
$ kill -9 $$
Isso matará seu shell imediatamente, sem que ele possa fazer algo como interceptar o sinal, salvar histórico, executar ~/.bash_logout, alertar sobre trabalhos interrompidos ou qualquer coisa boa.
Resposta longa:
Nota: Essas opções não são mutuamente exclusivas; eles podem ser usados de uma só vez.
Opção 1:
Se você é um perfeccionista quando se trata de bagunçar seu arquivo de histórico, o que você pode fazer é modificar a HISTIGNOREvariável para incluir vários comandos que você não deseja gravar. Por exemplo, se você adicionar HISTIGNORE='ls*:cd*'à sua ~/.bashrcinstância, qualquer instância lse cdnão será inserida no seu arquivo de histórico.
Opção 2:
Se você deseja controlar, comando por comando, quais comandos são deixados de fora do seu histórico, é possível definir HISTCONTROL='ignorespace'quais omitirão as linhas de comando que começam com um espaço. O uso ignorebothtambém omitirá as linhas repetidas. Em seguida, pressionar a barra de espaço antes de inserir um comando fará com que ele não seja exibido no seu arquivo de histórico.
Opção 3:
Se você quiser fazê-lo assim que fechar o terminal, o shell sai imediatamente, você pode trapsinalizar que o programa do terminal envia o shell ( xtermpor exemplo, envia SIGHUPe aguarda a saída do shell) e sair sem salvar o histórico quando recebe este sinal. Adicione isso ao seu ~/.bashrc:
# don't record history when the window is closed
trap 'unset HISTFILE; exit' SIGHUP
kill -9para qualquer coisa, exceto situações terríveis em que tudo mais falhou.
Estou surpreso ao ver que ninguém sugeriu history -cimediatamente antes exit. IINM (não sou especialista) que fará bem.
history -rirá reler o arquivo do histórico, para que o salvamento se torne um não operacional.
Existem duas variáveis de ambiente que o bash usa para determinar o arquivo de histórico e quantas linhas gravar nele quando o shell sair.
Você pode jogar fora o histórico da sua sessão com um destes (definido durante a sessão que deseja omitir do seu arquivo de histórico):
HISTFILE=/dev/null
ou
HISTSIZE=0
Qualquer um desses funciona bem no Bash no Fedora
Não sei por que você se importa tanto com seu histórico de comandos. Se você precisar de determinados comandos com frequência, poderá se divertir mais se definir aliases para eles, para recuperá-los com duas teclas pressionadas, em vez de precisar procurá-los no histórico.
Eli já deu a resposta correta para o Bash, que deve ser definida HISTSIZE=0.
Eu apenas adicionaria o método para fazê-lo na tela GNU . Pressione Ctrl+A(sequência de escape da tela) seguida por :scrollback 0. Isso excluirá o histórico de rolagem para trás. Agora você pode fazer imediatamente :scrollback 15000para redefinir o tamanho do buffer de rolagem para trás.
screen(1)?
scrollback=0.
Ctrl+a Hnem Ctrl+a :clearirá remover história. Você precisa Ctrl+a :scrollback 0. Você pode testar você mesmo. Inicie uma nova sessão de tela. Agora faça um cat /etc/passwd. Agora, execute um dos procedimentos acima - Ctrl+a Hou Ctrl+a :clear. Agora, tente copiar do buffer de tela, donig a Ctrl+a [seguido pela seta para cima para subir e ver até onde você pode copiar. Se você fez um Ctrl+a :scrollbackseguido de a clear, você iria apenas até onde pode ver na janela atual, pois não haverá buffer de rolagem.
set HISTFILEpróxima vez que fizer login? (apenas dizer se isso é correto ou incorreto)