D'Kraaft vu Linux Geschicht Kommando an Bash Shell
Mir benotzen Geschicht Kommando dacks an eisen alldeegleche Routine Jobs fir d'Geschicht vum Kommando z'iwwerpréiwen oder Informatioun iwwer Kommando ze kréien, déi vum Benotzer ausgefouert gëtt. An dësem Post wäerte mir kucken wéi mir d'Geschicht Kommando effektiv benotze kënnen fir de Kommando ze extrahieren deen vun de Benotzer an der Bash Shell ausgefouert gouf. Dëst kann nëtzlech sinn fir Auditzwecker oder fir erauszefannen wat Kommando zu wéi engem Datum an Zäit ausgefouert gëtt.
Par défaut Datum an Zäitstempel gëtt net gesi beim Ausféierung vun der Geschicht Kommando. Wéi och ëmmer, Bash Shell bitt CLI Tools fir d'Benotzer Kommandogeschicht z'änneren. Loosst eis e puer praktesch Tipps an Tricks a Kraaft vum Geschicht Kommando gesinn.
1. Lëscht Last/All ausgefouert Kommandoen am Linux
Ausféierung vun engem einfachen Geschicht Kommando vum Terminal weist Iech eng komplett Lëscht vun de leschten ausgefouerten Kommandoen mat Zeilnummeren.
[[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. Lëscht All Kommandoen mat Datum an Zäitstempel
Wéi fannt Dir Datum an Zäitstempel géint Kommando? Mat 'Export' Kommando mat Variabel weist d'Geschichtsbefehl mat entspriechend Zäitstempel wann de Kommando ausgefouert gouf.
[[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. Filter Kommandoen an der Geschicht
Wéi mir kënne gesinn, gëtt deeselwechte Kommando d'Zuel vun Mol an der uewen Ausgang widderholl. Wéi filteren ech einfach oder net zerstéierend Kommandoen an der Geschicht? Benotzt de folgenden 'export' Kommando andeems Dir de Kommando an HISTIGNORE = 'ls -l: pwd: date:' spezifizéiert gëtt net vum System gespäichert an net am Historique Kommando gewisen.
[[email ~]$ export HISTIGNORE='ls -l:pwd:date:'
4. Duplizéiert Kommandoen an der Geschicht ignoréieren
Mat dem Kommando hei ënnen hëlleft eis duplizéiert Befehle vum Benotzer ze ignoréieren. Nëmmen eenzeg Entrée gëtt an der Geschicht gewisen, wann e Benotzer e selwechte Kommando e puer Mol an enger Bash Prompt ausféiert.
[[email ~]$ export HISTCONTROL=ignoredups
5. Desaktivéiere Export Kommando
Desaktivéiere Export Kommando op der Flucht. Féiert unset Export Kommando mat Variabel een nom aneren, egal wéi eng Befehle vum Export Kommando exportéiert goufen.
[[email ~]$ unset export HISTCONTROL
6. Retten exportéieren Kommando Permanent
Maacht en Entrée wéi follegt an .bash_profile fir de Kommando Export permanent ze späicheren.
[[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. Lëscht spezifesch Benotzer ausgefouert Kommandoen
Wéi gesitt Dir Kommandogeschicht ausgefouert vun engem spezifesche Benotzer. Bash hält Rekorder vun der Geschicht an enger '~/.bash_history' Datei. Mir kënnen d'Datei kucken oder opmaachen fir d'Kommandogeschicht ze gesinn.
[[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. Desaktivéiere Späichergeschicht vu Kommandoen
E puer Organisatiounen halen keng Geschicht vu Kommandoen wéinst der Sécherheetspolitik vun der Organisatioun. An dësem Fall kënne mir .bash_profile Datei (Et ass verstoppt Datei) vum Benotzer änneren an en Entrée maachen wéi hei ënnen.
[[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)
Späichert d'Datei a lued d'Ännerunge mam Kommando ënnen.
[[email ~]$ source .bash_profile
Notiz: Wann Dir net wëllt datt de System d'Befehle erënnert, déi Dir aginn hutt, fuert einfach de Kommando aus, deen d'Geschicht op der Flucht deaktivéiert oder ophält.
[[email ~]$ export HISTSIZE=0
Tipps: Sicht 'HISTSIZE' an ännert an '/etc/profile' Datei mam Superuser. D'Ännerung vum Fichier wäert weltwäit beaflossen.
9. Läschen oder d'Geschicht vun Kommandoen läschen
Mat Up an Down Pfeil kënne mir virdru benotzte Kommando gesinn wat hëllefräich ka sinn oder Iech irritéieren. Läschen oder läschen all Entréen aus der Bash Geschicht Lëscht mat '-c' Optiounen.
[[email ~]$ history -c
10. Sich Kommandoen an der Geschicht Mat Grep Kommando
Sich Kommando duerch '.bash_history' andeems Dir Är Geschichtsdatei an 'grep' piping wéi hei ënnen. Zum Beispill, de Kommando ënnen sicht a fënnt 'pwd' Kommando aus der Geschichtlëscht.
[[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. Sichen Last ausgefouert Kommando
Sicht virdrun ausgefouert Kommando mam Kommando 'Ctrl+r'. Wann Dir de Kommando fonnt hutt deen Dir sicht, dréckt 'Enter' fir datselwecht auszeféieren, dréckt 'esc' fir et ze annuléieren.
(reverse-i-search)`source ': source .bash_profile
12. Erënneren Last ausgefouert Kommando
Erënnert un e virdru benotzte spezifesche Kommando. Kombinatioun vu Bang an 8 (!8) Kommando erënnert un d'Nummer 8 Kommando déi Dir ausgefouert hutt.
[[email ~]$ !8
13. Erënneren Last ausgefouert spezifesch Kommando
Erënnert virdrun benotzt Kommando (netstat -np | grep 22) mat '!' a gefollegt vun e puer Buschtawen vun deem bestëmmte Kommando.
[[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 -
Mir hu probéiert d'Muecht vun der Geschicht Kommando ze Highlight. Allerdéngs ass dëst net Enn. Deelt w.e.g. Är Erfahrung vum Geschichtsbefehl mat eis duerch eis Kommentarfeld hei drënner.