Interruzione comandi
Il comando:
sleep 5
non fa nulla (dorme) per cinque secondi poi ritorna il pronto.
Il comando:
sleep 10000
si può interrompere coi tasti Ctrl-C
(come in Windows).
Formalmente si dice che è stato inviato il segnale di interruzione al processo corrente.
E' possibile cambiare la combinazione di tasti che inviano il segnale di interruzione. Non è una buona idea, perchè tutti si aspettano un Ctrl-C, ma dimostra che questo aspetto è controllato da configurazione, non 'bruciato' nel sistema.
Digitare:
stty intr "^A"
che cambia in Ctrl-A
la combinazione di tasti per il segnale di interruzione.
Attenzione: digitare ogni carattere come indicato. Cioè doppio-apice, accento circonflesso, A (maiuscolo o minuscolo ui non importa), doppio-apice.
Spiegazione:
'Anticamente' i terminali avevano dei settaggi, p.es. la velocità in bit al secondo, parità, bit di start e di stop, ecc.
Tali settaggi si impostavano col comando stty
. In particolare, per vedere i settaggi correnti, usare:
stty -a
speed 38400 baud; rows 30; columns 72; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z;
rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon
-ixoff -iuclc -ixany -imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0
vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop
-echoprt echoctl echoke -flusho -extproc
NB: Qui e in esempi successivi il carattere $
non è da digitare.Serve a indicare il comando da dare, e differenziarlo dall'output prodotto dal comando.
Il rapporto fornisce due tipi di settaggi, quelli di controllo del terminale, e quelli della cosiddetta disciplina di linea. Tra i secondi abbiamo appunto tutti quelli con un segno di uguale, che denotano le sequenze per l'invio di segnali,
p.es. intr
, quit
, erase
, ecc.
I caratteri di controllo terminale sono da considerarsi in pratica obsoleti, gli altri sono ancora efficaci.
Attenzione:
Qualsiasi cambiamento ai settaggi di terminale, come nel nostro esempio, è labile, e funziona soltanto per
la sessione di terminale corrente. Al prossimo login ritorneranno i settaggi di default.
Per rendere permanenti i settaggi di terminale, i comandi di settaggio devono essere inseriti nal file.bashrc
nella directory di login. Questo è un file che viene eseguito ogni volta che viene lanciata la shell bash. (bashrc = bash run commands).
Naturalmente occorre un editor.