Como muchos usuarios descubren con frustración, UNIX se desarrolló originalmente en teletipos que no tenían la función de retroceso. En consecuencia, el proceso de modificación de los datos de entrada lo realizaban caracteres imprimibles: #, para eliminar un carácter, y @, para eliminar la línea. La interrupción se definía como borrado (ASCII DEL). Esta situación se ha trasladado al proceso de inicio de sesión en un sistema. #, @ y DEL siguen siendo en la actualidad los caracteres de control de inicio de sesión por defecto de HP-UX.
Los usuarios, una vez que han iniciado una sesión, soslayan este inconveniente incluyendo el comando stty en sus secuencias de comandos .profile y .login para cambiar DEL, # y @ por los caracteres de control utilizados habitualmente, por ejemplo, ETX (Ctrl-C), retroceso (Ctrl-H) y NAK (Ctrl-U), respectivamente.
Puede cambiar los caracteres de control de inicio de sesión utilizados por programas tales como getty, rlogin, ssh y telnet. Para ello, utilice el comando stty para definir los parámetros deseados en un archivo de dispositivo especial denominado /dev/ttyconf. Para obtener detalles, consulte la página de manual de stty(1).
El archivo /dev/ttyconf proporciona un medio para cambiar el comportamiento por defecto para todos los inicios de sesión de todos los usuarios. /dev/ttyconf representa un dispositivo de terminal y mantiene un conjunto de todos los caracteres de control de terminal que puede mostrar el comando stty. Se pueden visualizar y modificar los parámetros de cualquier archivo de dispositivo de terminal transmitiendo el archivo al comando stty como entrada.
Cuando se reinicia un sistema, se restablece el contenido del archivo /dev/ttyconf en los valores por defecto, como muestra a continuación el comando stty con la opción -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> |
Para modificar alguno de los parámetros mostrados, ejecute el comando stty con las opciones correspondientes. Por ejemplo, para cambiar los valores por defecto del sistema para intr, erase y kill por Ctrl-C, Ctrl-H y Ctrl-U, respectivamente, escriba el comando:
# stty intr ^C erase ^H kill ^U < /dev/ttyconf |
Para ver simplemente las variaciones de los valores por defecto, escriba el comando stty sin opciones:
# stty < /dev/ttyconf
intr = ^C; erase = ^H; kill = ^U;
swtch <undef>; |
A diferencia de otros comandos de inicio de sesión, el comando getty no utiliza automáticamente el archivo /dev/ttyconf; necesita la opción -f. En el archivo /etc/inittab, agregue la opción -f a cada comando getty. La próxima vez que se reabra el dispositivo de terminal, el comando getty utilizará la nueva configuración. Para restablecer la consola del sistema, deberá reiniciar el sistema. Para obtener detalles, consulte la página de manual de getty(1M).
Para definir el archivo /dev/ttyconf cada vez que se inicia el sistema, agregue el comando stty al archivo /etc/inittab. Si se coloca antes del comando getty para la consola, ésta utilizará también los caracteres de control revisados:
Por ejemplo, cambie:
cons:123456:respawn:/usr/sbin/getty console console # system console
ttp1:234:respawn:/usr/sbin/getty -h tty0p1 9600 |
Por:
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 |