Fuqia e Linux History Command në Bash Shell
Ne përdorim komandën histori shpesh në punët tona rutinë të përditshme për të kontrolluar historinë e komandës ose për të marrë informacione rreth komandës së ekzekutuar nga përdoruesi. Në këtë postim, ne do të shohim se si mund të përdorim komandën e historisë në mënyrë efektive për të nxjerrë komandën që u ekzekutua nga përdoruesit në shell Bash. Kjo mund të jetë e dobishme për qëllime auditimi ose për të gjetur se çfarë komande është ekzekutuar në cilën datë dhe orë.
Si parazgjedhje, data dhe vula kohore nuk do të shihen gjatë ekzekutimit të komandës së historisë. Sidoqoftë, guaska bash ofron mjete CLI për redaktimin e historisë së komandave të përdoruesit. Le të shohim disa këshilla dhe truke të dobishme dhe fuqinë e komandës histori.
![](common-images/history-command-examples/history-command.png)
1. Listoni komandat e fundit/të gjitha të ekzekutuara në Linux
Ekzekutimi i komandës së thjeshtë histori nga terminali do t'ju tregojë një listë të plotë të komandave të fundit të ekzekutuara me numra rreshtash.
[[email ~]$ history
1 PS1='\e[1;35m[\[email \h \w]$ \e[m '
2 PS1="\e[0;32m[\[email \h \W]$ \e[m "
3 PS1="\[email \h:\w [\j]$ "
4 ping google.com
5 echo $PS1
6 tail -f /var/log/messages
7 tail -f /var/log/messages
8 exit
9 clear
10 history
11 clear
12 history
2. Listoni të gjitha komandat me datën dhe vulën kohore
Si të gjeni datën dhe vulën kohore kundrejt komandës? Me komandën ‘export’ me variabël do të shfaqet komanda e historisë me vulën kohore përkatëse kur komanda është ekzekutuar.
[[email ~]$ export HISTTIMEFORMAT='%F %T '
1 2013-06-09 10:40:12 cat /etc/issue
2 2013-06-09 10:40:12 clear
3 2013-06-09 10:40:12 find /etc -name *.conf
4 2013-06-09 10:40:12 clear
5 2013-06-09 10:40:12 history
6 2013-06-09 10:40:12 PS1='\e[1;35m[\[email \h \w]$ \e[m '
7 2013-06-09 10:40:12 PS1="\e[0;32m[\[email \h \W]$ \e[m "
8 2013-06-09 10:40:12 PS1="\[email \h:\w [\j]$ "
9 2013-06-09 10:40:12 ping google.com
10 2013-06-09 10:40:12 echo $PS1
%F Equivalent to %Y - %m - %d
%T Replaced by the time ( %H : %M : %S )
3. Filtro Komandat në Histori
Siç mund ta shohim e njëjta komandë po përsëritet disa herë në daljen e mësipërme. Si të filtrohen komandat e thjeshta ose jo shkatërruese në histori?. Përdorni komandën e mëposhtme 'export' duke specifikuar komandën në HISTIGNORE='ls -l:pwd:date:' nuk do të ruhet nga sistemi dhe nuk do të shfaqet në komandën e historisë.
[[email ~]$ export HISTIGNORE='ls -l:pwd:date:'
4. Injoroni komandat dublikate në histori
Me komandën e mëposhtme do të na ndihmojë të injorojmë hyrjen e komandave të dyfishta të bëra nga përdoruesi. Vetëm një hyrje e vetme do të shfaqet në histori, nëse një përdorues ekzekuton të njëjtën komandë disa herë në një Prompt Bash.
[[email ~]$ export HISTCONTROL=ignoredups
5. Çaktivizoni komandën e eksportit
Çaktivizoni komandën e eksportit në fluturim. Ekzekutoni komandën unset export me variabël një nga një çfarëdo komande që janë eksportuar nga komanda export.
[[email ~]$ unset export HISTCONTROL
6. Ruaje komandën e eksportit përgjithmonë
Bëni një hyrje si më poshtë në .bash_profile për të ruajtur përgjithmonë komandën eksporto.
[[email ~]$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export HISTCONTROL=ignoredups
PATH=$PATH:$HOME/bin
export PATH
7. Listoni Komandat e Ekzekutuara të Përdoruesit specifik
Si të shihni historinë e komandës të ekzekutuar nga një përdorues specifik. Bash mban regjistrime të historisë në një skedar ‘~/.bash_history’. Mund të shikojmë ose hapim skedarin për të parë historinë e komandës.
[[email ~]$ vi .bash_history
cd /tmp/
cd logstalgia-1.0.3/
./configure
sudo passwd root
apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc
./configure
make
apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc++
apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc
apt-get install make
mysql -u root -p
apt-get install grsync
apt-get install unison
unison
8. Çaktivizoni ruajtjen e historisë së komandave
Disa organizata nuk mbajnë historinë e komandave për shkak të politikës së sigurisë së organizatës. Në këtë rast, ne mund të modifikojmë skedarin .bash_profile (Është skedar i fshehur) i përdoruesit dhe të bëjmë një hyrje si më poshtë.
[[email ~]$ vi .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
HISTSIZE=0
export PATH
.bash_profile (END)
Ruani skedarin dhe ngarkoni ndryshimet me komandën e mëposhtme.
[[email ~]$ source .bash_profile
Shënim: Nëse nuk dëshironi që sistemi të mbajë mend komandat që keni shtypur, thjesht ekzekutoni komandën e mëposhtme, e cila do të çaktivizojë ose ndalojë regjistrimin e historisë menjëherë.
[[email ~]$ export HISTSIZE=0
Këshilla: Kërkoni 'HISTSIZE' dhe modifikoni në skedarin '/etc/profile' me superpërdorues. Ndryshimi në skedar do të zbatohet globalisht.
9. Fshi ose Pastro historinë e komandave
Me shigjetën lart dhe poshtë, ne mund të shohim komandën e përdorur më parë e cila mund të jetë e dobishme ose mund t'ju zemërojë. Fshirja ose pastrimi i të gjitha hyrjeve nga lista e historisë bash me opsionet '-c'.
[[email ~]$ history -c
10. Komandat e kërkimit në histori duke përdorur komandën Grep
Komandën e kërkimit përmes '.bash_history' duke futur skedarin tuaj të historisë në 'grep' si më poshtë. Për shembull, komanda e mëposhtme do të kërkojë dhe gjejë komandën 'pwd' nga lista e historisë.
[[email ~]$ history | grep pwd
113 2013-06-09 10:40:12 pwd
141 2013-06-09 10:40:12 pwd
198 2013-06-09 15:46:23 history | grep pwd
202 2013-06-09 15:47:39 history | grep pwd
11. Kërko komandën e ekzekutuar së fundi
Kërkoni komandën e ekzekutuar më parë me komandën ‘Ctrl+r’. Pasi të keni gjetur komandën që po kërkoni, shtypni 'Enter' për të ekzekutuar të njëjtën gjë, shtypni 'esc' për ta anuluar.
(reverse-i-search)`source ': source .bash_profile
12. Kujtoni komandën e fundit të ekzekutuar
Kujtoni një komandë specifike të përdorur më parë. Kombinimi i komandës Bang dhe 8 (!8) do të rikujtojë komandën numër 8 që keni ekzekutuar.
[[email ~]$ !8
13. Recall Lastly Executed Command Specific
Kujtoni komandën e përdorur më parë (netstat -np | grep 22) me '!' dhe pasuar nga disa shkronja të asaj komande të veçantë.
[[email ~]$ !net
netstat -np | grep 22
(No info could be read for "-p": geteuid()=501 but you should be root.)
tcp 0 68 192.168.50.2:22 192.168.50.1:1857 ESTABLISHED -
tcp 0 0 192.168.50.2:22 192.168.50.1:2516 ESTABLISHED -
unix 2 [ ] DGRAM 12284 - @/org/freedesktop/hal/udev_event
unix 3 [ ] STREAM CONNECTED 14522 -
unix 2 [ ] DGRAM 13622 -
unix 3 [ ] STREAM CONNECTED 12250 - @/var/run/hald/dbus-ujAjOMNa0g
unix 3 [ ] STREAM CONNECTED 12249 -
unix 3 [ ] STREAM CONNECTED 12228 - /var/run/dbus/system_bus_socket
unix 3 [ ] STREAM CONNECTED 12227 -
Jemi përpjekur të nxjerrim në pah fuqinë e komandës së historisë. Megjithatë, ky nuk është fundi i saj. Ju lutemi ndani përvojën tuaj të komandës së historisë me ne përmes kutisë sonë të komenteve më poshtë.