Bash History

Br-linux.org - 06.06.08

“”O Bash, como maioria dos interpretadores de comandos, possui vários recursos embutidos. Um deles é o ‘History’ ou ‘Bash History’ o qual vou descrever no link a seguir. O Bash History tem como objetivo armazenar os últimos comandos digitados pelo usuário, afim de auxiliar com a necessidade de repetições de comandos, e lembrar em caso de comandos digitados há alguns dias ou horas.””

Quem usa Linux, Unix e Mac já deve estar acostumado com o Bash, "o interpretado de comandos", "o Shell", "a linha de comando", "o modo texto". Cada um chama de de um jeito, mas não importa como você realmente chama, mas sabido que no mundo linux e unix o Bash vem como padrão na maioria das distribuições e no Mac o bash é o padrão. O Bash não é o único shell existente, mas, é o mais popular.

O Bash, como maioria dos interpretadores de comandos, possui vários recursos embutido. Um deles é o 'History' ou 'Bash History' o qual vou descrever aqui hoje.

O Bash History tem como objetivo armazenar os últimos comandos digitados pelo usuário, afim de auxiliar o usuário com a necessidade de repetições de comandos, e lembrar em caso de comandos digitados há alguns dias ou horas.

Esses comandos são armazenados no arquivo ~/.bash_history .

gustavo@gustavo-laptop:~$ hostname
gustavo-laptop
gustavo@gustavo-laptop:~$ tail .bash_history
mv colorize-0.3.4/colorizerc /etc
sudo cp colorize-0.3.4/colorizerc /etc
sudo cp colorize-0.3.4/colorize /usr/bin/
colorize
cat /var/log/messages | colorize
sudo bin/mount.sh
apt-get update
apt-get upgrade
apt-get dist-upgrade
sudo bin/mount.sh

Você pode perceber que o arquivo .bash_history, realmente contém comandos, mas o útimo comando que eu digitei foi "hostname" e ele não esta no arquivo. Bom o Bash armazena os últimos comandos digitados em memória e só adiciona ao fim do .bash_history ao finalizar a sessão.

Então para tem uma listagem atualizada sem fechar o shell, usamos o comando history.

gustavo@gustavo-laptop:~$ echo oi
oi
gustavo@gustavo-laptop:~$ history | tail
496 apt-get update
497 apt-get upgrade
498 apt-get dist-upgrade
499 sudo bin/mount.sh
500 clear
501 hostname
502 tail .bash_history
503 clear
504 echo oi
505 history | tail

Podemos perceber agora que na listagem dos últimos comandos inclui-se o 'echo oi' e o próprio 'history'

Quando precionamos a 'seta para cima' ela nos trás os útimos comandos, isso é um dos recursos do bash history, mas esse é apenas um de vários. Vou mostrar alguns.

!! - execulta o último comando digitado

gustavo@gustavo-laptop:~$ hostname
gustavo-laptop
gustavo@gustavo-laptop:~$ !!
hostname
gustavo-laptop

!n - Execulta no comando da linha 'n' do history

gustavo@gustavo-laptop:~$ history | tail
500 clear
501 hostname
502 tail .bash_history
503 clear
504 echo oi
505 history | tail
506 clear
507 hostname
508 clear
509 history | tail
gustavo@gustavo-laptop:~$ !501
hostname
gustavo-laptop

!texto - Executa o comando mais recente que começa com 'texto'

gustavo@gustavo-laptop:~$ history | tail -15
498 apt-get dist-upgrade
499 sudo bin/mount.sh
500 clear
501 hostname
502 tail .bash_history
503 clear
504 echo oi
505 history | tail
506 clear
507 hostname
508 clear
509 history | tail
510 hostname
511 clear
512 history | tail -15
gustavo@gustavo-laptop:~$ !sudo
sudo bin/mount.sh
[sudo] password for gustavo:

!?texto - Executa o comando mais recente que contém 'texto'

gustavo@gustavo-laptop:~$ history | tail -15
501 hostname
502 tail .bash_history
503 clear
504 echo oi
505 history | tail
506 clear
507 hostname
508 clear
509 history | tail
510 hostname
511 clear
512 history | tail -15
513 sudo bin/mount.sh
514 clear
515 history | tail -15
gustavo@gustavo-laptop:~$ !?mount
sudo bin/mount.sh

^texto1^texto2 - Executa o último comando substituindo o 'texto1' pelo o 'texto2'

gustavo@gustavo-laptop:~$ ls
arq1 myfile
gustavo@gustavo-laptop:~$ rm arq1
gustavo@gustavo-laptop:~$ ^arq1^myfile
rm myfile
gustavo@gustavo-laptop:~$ ls

Ctrl p - recupera os comando do history do útimo comando digitado ao primeiro(equivalente a 'seta para cima')

Ctrl n - volta os comando recuperados pelo ctrl p (Seta para baixo)

Ctrl r[texto] - Procura um comando que contenha [texto] do último comando para o primeiro

gustavo@gustavo-laptop:~$ history | tail -15
518 ls /etc
519*
520 touch arq1
521*
522 ls
523 clear
524 rm arq1
525 rm myfile
526* ls
527 clear
528 history
529 clear
530 history | tail
531 history | tail -20
532 history | tail -15
(reverse-i-search)`arq': rm arq1

Enviado por Gustavo Lichti (gustavo·lichtiΘgmail·com) - referência (lichti.eti.br).

Comentários

Postagens mais visitadas