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.