Como posso excluir comandos salvos do Terminal?


16

Como todos sabem, o Mac OS X armazena todos os comandos que são executados no Terminal no próprio Terminal. No entanto, desejo excluir (por exemplo) os últimos 3 comandos do terminal. Como posso fazer isso?

Respostas:


12

O Mac OS não armazena nada em nenhum lugar.

bash, que é o shell executado no terminal, armazena o histórico de comandos.

O histórico do comando terminal é armazenado em um arquivo oculto no diretório do usuário chamado .bash_history

Isso significa que o arquivo é: /Users/{username}/.bash_history

Você precisa habilitar "Mostrar arquivos do sistema" para vê-lo (no menu "Visualizar" no localizador).

O arquivo é apenas uma lista textual de tudo que você digita no shell. Você pode abri-lo no TextEdit ou no seu editor de escolha.


Provavelmente, você deve fechar Terminal.apptodas as alterações recentes no arquivo antes de fazer alterações ou ele pode ser substituído por uma versão que Terminal.apptem na memória.


2
Os comandos não são armazenados em tempo real, mas somente quando o shell sai ou quando solicitado (por exemplo, history -aou history -w). Geralmente, os últimos comandos ainda não estão no arquivo.
Matteo

Opa, eu pretendi adicionar você provavelmente deve fechar todas as instâncias do terminal.app antes de editar este arquivo. Fixo.
Fake Name

19

Não é um recurso do Mac OS, mas um recurso de shell. Supondo que você esteja usando o bash (o padrão):

  • o histórico de comandos é armazenado na memória e persistido em um arquivo (geralmente ~/.bash_history)
  • você pode listar e editar o histórico com o historycomando

Com man bash(na SHELL BUILTIN COMMANDSseção) você encontrará a descrição das diferentes opções.

Você pode:

  • listar as entradas do histórico

    $ history
  • excluir todo o histórico

    $ history -c
  • excluir uma entrada específica

    $ history -d offset

ambas respostas estão corretas, eu escolhi o mais cedo um .. obrigado bro ..
JAHelia

em fazer história -c, diz fc: event not found: -c. Então eu abri manualmente o arquivo, excluí o conteúdo. Closed and reopened the terminale a história não existe agora.
inquisitivo

2

Para usuário do Mac Terminal

delete bash command history com o seguinte comando $ echo '' > ~/.bash_history

Para usuário Mac zsh

delete zsh command history com o seguinte comando $ echo ''> ~/.zsh_hostory


Observe que isso excluirá todo o histórico, e não apenas as últimas três linhas.
John N

0

Além da Edição de texto, também, se você é da velha escola, use 'vi' para editar o arquivo e remover os comandos ofensivos. Editores de linha de comando semelhantes são emacs (que compartilha atalhos de edição com o OS X) ou nano (que simplificou a navegação e a ajuda visual sobre como salvar e sair do editor sem precisar de uma folha de referência) .


11
Isso seria coberto por "Você pode abri-lo no TextEdit ou seu editor de escolha ", que está na resposta aceita.
John N

Preferimos que as respostas sejam independentes. No momento, é mais um comentário do que uma resposta. Você pode adicionar pelo menos o nome do arquivo para editar?
nohillside
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.