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.