Quanto mais você trabalha com terminais linux, mais você acaba precisando otimizar suas tarefas recorrentes, buscando comandos que otimizem seu dia-a-dia e melhorem sua produtividade: O comando history com certeza é um deles. Como o nome já entrega, o comando history lista todo o histórico de comandos do seu terminal (o mesmo histórico pode ser encontrado no arquivo .bash_history na sua pasta home). Por padrão, o comando histórico exibe os últimos 5k comandos salvos.

Confira também: Como escanear seu servidor linux por Malwares (Debian/Ubuntu)

Usando o comando history básico

Basta digitar history no terminal do linux para usar o modo mais simples do comando:

$ history

# Resultado
1 clear
2 ls -la
3 sudo apt-get update
4 history

O comando history exibirá uma o histórico de comandos de sua sessão, no começo de cada linha existe um número, podemos usar essa numeração para recuperar e reexecutar o comando desejado:

$ !2

# Resultado
drwxr-xr-x  2 shadowlik shadowlik 4096 dez 28 17:40 Desktop
drwxr-xr-x  2 shadowlik shadowlik 4096 dez 28 17:40 Documents
drwxr-xr-x  6 shadowlik shadowlik 4096 jan  6 23:26 Downloads

Existe uma outra forma de encontrar e reexecutar os comandos, fazendo uma busca genérica no comando history:

$ !ls

Você pode também reexecutar o seu último comando digitando !!.

Buscando um comando usando history

Agora vamos combinar o comando history com o comando grep , assim conseguiremos filtrar o nosso histórico em busca do comando desejado:

$ history | grep ls

# Resultado
2  sudo ls -la
5  history | grep ls

Outra maneira de acessar a funcionalidade de busca é pelo atalho Ctrl-R. Digita o que procura e o seu prompt trará o resultado:

(reverse-i-search)`':

Mudando um comando executado

Muitas vezes queremos encontrar um comando para reexecutar, mas trocando alguma opção ou parâmetro. O comando history permite que você reexecute comandos com uma sintaxe diferente. Por exemplo, se queremos trocar o nosso comando anterior history | grep ls -la para history | grep ls -ln, eu posso executar o seguinte comando:

$ ^ls^ln^

O history reexecutará o comando trocando ls por ln.

Deletando o histórico

Talvez você precise algum dia excluir um comando que contenha algum dado sensível ou até mesmo todos os comandos de seu histórico. Para deletar um comando em particular, digite history -d <nº da linha> e para apagar todo o conteúdo do histórico, digite history -c.

4.1 16 votos
Nota do Artigo
Subscribe
Notify of

7 Comentários
newest
oldest most voted
Inline Feedbacks
View all comments
GK Lisboa
1 ano atrás

Voce simplesmente salvou meu dia de trabalho!!
Muito obrigada!!

Luiz
3 anos atrás

Olá. Com o comando history, é possível descobrir o ip de quem executou o comando?
Se sim, por favor, como faço?
Obrigado e parabéns pelas informações.

Last edited 3 anos atrás by Luiz
Luiz
Reply to  Henrique Marques Fernandes
3 anos atrás

Show Henrique. Vou fazer isso. Muito obrigado pelo retorno. Sucesso!!!

4 anos atrás

Lega, mas como saber a data e hora que cada comando foi executado?

Reply to  Henrique Marques Fernandes
4 anos atrás

Valeuuuuu!! Parabéns pelo conhecimento e por compartilhar. Grande abraço!

wpDiscuz
7
0
Would love your thoughts, please comment.x