Os comandos executados no Linux ficam armazenados em um arquivo de histórico, que facilita o reaproveitamento desses comandos, ou nos permite analisar o que foi feito recentemente em um ambiente.
Executando o comando history:
[root@oel7 ~]# history
1 ifconfig -a
2 reboot
3 df -h
4 exit
5 cd /
6 ll
7 cd BINARIO/
8 ll
9 cd install/response/
10 ll
11 cat db_install.rsp
12 cat /etc/shells
13 echo $SHELL
14 type echo
15 echo $VARIAVEL2
16 exit
17 echo $VARIAVEL2
18 exit
19 cd
20 ll
21 ./variavel.sh
22 exit
23 history
[root@oel7 ~]#
Cada usuário terá seu próprio histórico, que é lido do arquivo HISTFILE, que pode ser encontrado como abaixo (neste exemplo, é possível também ver o tamanho máximo deste histórico):
[root@oel7 ~]# set | grep HISTFILE
HISTFILE=/root/.bash_history
HISTFILESIZE=1000
Ao disparar o comando “!!”, será executado o último comando do history:
[root@oel7 ~]# !!
set | grep HISTFILE
HISTFILE=/root/.bash_history
HISTFILESIZE=1000
Podemos também executar um comando específico, através do seu número associado, conforme abaixo:
[root@oel7 ~]# history
1 ifconfig -a
2 reboot
3 df -h
4 exit
5 cd /
6 ll
7 cd BINARIO/
8 ll
9 cd install/response/
10 ll
11 cat db_install.rsp
12 cat /etc/shells
13 echo $SHELL
14 type echo
15 echo $VARIAVEL2
16 exit
17 echo $VARIAVEL2
18 exit
19 cd
20 ll
21 ./variavel.sh
22 exit
23 history
24 set | grep HISTFILE
25 history
26 set | grep HISTFILE
27 history
28 date
[root@oel7 ~]# !28
date
Thu Feb 25 05:27:43 -03 2021
Podemos usar o “!” seguido de uma string, que executará o último comando identificado no histórico que contenha a string informada:
[root@oel7 ~]# ls /tmp/
ssh-X1jOYJWdabZs
systemd-private-cb5ebc685110472aba9ff1ca691f8363-bolt.service-r89566
systemd-private-cb5ebc685110472aba9ff1ca691f8363-colord.service-DUc5fq
systemd-private-cb5ebc685110472aba9ff1ca691f8363-cups.service-C1I5d9
systemd-private-cb5ebc685110472aba9ff1ca691f8363-fwupd.service-575LFE
systemd-private-cb5ebc685110472aba9ff1ca691f8363-rtkit-daemon.service-OZRWWP
tracker-extract-files.0
[root@oel7 ~]# !ls
ls /tmp/
ssh-X1jOYJWdabZs
systemd-private-cb5ebc685110472aba9ff1ca691f8363-bolt.service-r89566
systemd-private-cb5ebc685110472aba9ff1ca691f8363-colord.service-DUc5fq
systemd-private-cb5ebc685110472aba9ff1ca691f8363-cups.service-C1I5d9
systemd-private-cb5ebc685110472aba9ff1ca691f8363-fwupd.service-575LFE
systemd-private-cb5ebc685110472aba9ff1ca691f8363-rtkit-daemon.service-OZRWWP
tracker-extract-files.0
[root@oel7 ~]#
Para limpar o histórico, basta emitir o comando abaixo:
[root@oel7 ~]# history -c
[root@oel7 ~]# history
1 history