Important Linux Commands for Beginners: Linux Tutorial
Sommario:
- Utilizzo del comando History e History Expansions
- Salvataggio dell'elenco cronologico
- Annullamento della cronologia
- Modifica del comportamento cronologico
- Conclusione
, parleremo del comando
history
, che consente di visualizzare un elenco di comandi precedentemente eseguiti, cercare nell'elenco e manipolare il file della cronologia.
Utilizzo del comando History e History Expansions
history
è una shell incorporata e il suo comportamento può differire leggermente da shell a shell. Tratteremo la versione integrata della
history
di Bash.
Nella sua forma più semplice, quando viene invocato senza alcuna opzione o argomento, il comando
history
visualizza l'intero elenco cronologico con i numeri di riga.
history
… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history
Digitando
!n
esegue l'n-esimo comando dall'elenco cronologico e
!-n
il comando n ritorna indietro. Nel seguente esempio eseguiamo il comando sulla riga
467
:
!467
Un altro modo per eseguire un comando è usare l'espansione delle
!word
word
riferisce al comando più recente che inizia con 'word'.
In genere, la
history
mostra molte righe di output che non si adattano allo schermo. Per visualizzare l'output una pagina alla volta, reindirizzarlo a un programma cercapersone come
more
o
less
comando:
history | less
Per visualizzare le ultime
n
righe, passare il numero come argomento al comando. Ad esempio, per visualizzare solo le ultime cinque righe dall'elenco cronologico digitare:
history -5
Utilizzare i tasti freccia
up
e
down
per spostarsi tra le voci nell'elenco. Quando viene visualizzato il comando che hai cercato, premi
Enter
per eseguirlo.
Digita
!!
per eseguire il comando precedente:
!!
Ciò è particolarmente utile quando si dimentica di eseguire un comando con
sudo
e invece di digitare nuovamente il comando è possibile digitare:
sudo !!
!-1
è uguale a
!!
ed esegue l'ultimo comando dall'elenco cronologico, !
!-2
dall'ultimo all'ultimo e così via.
^word1^word2^
espansione
^word1^word2^
consente di rieseguire l'ultimo comando sostituendo "word1" con "word2". Se hai digitato
sduo command
invece del
sudo command
puoi ripetere il comando usando la parola corretta con:
^sduo^sudo^
Utilizzare il comando
grep
per filtrare l'output. Ad esempio, per visualizzare tutti i comandi incluso "nano" dovresti eseguire:
history | grep nano
302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh
Ora, se si desidera eseguire nuovamente il comando
nano setup.py
digitare semplicemente:
!356
Un altro modo per cercare nella cronologia dei comandi è premendo
Ctrl-R
. Il prompt cambierà nel seguente modo ed è possibile iniziare a cercare un comando precedentemente eseguito.
(reverse-i-search)`':
La shell mostrerà una linea corrispondente. Per passare al suggerimento corrispondente successivo, premi nuovamente
Ctrl-R
.
Controlla il manuale di Bash per ulteriori informazioni su History Expansion, modificatori e designatori.
Salvataggio dell'elenco cronologico
Per impostazione predefinita, quando si avvia una nuova sessione, Bash legge l'elenco della cronologia dal file
.bash_history
. L'elenco dei comandi eseguiti nella sessione corrente viene conservato in memoria e salvato nel file quando la sessione viene chiusa.
L'opzione
-a
consente di salvare l'elenco della cronologia delle sessioni corrente nel file
.bash_history
:
history -a
L'opzione
-w
scrive l'elenco cronologico completo nel file cronologico.
Annullamento della cronologia
Il comando
history
consente di cancellare l'elenco cronologico completo o rimuovere alcune parti.
Per cancellare l'elenco della cronologia, utilizzare l'opzione
-c
:
history -c
Per eliminare una o più righe specifiche tra le posizioni iniziale e finale dall'elenco cronologico, utilizzare l'opzione
-d
.
Ad esempio, per rimuovere le righe tra 365 e 375 (comprese quelle righe), digitare:
history -d 365 375
Quando viene utilizzato un numero intero negativo, le righe vengono conteggiate alla fine dell'elenco cronologico.
I comandi sopra cancellano l'elenco cronologico, che è conservato in memoria, ma non rimuove le voci dal file
.bash_history
sul disco. Per cancellare il file, è necessario scrivere l'elenco cronologico nel file:
Modifica del comportamento cronologico
Il comportamento della cronologia di Bash può essere definito utilizzando diverse variabili di ambiente. Quando si modifica il comportamento della cronologia, impostare le variabili in
~/.bashrc
o qualsiasi altro file di configurazione che viene caricato quando l'utente accede.
Per impostazione predefinita, Bash mantiene 500 righe nell'elenco della cronologia dei comandi. La variabile
HISTSIZE
ti consente di modificare questo valore. Per impostarlo su 10000 aggiungi la seguente riga al tuo file
.bashrc
:
HISTSIZE=10000
La variabile
HISTCONTROL
accetta un elenco di valori separati da due punti che definiscono il modo in cui i comandi vengono salvati nell'elenco della cronologia:
-
ignorespace
: i comandi che iniziano con lo spazio non vengono salvati nell'elenco cronologico.ignoredups
: i comandi duplicati non vengono salvati.ignoreboth
- è una scorciatoia, che include siaignorespace
cheignoredups
.
HISTCONTROL=ignoreboth
Quando viene impostata la variabile
HISTTIMEFORMAT
, Bash antepone un timestamp di esecuzione per il comando su ciascuna riga.
Ad esempio, se imposti:
HISTTIMEFORMAT="%F %T: "
La cronologia verrà visualizzata nel seguente formato:
413 2019-10-27 21:13:07: sudo nano /etc/hosts
Conclusione
Il comando
history
visualizza un elenco di comandi precedentemente eseguiti. Ad esempio, puoi usare la cronologia per visualizzare un lungo comando che hai usato prima che non ricordi.
Cogli la riga di comando con il comando Take
Integra il prompt dei comandi, la GUI e un potente linguaggio batch con il potente toolkit Take Command.
Cronologia di Windows - Cronologia
Cronologia del sistema operativo Microsoft Windows e delle sue versioni, da Windows 1.0 a Windows 8. Cronologia degli eventi che ti portano attraverso highlights.
Come usare il comando sleep di linux per mettere in pausa uno script bash
Sleep è un'utilità della riga di comando che consente di sospendere il processo di chiamata per un periodo di tempo specificato. In questo tutorial, ti mostreremo come usare il comando sleep di Linux.