Em que situações um usuário não deixaria o shell registrar seu comando no histórico?

18

Se eu adicionar export HISTCONTROL=ignorespaceem .bashrc, festa não irá gravar quaisquer comandos que têm espaços em branco antes deles na história. Mas eu não entendo sob quais situações será útil. Alguém pode dar alguns exemplos?

agressivo
fonte

Respostas:

32

Se seus comandos contiverem senhas ou outras informações confidenciais

Ulrich Dangel
fonte
4
@acgtyrant, você nunca inseriu um comando com uma senha. A idéia é se você fornecer uma senha na linha de comando basta colocar um espaço antes o comando e ele não vai ficar gravado naHISTFILE
Ulrich Dangel
3
Os comandos mysql podem aceitar a senha do usuário com o qual você está conectado ao banco de dados; há muitos para listar aqui. O argumento que @Ulrich Dangel fez está no local. Se você estiver digitando comandos com senhas, não os deixe no histórico.
slm
5
Também acrescentarei que, quando você é administrador, geralmente não deseja o histórico, porque, se um invasor entrar no sistema, ele deixa um rastro de onde as coisas estão na caixa e que tipos de comandos normalmente são executados na caixa.
slm
11
Se você não possui nenhum comando com informações confidenciais, não é o público-alvo desse recurso. Nem todos os recursos de um programa são usados ​​por todos os usuários. (Essa é uma razão pela qual os programas têm "fluência recurso": todo mundo usa uma dúzia de recursos, mas uma dúzia diferente, e maravilhas que todos os outros cruft inútil é para.)
Kaz
11
Lembre-se de que os argumentos da linha de comando geralmente são visíveis psou examinados /proc. Alguns sistemas também tornam o ambiente visível para outros usuários. Um arquivo do modo 0700 em um tmpfs, OTOH, não tem esses problemas.
derobert
26

Outro uso é para comandos que você não deseja repetir acidentalmente, como rm -rf *. Faço uso extensivo da história e, ocasionalmente, bato Enteracidentalmente quando o comando que recuperei da história não é o que eu estava procurando. É verdade que a solução real é sempre ler os comandos cuidadosamente antes de executá-los. Mas, sendo um pouco desajeitado, prefiro também manter comandos particularmente destrutivos fora da minha história como uma precaução extra.

depquid
fonte
14
Eu acrescentaria que eu achei muito conveniente ignorar mais alguns comandos perigosas, mesmo se eu esquecer de incluir um espaço: HISTIGNORE=" *:rm -f*:rm -r*:*--force*". Isso evita rm -fe rm -ré salvo na história, assim como em qualquer coisa que contenha --force.
Petr Pudlák
Esta é a / uma solução real. Não deixe facas por aí, dizendo que a solução real é não se cutucar com elas. Como diz o velho provérbio: “você não pode desamarrar o rio” - ou seja, não limpe o rio, em vez disso, pare de despejar lixo nele.
CTRL-ALT-DELOR
6

Um ex-colega meu fez isso com mais cde lscomandos, para gravar apenas os comandos "úteis".

Jan Fabry
fonte
3
Eu quase nunca executar nethack no trabalho sem fazer isso ... (ou superior, ou o homem ...)
lotsoffreetime
Na verdade, alguém pode adicionar export HISTCONTROL=ingoredupsem .bashrcdizer a festa não para armazenar duplicatas assim fazer história mais claras. Você pode ler este artigo
acgtyrant
2

Dados privados. No momento em que a aplicação da lei arrombar sua porta, você pode não querer que eles encontrem resíduos de

  • de onde você deseja o último pron ^ Wwarez
  • quais filmes você recentemente copiou e alimentou em um torrent
  • senhas passadas através de argumentos para programas de criptografia / descriptografia

Sério, é provavelmente o equivalente a uma configuração de privacidade rigorosa no seu navegador, impedindo-o de gravar o histórico de surf.

Jens
fonte
0

Se você controla a versão .bash_history , é uma maneira útil de marcar certos comandos como "especiais". Combinado com o histórico-search- * , é uma maneira de pressionar Space+ m+ Up+ Enterpara executar make --directory ~/dev/tilde cleane Space+ e+ Up+ Enterpara executar editor ~/.bash_history, os quais eu uso para a manutenção do arquivo de histórico do Bash.

l0b0
fonte