Uno dei comandi ampiamente utilizzati nel mondo UNIX è il comando history. Ogni versione di UNIX ha il comando history. La shell bash memorizza una cronologia dei comandi immessi, che può essere utilizzata per ripetere i comandi utilizzando il comando history. Per impostazione predefinita, mostrerà i 1000 precedenti comandi utilizzati.
Ecco un esempio di output della cronologia dei comandi:
# history 1 uname -a 2 clear 3 ssh [email protected] 4 exit 5 ls 6 clear 7 echo "Hello" ........
Il meccanismo della cronologia di bash supporta una varietà di modi avanzati per recuperare i comandi dall'elenco della cronologia. Di seguito sono riportati alcuni dei modi per utilizzare il comando bash history :
1. Elenco degli ultimi n comandi utilizzati
Per impostazione predefinita, il comando cronologia mostra gli ultimi 1000 comandi utilizzati. Se vuoi elencare solo gli ultimi comandi attivati dall'utente usa "cronologia n". Ad esempio, per visualizzare gli ultimi 5 comandi attivati :
# history 5 504 uname -a 505 who am i 506 date 507 echo "Hi" 508 history 5
2. Ripetizione dell'ultimo comando
Per ripetere l'ultimo comando eseguito:
# echo "I am history" I am history # !! echo "I am history" I am history
3. Ripeti l'ultimo comando iniziando con qualche carattere
!char =ripete l'ultimo comando iniziato con char. Ad esempio :
# !uname uname -a Linux geeklab 2.6.32-504.el6.x86_64 #1 SMP Tue Sep 16 01:56:35 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
4. Ripeti l'ultimo comando per il suo numero
!num =ripete un comando in base al suo numero nell'output della cronologia. Ad esempio :
# !1010 ls -lrth total 197M -rw-r--r-- 1 root root 512K May 25 2015 file1 drwxr-xr-x 2 root root 4.0K Jun 1 2016 dir1
5. Ripeti l'ultimo comando che contiene un carattere
!?command =ripete l'ultimo comando che contiene (anziché iniziato con [!char]). Esempio :
# echo "I am legend" I am legend # !?legend echo "I am legend" I am legend
6. Ripeti l'ennesimo comando
!-n =ripete un comando immesso n comandi indietro
# !-3 uname -a Linux VMAX3Linux 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
7. Ricerca di un comando nella cronologia ed esecuzione
Ctrl-r =cerca un comando nella cronologia dei comandi ed eseguilo una volta trovata una corrispondenza.
# (reverse-i-search)`uname': uname -aSolaris:come includere data e timestamp nella cronologia dei comandi della shell bash
CentOS/RHEL:come ottenere la data e l'ora del comando eseguito nell'output del comando della cronologia
CentOS/RHEL:come disabilitare la cronologia della shell BASH