Linux spēks "Vēstures komanda" Bash Shell
Ikdienā ikdienas darbā bieži izmantojam komandu vēsture , lai pārbaudītu komandu vēsturi vai iegūtu informāciju par lietotāja izpildītu komandu. Šajā amatā mēs redzēsim, kā mēs varam efektīvi izmantot vēstures komandu, lai iegūtu komandu, kuru lietotāji izpildīja Bash čaulā. Tas var būt noderīgi audita nolūkos vai lai uzzinātu, kāda komanda tiek izpildīta kurā datumā un laikā.
Pēc noklusējuma, izpildot vēstures komandu, datums un laika zīmogs netiks rādīti. Tomēr bash apvalks nodrošina CLI rīkus lietotāja komandu vēstures rediģēšanai. Apskatīsim dažus noderīgus padomus un ieteikumus, kā arī vēstures komandu.
1. Uzskaitiet pēdējās/visas izpildītās komandas Linux
Veicot vienkāršu vēstures komandu no termināļa, tiks parādīts pilns pēdējo izpildīto komandu saraksts ar rindu numuriem.
[[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. Uzskaitiet visas komandas ar datumu un laika zīmogu
Kā atrast komandu datums un laika zīmogs ? Izmantojot komandu ‘eksportēt’ ar mainīgo, komandas izpildes laikā tiks parādīta vēstures komanda ar atbilstošu laika zīmogu.
[[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. Filtrējiet komandas vēsturē
Kā redzam, tā pati komanda tiek atkārtota vairākas reizes augšējā izvadē. Kā filtrēt vienkāršas vai nesagraujošas komandas vēsturē ?. Izmantojiet šādu komandu “eksportēt”, norādot komandu HISTIGNORE = ’ls -l: pwd: date:’ sistēma nesaglabās un netiks rādīta komandā vēsture.
[[email ~]$ export HISTIGNORE='ls -l:pwd:date:'
4. Ignorējiet komandu dublikātus vēsturē
Ar zemāk redzamo komandu mums palīdzēs ignorēt lietotāju veikto komandu dublikātu ierakstu. Vēsturē tiks parādīts tikai viens ieraksts, ja lietotājs Bash uzvednē vairākas reizes izpilda vienu un to pašu komandu.
[[email ~]$ export HISTCONTROL=ignoredups
5. Atiestatiet eksportēšanas komandu
Atiestatiet eksportēšanas komandu. Izpildiet komandu atiestatīt eksportu ar mainīgo pa vienam neatkarīgi no tā, kādas komandas ir eksportējušas komanda eksportēt .
[[email ~]$ unset export HISTCONTROL
6. Saglabājiet eksporta komandu pastāvīgi
Veiciet ierakstu .bash_profile šādi, lai neatgriezeniski saglabātu komandu eksportēt .
[[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. Uzskaitiet konkrēta lietotāja izpildītās komandas
Kā redzēt komandu vēsturi, ko izpildījis konkrēts lietotājs. Bašs saglabā vēstures ierakstus failā ‘~/.bash_history’ . Mēs varam apskatīt vai atvērt failu, lai redzētu komandu vēsturi.
[[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. Atspējojiet komandu vēstures saglabāšanu
Dažas organizācijas neuzglabā komandu vēsturi organizācijas drošības politikas dēļ. Šajā gadījumā mēs varam rediģēt lietotāja .bash_profile failu (tas ir paslēpts fails) un veikt ierakstu, kā norādīts tālāk.
[[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)
Saglabājiet failu un ielādējiet izmaiņas ar komandu zemāk.
[[email ~]$ source .bash_profile
Piezīme: Ja nevēlaties, lai sistēma atceras jūsu ievadītās komandas, vienkārši izpildiet zemāk esošo komandu, kas atspējos vai pārtrauks vēstures ierakstīšanu lidojuma laikā.
[[email ~]$ export HISTSIZE=0
Padomi: meklējiet ‘HISTSIZE’ un rediģējiet failā ‘/ etc/profile’ ar superlietotāju. Faila izmaiņas stāsies spēkā visā pasaulē.
9. Dzēst vai notīrīt komandu vēsturi
Ar augšup un lejup vērstu bultiņu mēs varam redzēt iepriekš izmantoto komandu, kas var būt noderīga vai var jūs kaitināt. Visu ierakstu dzēšana vai notīrīšana no bash vēstures saraksta ar opcijām ‘-c’.
[[email ~]$ history -c
10. Meklēt komandas vēsturē, izmantojot komandu Grep
Meklējiet komandu, izmantojot ‘.bash_history’, ievadot vēstures failu ‘grep’, kā norādīts zemāk. Piemēram, zemāk esošā komanda vēstures sarakstā meklēs un atradīs komandu ‘pwd’.
[[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. Meklēt pēdējo izpildīto komandu
Meklēt iepriekš izpildīto komandu ar komandu ‘Ctrl + r’ . Kad esat atradis meklēto komandu, nospiediet taustiņu Enter, lai izpildītu to pašu, nospiediet taustiņu Esc, lai to atceltu.
(reverse-i-search)`source ': source .bash_profile
12. Atsaukt pēdējo izpildīto komandu
Atsaukt iepriekš izmantoto konkrēto komandu. Kombinācija Bang un 8 (! 8) komanda atsauks jūsu izpildīto komandu 8.
[[email ~]$ !8
13. Atsaukt pēdējo izpildīto īpašo komandu
Atgādiniet iepriekš izmantoto komandu (netstat -np | grep 22) ar ‘!’ Un pēc tam dažus šīs konkrētās komandas burtus.
[[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 -
Mēs esam mēģinājuši izcelt vēstures komandas spēku. Tomēr ar to viss nebeidzas. Lūdzu, dalieties ar mums vēstures komandas pieredzē, izmantojot mūsu komentāru lodziņu zemāk.