Comando history no Linux (histórico de comandos) [Guia Básico]
O comando history serve para listar o conteúdo do ~/.bash_history do usuário logado, e enumera as linhas do histórico de comandos.
O “~” é um atalho do Linux para o diretório HOME do usuário logado.
Você pode passar como parâmetro a quantidade de linhas que você quer ele mostre desde o último comando digitado:
$ history 10
564 cd ..
565 ll
566 cp cadastro.php cadastro_livro.php
567 sudo cp cadastro.php cadastro_livro.php
568 sudo vi cadastro_livro.php
569 mv geralivro.php geraflivro.php
570 sudo mv geralivro.php gerarlivro.php
571 cat grava.php
Você também pode usar o history com o grep para filtrar os comandos:
$ history | grep ssh
144 history |grep ssh
145 ssh [email protected]
148 ssh [email protected]
Ao saber o número da linha que você quer usar novamente, basta colocar exclamação seguido do número da linha correspondente:
$ !144
ssh -i uribeiro.pem [email protected]
Last login: Thu Sep 12 09:51:33 2019 from 172.30.0.241
O comando history tem algumas opções a saber:
- -c Limpa a lista do histórico
- -d x Apaga a linha de número x
- -a Adiciona os comandos da sessão corrente do bash ao arquivo de histórico
O bash também oferece outras possibilidades de trabalho com o histórico de comandos:
Atalho | Descrição |
!! | Executa o último comando digitado |
!n | Executa o comando na linha n no arquivo .bash_history |
!texto | Executa o comando mais recente que inicia com o texto |
!?texto | Executa o comando mais recente que contém o texto |
^texto1^texto2 | Executa o último comando substituindo o texto1 pelo texto2 |
Alt M < | Vai para o início do arquivo .bash_history |
Alt M > | Vai para o fim do arquivo .bash_history |
Ctrl p | Recupera os comandos armazenados no arquivo .bash_history de trás para frente |
Ctrl n | Recupera os comandos já listados de frente para trás |
Ctrl b | Volta um caractere nos comandos já recuperados |
Ctrl f | Anda um caractere para frente nos comandos já recuperados |
Ctrl a | Volta para o início da linha nos comandos já recuperados |
Ctrl e | Vai para o fim da linha nos comandos já recuperados |
Ctrl l | Limpa a tela |
Ctrl d | Apaga caracteres do texto do cursor até o fim da linha |
Ctrl k | Apaga o texto do cursor até o fim da linha de uma só vez |
Ctrl y | Cola o texto apagado pelo comando anterior na tela |
Ctrl rtexto | Procura comandos que contenham o texto do último comando para o primeiro |
Ctrl stexto | Procura comandos que contenham o texto do primeiro comando para o último |
Bang-bang !!
Um uso bastante prático do history dos comandos é a dupla exclamação !! , que executa o último comando digitado, principalmente quando se necessita executar novamente o comando com poderes de super-usuário com o comando “sudo“:
$ apt install lynx
E: Não foi possível abrir arquivo de trava /var/lib/dpkg/lock-frontend - open (13: Permissão negada)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
Neste exemplo, tentou-se instalar o pacote lynx, mas o apt não deixou porque somente o root pode instalar software.
Para resolver a questão, pode-se simplesmente usar o sudo com o !!:
$ sudo !! sudo apt install lynx [sudo] senha para uira: Lendo listas de pacotes... Pronto Os NOVOS pacotes a seguir serão instalados: lynx lynx-common 0 pacotes atualizados, 2 pacotes novos instalados, 0 a serem removidos e 57 não atualizados. É preciso baixar 1.539 kB de arquivos. Depois desta operação, 5.481 kB adicionais de espaço em disco serão usados. Você quer continuar? [S/n]
Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.
Gostou? Compartilhe
Tag:/dev, bash, certificação, certificaçãolinux, code, Comptia, developer, empreendedorismo, exame, freesoftware, gnu, hack, Linux, linuxfan, linuxfun, linuxmint, lovelinux, LPI, LPIC, management, nerd, opensource, php, prova, shell, software, softwarelivre, sql, tech, ti, unix