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.

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ë.