![Come installare e configurare Apache Tomcat 9 in CentOS 8/7](/f/6aac468b7e6d22f83786ca482a5421df.png?width=100&height=100)
Noi usiamo storia comando frequentemente nei nostri lavori di routine quotidiani per controllare la cronologia del comando o per ottenere informazioni sul comando eseguito dall'utente. In questo post, vedremo come possiamo utilizzare efficacemente il comando history per estrarre il comando che è stato eseguito dagli utenti nella shell Bash. Questo può essere utile per scopi di audit o per scoprire quale comando viene eseguito in quale momento Data e volta.
Per impostazione predefinita Data e marca temporale non sarà visto durante l'esecuzione storia comando. Tuttavia, bash shell fornisce CLI strumenti per modificare la cronologia dei comandi dell'utente. Vediamo alcuni consigli e trucchi utili e il potere di storia comando.
Esecuzione semplice storia comando dal terminale ti mostrerà un elenco completo degli ultimi comandi eseguiti con i numeri di riga.
[[e-mail protetta] ~]$ cronologia 1 PS1='\e[1;35m[\[e-mail protetta]\h \w]$ \e[m ' 2 PS1="\e[0;32m[\[e-mail protetta]\h \W]$ \e[m " 3 PS1="\[e-mail protetta]\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 cancella 10 cronologia 11 cancella 12 cronologia
Come trovare Data e marca temporale contro il comando? Insieme a 'esportare' comando con variabile visualizzerà la cronologia del comando con il timestamp corrispondente quando il comando è stato eseguito.
[[e-mail protetta] ~]$ 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 trova /etc -name *.conf 4 09-06-2013 10:40:12 cancella 5 09-06-2013 10:40:12 cronologia 6 09-06-2013 10:40:12 PS1='\e[1;35m[\[e-mail protetta]\h \w]$ \e[m ' 7 2013-06-09 10:40:12 PS1="\e[0;32m[\[e-mail protetta]\h \W]$ \e[m " 8 2013-06-09 10:40:12 PS1="\[e-mail protetta]\h:\w [\j]$ " 9 09-06-2013 10:40:12 ping google.com 10 09-06-2013 10:40:12 echo $PS1
%F Equivalente a %Y - %m - %d. %T Sostituito dall'ora ( %H: %M: %S )
Come possiamo vedere, lo stesso comando viene ripetuto un numero di volte nell'output sopra. Come filtrare i comandi semplici o non distruttivi nella cronologia?. Utilizza il seguente 'esportare‘comando specificando comando in HISTIGNORE='ls -l: pwd: data:' non verrà salvato dal sistema e non verrà mostrato nel comando cronologia.
[[e-mail protetta] ~]$ export HISTIGNORE='ls -l: pwd: data:'
Con il comando seguente ci aiuterà a ignorare i comandi duplicati inseriti dall'utente. Nella cronologia verrà mostrata solo una singola voce, se un utente esegue lo stesso comando più volte in un prompt Bash.
[[e-mail protetta] ~]$ export HISTCONTROL=ignoratiup
Annulla il comando di esportazione al volo. Eseguire esportazione annullata comando con variabile uno per uno qualsiasi comando sia stato esportato da esportare comando.
[[e-mail protetta] ~]$ unset esporta HISTCONTROL
Effettuare una registrazione come segue in .bash_profile salvare esportare comandare in modo permanente.
[[e-mail protetta] ~]$ vi .bash_profile # .bash_profile # Ottieni gli alias e le funzioni. if [ -f ~/.bashrc ]; poi. ~/.bashrc. fi # Ambiente specifico dell'utente e programmi di avvio export HISTCONTROL=ignoredups PERCORSO=$PERCORSO:$HOME/bin. esportazione PERCORSO
Come vedere la cronologia dei comandi eseguita da un utente specifico. Bash conserva i record della storia in a '~/.bash_history' file. Possiamo visualizzare o aprire il file per vedere la cronologia dei comandi.
[[e-mail protetta]~]$ vi .bash_history cd /tmp/ cd logstalgia-1.0.3/ ./configura. sudo passwd root. apt-get install libsdl1.2-dev libsdl-image1.2-dev libpcre3-dev libftgl-dev libpng12-dev libjpeg62-dev make gcc. ./configura. fare. 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 unisono. all'unisono
Alcune organizzazioni non conservano la cronologia dei comandi a causa della politica di sicurezza dell'organizzazione. In questo caso, possiamo modificare .bash_profile file (è un file nascosto) dell'utente e inserire una voce come di seguito.
[[e-mail protetta] ~]$ vi .bash_profile # .bash_profile # Ottieni gli alias e le funzioni. if [ -f ~/.bashrc ]; poi. ~/.bashrc. fi # Ambiente specifico dell'utente e programmi di avvio PATH=$PATH:$HOME/bin. HISTSIZE=0. esportazione PERCORSO. .bash_profile (FINE)
Salva il file e carica le modifiche con il comando seguente.
[[e-mail protetta] ~]$ fonte .bash_profile
Nota: Se non vuoi che il sistema ricordi i comandi che hai digitato, esegui semplicemente il comando seguente che disabiliterà o interromperà la registrazione della cronologia al volo.
[[e-mail protetta] ~]$ export HISTSIZE=0
Consigli: Ricerca 'HISTSIZE' e modifica in '/etc/profile’ file con superutente. La modifica del file avrà effetto a livello globale.
Insieme a su e fuori uso freccia, possiamo vedere il comando usato in precedenza che può essere utile o può irritarti. Eliminazione o cancellazione di tutte le voci dall'elenco della cronologia di bash con '-C' opzioni.
[[e-mail protetta] ~]$ cronologia -c
Comando di ricerca tramite '.bash_history' reindirizzando il file della cronologia in 'grep' come sotto. Ad esempio, il comando seguente cercherà e troverà "pwd' comando dall'elenco della cronologia.
[[e-mail protetta] ~]$ cronologia | 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 cronologia | grep pwd 202 2013-06-09 15:47:39 storia | grep pwd
Cerca il comando eseguito in precedenza con 'Ctrl+r' comando. Una volta trovato il comando che stai cercando, premi 'accedere' per eseguire lo stesso altro premere 'Esc‘ per cancellarlo.
(reverse-i-search)`source ': source .bash_profile
Richiama un comando specifico usato in precedenza. Combinazione di Scoppio e 8 (!8) il comando richiamerà il numero 8 comando che hai eseguito.
[[e-mail protetta] ~]$ !8
Richiama il comando usato in precedenza (netstat -np | grep 22) insieme a '!' e seguito da alcune lettere di quel particolare comando.
[[e-mail protetta]~]$ !net. netstat -np | grep 22. (Nessuna informazione potrebbe essere letta per "-p": geteuid()=501 ma dovresti essere root.) tcp 0 68 192.168.50.2:22 192.168.50.1:1857 STABILITO - tcp 0 0 192.168.50.2:22 192.168.50.1:2516 STABILITO - 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 -
Abbiamo cercato di evidenziare il potere del comando della storia. Tuttavia, questa non è la fine. Per favore condividi la tua esperienza di comando della cronologia con noi attraverso la nostra casella di commento qui sotto.