Anterior Siguiente Indice

4. Cómo dar una configuración por defecto.

Esto es realizado individualmente para cada consola virtual con la ayuda de la secuencia ANSI. (Esta información ha sido encontrada estudiando el código fuente del núcleo. No puedo decir que se trate de un estándar.)

ESC [8]

que especifica los valores por defecto de colores foreground y background. La secuencia ANSI de recomposición de atributos, ESC[m, permite entonces tener en cuenta esos colores antes que el blanco sobre fondo negro.

El método descrito aquí se ha supuesto para sistemas aislados, donde los accesos se hacen sólo en la consola. Esto no funciona para logins realizados desde terminales remotos, conexiones por módem o desde otras máquinas, ya que no interpretarían las secuencias. La interpretación de códigos ANSI es una propiedad de las consolas Linux y que sólo existe en pocos programas de terminal.

Si se encuentra en un sistema aislado, un buen medio de tener en cuenta los colores para cada consola es la de modificar el fichero /etc/issue, y ver el resultado generado. Generalmente (y en particular en las distribuciones Slackware) este fichero es leído y mostrado en cada inicialización del sistema. Así si su /etc/rc.d/rc.S contiene (alrededor de la línea 75):

    # Inicializa /etc/issue y etc/motd para dar la version del nucleo usado
    # ATENCION: los ficheros /etc/issue y /etc/motd son creados en cada inicio
    # Ponga esto en comentario si desea personalizar para siempre todos
    # estos ficheros.
    echo "">/etc/issue
    echo Bienvenido al mundo maravilloso de Linux \
         '/bin/uname -a | /bin/cut -d\ -f3'.>>/etc/issue
    echo >> /etc/issue

Coloque estas líneas en comentario o modifíquelas como sigue:

    # Ponga esto en comentario si desea personalizar para siempre todos
    # estos ficheros.
    ESCAPE="<sustituir esto por un solo caracter de escape>"
    echo "${ESCAPE}[H${ESCAPE}[37;44m${ESCAPE}[8]${ESCAPE}[2J">/etc/issue

Mi shell de arranque no entiende el \033, debo especificar el código ASCII 27 en mi script como indiqué en el primer párrafo. La línea posee el aspecto:

ESCAPE="^[".

Este código tiene por objeto colocar el cursor al principio de la ventana, cambiar los colores, salvar la selección y borrar la pantalla. Dicha modificación solo tendrá efecto al reinicializar la máquina.

Si su máquina Linux no está aislada, puede que aparezcan diversos problemas en las conexiones con usuarios remotos. Esto es debido al hecho de que su terminal no interpreta las secuencias de escape ANSI.

Debe entonces ajustar a nivel de usuario:

 if ["\*(dRTERM"="console"]; then
   echo "\033[37;44m\033[8]"
 fi

o bien,

 if ("\*(dRTERM"=="console") then
   echo "\033[37;44m\033[8]"
 endif

Si se desea que la modificación afecte a todos los usuarios del sistema, basta tan sólo con que el root modifique los ficheros /etc/profile o /etc/csh.login. (Reitero una vez más que si el shell no puede interpretar los \0xx, en particular el código \033, basta con sustituir este ultimo por "ESC".


Anterior Siguiente Indice