![Recenzia Duplicate Photos Fixer Pro (Windows)](/f/5b8c16a3e4ee215dc01e230302084630.jpg?width=100&height=100)
Používame história často v našich každodenných rutinných úlohách kontrolujte históriu príkazov alebo získavajte informácie o príkazoch vykonaných používateľom. V tomto príspevku uvidíme, ako môžeme efektívne použiť príkaz history na extrahovanie príkazu, ktorý vykonali používatelia v prostredí Bash. To môže byť užitočné na účely auditu alebo na zistenie, aký príkaz sa pri čom vykonáva dátum a čas.
Predvolene dátum a časová značka sa počas vykonávania neuvidia história príkaz. Bash shell však poskytuje CLI nástroje na úpravu histórie príkazov používateľa. Pozrime sa na pár užitočných tipov a trikov a ich silu história príkaz.
Vykonávanie jednoduché história príkaz z terminálu vám ukáže kompletný zoznam naposledy vykonaných príkazov s číslami riadkov.
[[chránené e -mailom] ~] $ history 1 PS1 = '\ e [1; 35 m [\[chránené e -mailom]\ h \ w] $ \ e [m '2 PS1 = "\ e [0; 32 m [\[chránené e -mailom]\ h \ W] $ \ e [m "3 PS1 =" \[chránené e -mailom]\ 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
Ako nájsť dátum a časová značka proti veleniu? S 'export' príkaz s premennou zobrazí pri vykonaní príkazu príkaz histórie s príslušnou časovou pečiatkou.
[[chránené e -mailom] ~] $ export HISTTIMEFORMAT = ' %F %T' 1 2013-06-09 10:40:12 kat /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 história 6 2013-06-09 10:40:12 PS1 = '\ e [1; 35 m [\[chránené e -mailom]\ h \ w] $ \ e [m '7 2013-06-09 10:40:12 PS1 = "\ e [0; 32m [\[chránené e -mailom]\ h \ W] $ \ e [m "8 2013-06-09 10:40:12 PS1 =" \[chránené e -mailom]\ h: \ w [\ j] $ "9 2013-06-09 10:40:12 ping google.com 10 2013-06-09 10:40:12 echo $ PS1
%F Ekvivalentné k %Y - %m - %d. %T nahradené časom ( %H: %M: %S)
Ako vidíme, rovnaký príkaz sa vo vyššie uvedenom výstupe opakuje mnohokrát. Ako filtrovať jednoduché alebo nedeštruktívne príkazy v histórii?. Použite nasledujúce „export„Príkaz zadaním príkazu v HISTIGNORE = ‘ls -l: pwd: date:‘ systém neuloží a nezobrazí sa v príkazu history.
[[chránené e -mailom] ~] $ export HISTIGNORE = 'ls -l: pwd: date:'
Nasledujúci príkaz nám pomôže ignorovať duplicitné zadania príkazov, ktoré urobil používateľ. V histórii sa zobrazí iba jeden záznam, ak používateľ vykoná rovnaký príkaz viackrát v Bash Prompt.
[[chránené e -mailom] ~] $ export HISTCONTROL = ignoredups
Za behu zrušte príkaz na export. Vykonať nenastavený export príkaz s premennou jeden po druhom, pomocou ktorého boli exportované všetky príkazy export príkaz.
[[chránené e -mailom] ~] $ unset export HISTCONTROL
Zadajte záznam nasledovne v .bash_profile zachrániť export veliť natrvalo.
[[chránené e -mailom] ~] $ vi .bash_profile # .bash_profile # Získajte aliasy a funkcie. ak [-f ~/.bashrc]; potom. ~/.bashrc. fi # Prostredie špecifické pre používateľa a spúšťacie programy export HISTCONTROL = ignoredups PATH = $ PATH: $ HOME/bin. export PATH
Ako zobraziť históriu príkazov vykonanú konkrétnym používateľom. Bash uchováva záznamy o histórii v a „~/.Bash_history“ súbor. Históriu príkazov môžeme zobraziť alebo otvoriť.
[[chránené e -mailom]~] $ vi .bash_history cd /tmp / cd logstalgia-1.0.3/ ./konfigurovať. sudo passwd root. apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc. ./konfigurovať. urobiť. 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 nainštalovať unisono. unisono
Niektoré organizácie nevedú históriu príkazov z dôvodu bezpečnostnej politiky organizácie. V tomto prípade môžeme upravovať .bash_profile súbor (je to skrytý súbor) používateľov a urobte záznam, ako je uvedené nižšie.
[[chránené e -mailom] ~] $ vi .bash_profile # .bash_profile # Získajte aliasy a funkcie. ak [-f ~/.bashrc]; potom. ~/.bashrc. fi # Prostredie špecifické pre používateľa a spúšťacie programy PATH = $ PATH: $ HOME/bin. HISTSIZE = 0. export PATH. .bash_profile (END)
Uložte súbor a načítajte zmeny pomocou nižšie uvedeného príkazu.
[[chránené e -mailom] ~] $ source .bash_profile
Poznámka: Ak nechcete, aby si systém zapamätal zadané príkazy, jednoducho spustite príkaz, ktorý deaktivuje alebo zastaví záznam histórie za chodu.
[[chránené e -mailom] ~] $ export HISTSIZE = 0
Tipy: Vyhľadávanie 'HISTSIZE"A upraviť v"/etc/profile’ súbor so superužívateľom. Zmena súboru bude mať globálny vplyv.
S hore a dole šípka, môžeme vidieť predtým použitý príkaz, ktorý môže byť užitočný alebo vás môže rozčúliť. Odstránenie alebo vymazanie všetkých záznamov zo zoznamu histórie bash pomocou „-c' možnosti.
[[chránené e -mailom] ~] $ history -c
Vyhľadávací príkaz cez „.bash_history„Vložením súboru histórie do“grep' ako je uvedené nižšie. Nasledujúci príkaz napríklad vyhľadá a nájde „pwd„Príkaz zo zoznamu histórie.
[[chránené e -mailom] ~] $ história | 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 história | grep pwd 202 2013-06-09 15:47:39 história | grep pwd
Vyhľadajte predtým vykonaný príkaz pomocou „Ctrl+r“ príkaz. Akonáhle nájdete príkaz, ktorý hľadáte, stlačte „Zadajte„Ak chcete vykonať to isté, stlačte tlačidlo“esc‘Zrušiť to.
(reverse-i-search) `source ': zdroj .bash_profile
Vyvolajte predtým použitý konkrétny príkaz. Kombinácia Bang a 8 (!8) príkaz vyvolá číslo 8 príkaz, ktorý ste vykonali.
[[chránené e -mailom] ~]$ !8
Vyvolať predtým použitý príkaz (netstat -np | grep 22) s „!“A za ním niekoľko písmen tohto konkrétneho príkazu.
[[chránené e -mailom]~] $! net. netstat -np | grep 22. (Pre „-p“: geteuid () = 501 sa nedali prečítať žiadne informácie, ale mali by ste byť root.) tcp 0 68 192.168.50.2:22 192.168.50.1:1857 ZARIADENÉ - tcp 0 0 192.168.50.2:22 192.168.50.1:2516 ZARIADENÉ - unix 2 [] DGRAM 12284 - @/org/freedesktop/hal/udev_event. unix 3 [] STREAM PRIPOJENÝ 14522 - unix 2 [] DGRAM 13622 - unix 3 [] STREAM CONNECTED 12250 - @/var/run/hald/dbus -ujAjOMNa0g. unix 3 [] STREAM PRIPOJENÝ 12249 - unix 3 [] STREAM CONNECTED 12228 -/var/run/dbus/system_bus_socket. unix 3 [] STREAM PRIPOJENÝ 12227 -
Pokúsili sme sa zdôrazniť silu príkazu história. Tým sa to však nekončí. Podeľte sa s nami o svoje skúsenosti s príkazom history prostredníctvom nášho poľa pre komentáre nižšie.