Molti utenti scoprono con disappunto che UNIX è stato sviluppato originariamente in macchine TeleType, prive dell’operazione backspace. Di conseguenza, la procedura di modifica dei dati immessi era eseguita tramite i caratteri: #, che elimina un carattere e @, che elimina una riga. L’interruzione era definita come Rubout (ASCII CANC). Questa situazione si trova anche nella procedura di accesso ad un sistema. Ancora oggi #, @ e CANC sono i caratteri di controllo predefiniti dell’accesso a HP-UX.
Dopo avere eseguito l’accesso, gli utenti possono aggirare questo inconveniente inserendo il comando stty nei propri script .profile e .login, in modo da sostituire i caratteri CANC, # e @ con i caratteri di controllo di uso comune, rispettivamente con ETX (Ctrl-C), backspace (Ctrl-H) e NAK (Ctrl-U).
È possibile cambiare i caratteri di controllo dell’accesso utilizzati da programmi come getty, rlogin, ssh e telnet. Per farlo, si usa stty per impostare il gruppo di parametri desiderati nel file speciale di dispositivo /dev/ttyconf. Per i dettagli, vedere stty(1).
Il file /dev/ttyconf offre il modo di modificare il comportamento predefinito di tutti gli accessi di tutti gli utenti. Il file /dev/ttyconf rappresenta un dispositivo terminale e mantiene un gruppo di tutti i caratteri di controllo dei terminali che è possibile visualizzare con stty. È possibile visualizzare e modificare i parametri di qualsiasi file di dispositivo terminale usando il file come input del comando stty.
Quando il sistema è riavviato, il contenuto di /dev/ttyconf è reimpostato ai valori predefiniti, così come mostrato da stty con l’opzione -a:
# stty -a < /dev/ttyconf
min = 4; time = 0;
intr = DEL; quit = ^\; erase = #; kill = @
eof = ^D; eol = ^@; eol2 <undef>; swtch <undef>
stop = ^S; start = ^Q; susp <undef>; dsusp <undef>
werase <undef>; lnext <undef> |
Per cambiare uno qualsiasi dei parametri mostrati, eseguire stty con l’opzione opportuna. Ad esempio, per cambiare i valori predefiniti di sistema di intr, erase e kill rispettivamente in Ctrl-C, Ctrl-H e Ctrl-U, eseguire il comando:
# stty intr ^C erase ^H kill ^U < /dev/ttyconf |
Per visualizzare solamente le variazioni rispetto ai valori predefiniti, digitare stty senza opzioni:
# stty < /dev/ttyconf
intr = ^C; erase = ^H; kill = ^U;
swtch <undef>; |
Diversamente dagli altri comandi d’accesso, getty non utilizza automaticamente /dev/ttyconf, richiede l’opzione -f. Nel file /etc/inittab, aggiungere l’opzione -f ad ogni comando getty. Alla successiva apertura del terminale, getty userà le nuove impostazioni. Per reimpostare la console di sistema è necessario riavviare il sistema. Per i dettagli, vedere getty(1M).
Per impostare /dev/ttyconf per ogni avvio del sistema, aggiungere il comando stty a /etc/inittab. Collocandolo prima del comando getty per la console, questa utilizzerà i caratteri di controllo revisionati:
Ad esempio, cambiare:
cons:123456:respawn:/usr/sbin/getty console console # system console
ttp1:234:respawn:/usr/sbin/getty -h tty0p1 9600 |
In:
ttco::bootwait:/sbin/stty intr ^C erase ^H kill ^U < /dev/ttyconf
cons:123456:respawn:/usr/sbin/getty -f console console # system console
ttp1:234:respawn:/usr/sbin/getty -f -h tty0p1 9600 |