Neste, meu primeiro artigo para DesdeLinux, quero fazer uma breve referência a um comando de console ou shell não muito conhecido, mas muito prático de qualquer Linux. Me refiro a história.
Quase todo mundo que usa Linux sabe que se apertarmos a seta para cima em um terminal, ele nos mostrará o comando usado anteriormente e que se continuarmos pressionando voltaremos nessa lista de comandos. Vire isso !! vamos executar o último comando usado. Bem, isso é graças a história, mas seu potencial não acaba aí, pois se o executarmos diretamente, obteremos uma lista com os últimos mil comandos:
sebastian:~$ history
1543 ping -c 2 desdelinux.net
1544 clear
1545 sudo apt-get update
1546 uname
1547 history
A lista em si será mais longa, mas alguns exemplos são suficientes. Desde agora podemos ver todo o histórico de comandos usados junto com um número que nos permitirá localizar aquele que desejamos dentro da referida lista. Se desejar, você também pode fazer isso história mostrar a data de execução do mesmo.
Então, escrevendo ! mais o número da linha, o shell executará o comando que corresponde a essa linha:
sebastian:~$ !1543
ping -c 2 desdelinux.net
PING desdelinux.net (192.31.186.28) 56(84) bytes of data.
Mas, também podemos executar por letras, pois se colocarmos !+un irá executar a linha "1546", pois execute o último comando que começa com essas letras.
sebastian@soporte-mesi01:~$ !un
uname
Linux
Mas tenha cuidado, pois isso pode ser arriscado, pois não sabemos qual comando é o último que começa com essas letras e então a melhor forma de recuperar um comando usado anteriormente é com a combinação de teclas CTRL+r, onde um mecanismo de pesquisa nos oferecerá e, conforme digitamos, ele nos mostrará o último comando completo correspondente. Então, com squeeze entrar irá executá-lo.
Se, ao contrário, quisermos listar todas as vezes que usamos um comando, devemos usar grep:
sebastian:~$ history | grep uname
1499 uname -r
1500 uname -a
1546 uname
1549 uname
1550 history | grep uname
Com o qual listará apenas as linhas onde se encontra a palavra procurada, neste caso «uname".
Ótimo! Obrigado pelas dicas
Parabéns excelente dica
Isso estava procurando, obrigado !!!
Não conhecia o Ctrl + r, vou praticar então fica no banco de dados do cérebro.
Você também pode adicionar ao post o comando ¨ $ history -c ¨ que, como você sabe, é usado para apagar o histórico, frequentemente útil se não quisermos deixar pistas ou se nos sujarmos digitando algum comando errado.
Saudações e obrigado pelo post !!
Eu sabia quem usaria o parâmetro -c, mas a verdade é que nunca usei
Atalho muito interessante 'Ctrl + r'. Adicione que se tivermos vários terminais abertos, o comando 'histórico' mostra apenas aquele terminal até que outro novo terminal seja aberto.
Também pode ser usado com o comando 'tail' (para ver os comandos mais recentes) ou com 'less' para vê-los por página.
Saudações!
São aquelas dicas que você esquece de vez em quando, mas são muito úteis, obrigado 😉
Impressionante.
Graças a isso, em vez de escrever rsync -avl -stats -progress / media / data / WEBS / / media / WD / WEBS
Tive que escrever! 496, e de agora em diante será!
Sempre lamento ter começado tarde com o Linux, e sempre me sinto com sorte por ter começado o Linux.
Obrigado por esses comandos. Com certeza estão no homem, mas nunca olho para ele, como quando compro um gadget, a última coisa que vejo é o manual.
Obrigado.
Atenciosamente.
Vito, tenha em mente que o número da linha no histórico vai mudando à medida que mais linhas forem adicionadas a ele. O que eu recomendo que você faça para evitar digitar a linha inteira é adicioná-la como um alias ao seu .bashrc, dessa forma apenas digitando o nome do alias que você atribuiu a ele, toda a linha atribuída será executada.
Saudações!
Obrigado.
O número foi o exemplo do meu caso. Esse número estava no meu cadastro, e com isso tentei a dica. Eu sei que ele muda e cada vez que o executo, o mesmo comando aparece com um novo número.
Eu conheço os aliases no .bashrc e só os utilizo para desligar os monitores com "pan" em vez do comando apropriado (sleep 1 && xset dpms force off), mas não uso muito os aliases, porque como existem muitos comandos que utilizo, então tenho o problema de ter que lembrar do alias; E acabo tendo o dobro de problemas. Lembre-se do comando ou lembre-se do alias do comando.
Assim, é econômico para mim lembrar a "história" ou, ainda mais fácil, "história | grep rsync »para quando eu tiver que fazer backup do meu trabalho. Este último é um exemplo de um dos utilitários que vejo.
Definitivamente, considero muito útil, pelo menos no meu caso, preservar a memória RAM do meu cérebro, que é muito escassa. Portanto, não preciso lembrar de dezenas de comandos.
Obrigado pela sua resposta.
Atenciosamente.
Também é muito útil executar (sem aspas) "history> historia.txt" e assim salvar os comandos que executamos em um arquivo de texto.
Sim, você pode até mesmo filtrar usando grep no meio, por exemplo, com algo como
history | grep uname >pru.txt
E então, o txt só salvaria os resultados com o comando «uname» 😉
Melhor: Ctrl + r
Bom artigo e muito útil. Obrigado pela informação 🙂