Nguvu ya Linux Amri ya Historia katika Bash Shell


Tunatumia history amri mara kwa mara katika kazi zetu za kawaida za kila siku ili kuangalia historia ya amri au kupata maelezo kuhusu amri inayotekelezwa na mtumiaji. Katika chapisho hili, tutaona jinsi tunavyoweza kutumia amri ya historia kwa ufanisi kutoa amri ambayo ilitekelezwa na watumiaji kwenye ganda la Bash. Hii inaweza kuwa muhimu kwa madhumuni ya ukaguzi au kujua ni amri gani inatekelezwa kwa tarehe na saa ngapi.

Kwa tarehe chaguo-msingi na muhuri wa saa hautaonekana wakati wa kutekeleza amri ya historia. Walakini, bash shell hutoa zana za CLI za kuhariri historia ya amri ya mtumiaji. Hebu tuone vidokezo na mbinu muhimu na uwezo wa historia amri.

1. Orodhesha Amri za Mwisho/Zote Zilizotekelezwa katika Linux

Utekelezaji wa historia amri rahisi kutoka kwa terminal itakuonyesha orodha kamili ya amri zilizotekelezwa mwisho zilizo na nambari za laini.

[[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. Orodhesha Amri Zote kwa Tarehe na Muhuri wa Muda

Jinsi ya kupata tarehe namuhuri wa muda dhidi ya amri? Kwa amri ya ‘hamisha’ yenye mabadiliko itaonyesha amri ya historia yenye muhuri wa muda unaolingana wakati amri hiyo ilitekelezwa.

[[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. Amri za Kichujio katika Historia

Kama tunavyoweza kuona amri hiyo hiyo inarudiwa idadi ya nyakati kwenye pato hapo juu. Jinsi ya kuchuja amri rahisi au zisizo za uharibifu katika historia? Tumia amri ifuatayo ya ‘export‘ kwa kubainisha amri katika HISTIGNORE=’ls -l:pwd:date:’ haitahifadhiwa na mfumo na haitaonyeshwa katika amri ya historia.

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

4. Puuza Amri Nakala katika Historia

Kwa amri iliyo hapa chini itatusaidia kupuuza ingizo la amri mbili zilizotengenezwa na mtumiaji. Ingizo moja pekee ndilo litakaloonyeshwa katika historia, ikiwa mtumiaji atatoa amri sawa mara nyingi katika Uhakika wa Bash.

[[email  ~]$ export HISTCONTROL=ignoredups

5. Ondoa Amri ya kuuza nje

Ondoa amri ya kuuza nje kwenye nzi. Tekeleza amri ya kutoweka kwa kutofautisha moja baada ya nyingine amri zozote ambazo zimesafirishwa kwa kusafirisha amri.

[[email  ~]$ unset export HISTCONTROL

6. Hifadhi amri ya kuuza nje kwa kudumu

Ingiza kama ifuatavyo katika .bash_profile ili kuhifadhi amri ya kusafirisha kabisa.

[[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. Orodhesha Amri Mahususi Zilizotekelezwa za Mtumiaji

Jinsi ya kuona historia ya amri inayotekelezwa na mtumiaji fulani. Bash huhifadhi rekodi za historia katika ‘~/.bash_history’ faili. Tunaweza kutazama au kufungua faili ili kuona historia ya amri.

[[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. Zima Historia ya Kuhifadhi ya Amri

Shirika fulani halihifadhi historia ya amri kwa sababu ya sera ya usalama ya shirika. Katika hali hii, tunaweza kuhariri .bash_profile faili (Faili iliyofichwa) ya mtumiaji na kuandika kama ilivyo hapo chini.

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

Hifadhi faili na upakie mabadiliko na amri iliyo hapa chini.

[[email  ~]$ source .bash_profile

Kumbuka: Ikiwa hutaki mfumo kukumbuka amri ambazo umecharaza, tekeleza amri iliyo hapa chini ambayo itazima au kuacha kurekodi historia kwa haraka.

[[email  ~]$ export HISTSIZE=0

Vidokezo: Tafuta 'HISTSIZE' na uhariri katika faili ya '/etc/profile' na mtumiaji mkuu. Mabadiliko ya faili yataathiri kimataifa.

9. Futa au Futa Historia ya Amri

Kwa mshale wa juu na chini, tunaweza kuona amri iliyotumiwa hapo awali ambayo inaweza kukusaidia au kukukasirisha. Kufuta au kufuta maingizo yote kutoka kwa orodha ya historia ya bash na chaguzi za '-c'.

[[email  ~]$ history -c

10. Tafuta Amri katika Historia kwa kutumia Grep Command

Tafuta amri kupitia '.bash_history' kwa kusambaza faili yako ya historia kwenye 'grep' kama ilivyo hapo chini. Kwa mfano, amri iliyo hapa chini itatafuta na kupata amri ya 'pwd' kutoka kwa orodha ya historia.

[[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. Tafuta Amri Iliyotekelezwa Mwishowe

Tafuta amri iliyotekelezwa hapo awali kwa ‘Ctrl+r’ amri. Mara tu unapopata amri unayotafuta, bonyeza 'Enter' kutekeleza sawa na bonyeza 'esc' ili kuighairi.

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

12. Kumbuka Amri Iliyotekelezwa Mwisho

Kumbuka amri maalum iliyotumiwa hapo awali. Mchanganyiko wa amri ya Bang na 8 (!8) itakumbuka amri ya nambari 8 ambayo umetekeleza.

[[email  ~]$ !8

13. Kumbuka Amri Maalum Iliyotekelezwa Mwishowe

Kumbuka amri iliyotumika hapo awali (netstat -np | grep 22) na '!' na ikifuatiwa na herufi kadhaa za amri hiyo.

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

Tumejaribu kuangazia uwezo wa amri ya historia. Walakini, hii sio mwisho wake. Tafadhali shiriki uzoefu wako wa amri ya historia nasi kupitia kisanduku chetu cha maoni hapa chini.