Kraftur Linux „History Command“ í Bash Shell


Við notum skipunina sögu oft í daglegu starfi okkar til að athuga feril skipana eða til að fá upplýsingar um skipun sem notandi framkvæmir. Í þessari færslu munum við sjá hvernig við getum notað söguskipun á áhrifaríkan hátt til að draga út skipunina sem var framkvæmd af notendum í Bash skel. Þetta getur verið gagnlegt í endurskoðunarskyni eða til að komast að því hvaða skipun er framkvæmd á hvaða dagsetningu og tíma.

Sjálfgefið er að dagsetning og tímastimpill sést ekki þegar söguskipun er framkvæmd. Hins vegar, bash skel býður upp á CLI verkfæri til að breyta skipanasögu notanda. Við skulum sjá nokkur handhægar ráð og brellur og kraft sögu skipunarinnar.

1. Listaðu yfir síðustu/allar framkvæmdar skipanir í Linux

Með því að framkvæma einfalda sögu skipun frá flugstöðinni mun þú sýna þér heildarlista yfir síðustu framkvæmdar skipanir með línunúmerum.

[[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. Listaðu allar skipanir með dagsetningu og tímastimpli

Hvernig á að finna dagsetningu og tímastimpil gegn skipun? Með 'útflutning' skipun með breytu mun birta söguskipun með samsvarandi tímastimpli þegar skipunin var framkvæmd.

[[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. Sía skipanir í sögu

Eins og við sjáum er sama skipun endurtekin mörgum sinnum í úttakinu hér að ofan. Hvernig á að sía einfaldar eða ekki eyðileggjandi skipanir í sögunni?. Notaðu eftirfarandi 'export' skipun með því að tilgreina skipun í HISTIGNORE='ls -l:pwd:date:' verður ekki vistað af kerfinu og ekki sýnt í söguskipuninni.

[[email  ~]$ export HISTIGNORE='ls -l:pwd:date:'

4. Hunsa tvíteknar skipanir í sögu

Með skipuninni hér að neðan mun hjálpa okkur að hunsa afrit skipanafærslu sem notandinn gerir. Aðeins ein færsla verður sýnd í sögunni, ef notandi framkvæmir sömu skipun mörgum sinnum í Bash Prompt.

[[email  ~]$ export HISTCONTROL=ignoredups

5. Afstilla útflutningsskipun

Afstilla útflutningsskipun á flugi. Framkvæmdu skipunina unset export með breytu einni af annarri hvaða skipanir sem hafa verið fluttar út með skipuninni export.

[[email  ~]$ unset export HISTCONTROL

6. Vistaðu útflutningsskipunina varanlega

Færðu inn sem hér segir í .bash_profile til að vista skipunina export varanlega.

[[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. Listaðu yfir tilteknar skipanir notanda

Hvernig á að sjá skipanaferil framkvæmda af tilteknum notanda. Bash heldur skrár yfir sögu í ‘~/.bash_history’ skrá. Við getum skoðað eða opnað skrá til að sjá skipanaferilinn.

[[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. Slökktu á geymslusögu skipana

Sum samtök halda ekki sögu skipana vegna öryggisstefnu stofnunarinnar. Í þessu tilviki getum við breytt .bash_profile skránni (það er falin skrá) notanda og sett inn færslu eins og hér að neðan.

[[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)

Vistaðu skrána og hlaðið inn breytingum með skipuninni hér að neðan.

[[email  ~]$ source .bash_profile

Athugið: Ef þú vilt ekki að kerfið muni skipanirnar sem þú hefur slegið inn skaltu einfaldlega framkvæma fyrir neðan skipunina sem mun slökkva á eða hætta að skrá ferilinn á flugi.

[[email  ~]$ export HISTSIZE=0

Ábendingar: Leitaðu að 'HISTSIZE' og breyttu í '/etc/profile' skrá með ofurnotanda. Breytingin á skránni mun hafa áhrif á heimsvísu.

9. Eyða eða hreinsa sögu skipana

Með upp og niður ör, getum við séð áður notuð skipun sem gæti verið gagnleg eða gæti pirrað þig. Eyðir eða hreinsar allar færslur af bash sögulistanum með '-c' valmöguleikum.

[[email  ~]$ history -c

10. Leitaðu að skipunum í sögunni með því að nota Grep stjórn

Leitaðu skipun í gegnum '.bash_history' með því að setja söguskrána þína í 'grep' eins og hér að neðan. Til dæmis mun skipunin hér að neðan leita og finna 'pwd' skipunina af sögulistanum.

[[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. Leita að loksins framkvæmd skipun

Leitaðu að áður framkvæmdri skipun með ‘Ctrl+r’ skipuninni. Þegar þú hefur fundið skipunina sem þú ert að leita að, ýttu á 'Enter' til að framkvæma það sama, annars ýttu á 'esc' til að hætta við það.

(reverse-i-search)`source ': source .bash_profile

12. Muna síðast framkvæmda skipun

Mundu áður notaða sérstaka skipun. Sambland af Bang og 8 (!8) skipun mun kalla skipun númer 8 sem þú hefur framkvæmt.

[[email  ~]$ !8

13. Muna tiltekna skipun sem síðast var framkvæmd

Mundu áður notaða skipun (netstat -np | grep 22) með '!' og fylgt eftir með nokkrum stöfum í þeirri tilteknu skipun.

[[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  -

Við höfum reynt að draga fram kraft sögustjórnar. Hins vegar er þessu ekki lokið. Vinsamlegast deildu reynslu þinni af sögustjórn með okkur í gegnum athugasemdareitinn okkar hér að neðan.