Executar um comando do terminal sem salvá-lo em .bash_history no OS X?


19

Este site diz que no Linux você pode adicionar um spacecomando antes de um terminal para mantê-lo fora .bash_history.

Isso parece não funcionar no Mac OS X. Alguém sabe como executar um único comando no Terminal sem salvá-lo no histórico?

Eu não quero limpar a história.

insira a descrição da imagem aqui


adicionando um `` (espaço) antes de um comando terminal não mantê-lo fora da história
Warren

2
@warren Não, faz. Você só precisa ativar o recurso no bash.
goweon

@firebat - direita: Mas já que é algo que você tem de permitir, pode ou não pode trabalhar em todos os lugares :)
Warren

Respostas:


24

Adicione a seguinte linha ao ~ / .bashrc

export HISTCONTROL=ignorespace

Em seguida, source ~/.bashrcpara atualizar as configurações

Isso deve ativar esse recurso no bash. Se não funcionar, talvez você precise adicioná-lo ao ~ / .bash_profile em vez de ~ / .bashrc, já que o OS X os carrega de maneira um pouco diferente do linux, eu acho.


Como posso usar duas opções com isso? Eu quero usar export HISTCONTROL=erasedups,ignorespace, mas eu acho que a sintaxe não trabalho ...
CWD

2
export HISTCONTROL=erasedups:ignorespace
goweon

2
Mas eu acho que é realmenteexport HISTCONTROL=ignoredups:ignorespace
goweon

3
A configuração "ignoredups" ignora linhas repetidas. Digitar "ls" vinte vezes seguidas só acaba com um deles na história. No entanto, digitar "ls" e, em seguida, "ps" e "ls" novamente armazenará "ls" e "ps" todas as vezes - a menos que você tenha o bash 3 e defina "apagados". Se isso estiver definido, nenhuma duplicata será inserida no histórico do bash. - cyberciti.biz/faq/bash-for-loop-array
CWD

11
Isso não funciona para mim. Eu tentei tanto export HISTCONTROL=erasedups:ignorespace e export HISTCONTROL=ignoredups:ignorespacee mesmo export HISTCONTROL=ignoredups:ignoreboth. Mas o que recebo é uma única entrada para cada sessão, e não entre as sessões: ou seja, se um comando já estiver .bash_historyno início de uma sessão e for digitado novamente, será adicionado ao histórico (embora apenas uma vez para a sessão) . Como garantir que um comando que já esteja em `.bash_history ao iniciar o Terminal não seja adicionado se for inserido novamente?
Orome 23/04

1

Se você não está preocupado em manter a sessão ativa, isso pode funcionar:

kill -9 $$

Isso eliminará a sessão atual em vez de sair, o que [teoricamente] significa que seu histórico não será salvo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.