La shell C, la shell Korn e molte altre shell avanzate, mantengono informazioni sui comandi che sono stati eseguiti in shell. La quantità di storia memorizzabile dipende dalla shell utilizzata. Qui si descriveranno le caratteristiche di history della shell C.
Si possono usare le variabili history
e
savehist
per settare rispettivamente quanti comandi
della shell corrente memorizzare e per quanti login mantenerli.
Si può inserire in .cshrc
la seguente linea
per memorizzare 100 comandi della shell corrente fino a 50 prossimi
login.
set history=100 savehist=50
La shell mantiene traccia della storia dei comandi tra un login e
l'altro memorizzandola nel file ~/.history
.
Si può usare il comando built-in history
per
richiamare i comandi eseguiti precedentemente, ad esempio per stampare gli
ultimi 10:
%
history 10
52 cd workshop 53 ls 54 cd Unix_intro 55 ls 56 pwd 57 date 58 w 59 alias 60 history 61 history 10
Si può ripetere l'ultimo comando digitando
!!
:
%
!!
53 ls 54 cd Unix_intro 55 ls 56 pwd 57 date 58 w 59 alias 60 history 61 history 10 62 history 10
Si può ripetere un comando numerato introducendo il numero con
un !
, esempio:
%
!57
date Tue Apr 9 09:55:31 EDT 1996
Si può ripetere un comando che inizia con qualche stringa,
introducendo la parte iniziale univoca della stringa con un
!
, esempio:
%
!da
date Tue Apr 9 09:55:31 EDT 1996
Quando la shell valuta la linea di comando verifica subito la sostituzione di history prima di interpretare qualche altra cosa. Per usare uno di questi caratteri speciali in un comando di shell è necessario usare un escape, o effettuare un quoting, apporrendo un \ prima del carattere, esempio \!. I caratteri di sostituzione di history sono sintetizzati nella tabella seguente:
Comando | Funzione sostitutiva |
---|---|
!! | ripete l'ultimo comando |
!n | ripete il comando numero n |
!-n | ripete l'n-esimo comando partendo
dall'ultimo |
!str | ripete il comando che inizia con la stringa
str |
!?str? | ripete il comando con all'interno
str |
!?str?% | seleziona il primo argomento che ha
str all'interno |
!: | ripete l'ultimo comando, generalmente usato con una modifica |
!:n | seleziona l'n-esimo argomento
dell'ultimo comando (n=0 è il nome del comando) |
!:n-m | seleziona gli argomenti tra
l'n-esimo e
l'm-esimo argomento dell'ultimo
comando |
!^ | seleziona il primo argomento dell'ultimo comando (come
!:1 ) |
!$ | seleziona l'ultimo argomento dell'ultimo comando |
!* | seleziona tutti gli argomenti del precedente comando |
!:n* | seleziona gli argomenti
dall'n-esimo all'ultimo, incluso, del
precedente comando |
!:n- | seleziona gli argomenti
dall'n-esimo all'ultimo, escluso, del
precedente comando |
^str1^str2^ | rimpiazza str1 con
str2 nella prima occorrenza nel
precedente comando |
!n:s/str1/str2/ | sostituisce str1 con
str2 nella prima occorrenza
nell'n-esimo comando, finendo con una
sostituzione globale g
|
Altre informazioni sono descritte nelle pagine man.
Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Per domande su FreeBSD, leggi la
documentazione prima di contattare
<questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a
<doc@FreeBSD.org>.