• Portada
    • Recientes
    • Usuarios
    • Registrarse
    • Conectarse

    Poner fondo blanco en emulador de terminal bash en Debian 9

    Programado Fijo Cerrado Movido
    Sistemas operativos
    2
    10
    2.1k
    Cargando más mensajes
    • Más antiguo a más nuevo
    • Más nuevo a más antiguo
    • Mayor número de Votos
    Responder
    • Responder como tema
    Accede para responder
    Este tema ha sido borrado. Solo los usuarios que tengan privilegios de administración de temas pueden verlo.
    • B
      Bienve
      Última edición por Bienve

      Un cordial saludo a todos/as.

      Quizás me podáis ayudar.

      Estoy siguiendo esta guía de Alejandro:
      https://hardlimit.com/guia-servidor-en-debian/

      Tengo instalado Debian 9 sin entorno gráfico y quiero que la consola (bash) tenga el fondo blanco con las letras negras, pero no hay manera, cuando configuro blanco con setterm u otro tipo de comandos, el blanco no es blanco, sino gris.

      Al aplicar el comando:

      man bash

      al final del texto indica GNU Bash 4.4

      En el foro exDebian he abierto un tema para ver si alguien sabe como hacerlo, y nada.
      https://exdebian.org/foro/poner-fondo-de-color-blanco-en-bash-debian-930-net-install

      También en la lista de correo de Debian en español:
      https://lists.debian.org/debian-user-spanish/2018/01/msg00016.html

      En alguna captura de la guía tiene la consola con el fondo blanco.

      https://hardlimit.com/wp-content/uploads/2017/08/debian-9-ssh-login.png

      Si alguien sabe como hacerlo, le agradecería la ayuda.

      Gracias de antemano.

      Nota: Tras escribirle un email a Alejandro me ha pedido que hiciera la consulta aquí, para que os podáis beneficiar todos/as de la respuesta(s).

      Editado

      cobitoC 1 Respuesta Última respuesta Responder Citar 0
      • cobitoC
        cobito Administrador @Bienve
        Última edición por

        @bienve En el caso concreto de esa guía, se usa Konsole como emulador de la consola (el de KDE 4 para ser más específicos). Este permite configurar perfiles pudiendo elegir el color del fondo y el texto:

        Konsole fondo blanco

        Cada emulador tiene su propia configuración y usando Debian es más que probable que no estés usando KDE o Plasma. ¿Sabes qué emulador usas?

        Toda la actualidad en la portada de Hardlimit
        Mis cacharros

        hlbm signature

        1 Respuesta Última respuesta Responder Citar 1
        • B
          Bienve
          Última edición por

          Gracias cobito por tu aportación.

          Estoy usando Debian 9 sin entorno gráfico, y el emulador de terminal que usa es GNU Bash 4.4, según indica al final el texto que muestra al aplicar el comando man bash.

          1 Respuesta Última respuesta Responder Citar 0
          • cobitoC
            cobito Administrador
            Última edición por

            @bienve Prueba con esto: echo -en "\e]P0ffffff"

            · -en habilita los caracteres de escape
            · \e] es el carácter de escape
            · P0 marca el espacio de color (de 0 a F)
            · ffffff es el blanco más brillante. Son los niveles RGB de 8 bits por canal en hexadecimal.

            Cuando lo hayas escrito, limpia la pantalla con clear.

            Toda la actualidad en la portada de Hardlimit
            Mis cacharros

            hlbm signature

            1 Respuesta Última respuesta Responder Citar 1
            • B
              Bienve
              Última edición por

              @cobito funciona perfectamente, muchas gracias.

              Con toda la información que he ido analizando estos días, y con las aportaciones que me han hecho también en el foro de exDebian ya puedo personalizarlo como quería.

              Lo único que falta es que los cambios realizados en el color sean permanentes, porque cada vez que reinicio tengo que meter de nuevo el código.

              B 1 Respuesta Última respuesta Responder Citar 0
              • B
                Bienve @Bienve
                Última edición por Bienve

                Solucionado.

                Explicación.

                De todo esto:

                if [ "$TERM" = "linux" ]; then
                echo -en "\e]P0232323" #black -> this is the background color as well.
                echo -en "\e]P1803232" #darkred
                echo -en "\e]P25b762f" #darkgreen
                echo -en "\e]P3aa9943" #brown
                echo -en "\e]P4324c80" #darkblue
                echo -en "\e]P5706c9a" #darkmagenta
                echo -en "\e]P692b19e" #darkcyan
                echo -en "\e]P7e5e5e5" #lightgray
                echo -en "\e]P8222222" #darkgray
                echo -en "\e]P9982b2b" #red
                echo -en "\e]PA89b83f" #green
                echo -en "\e]PBefef60" #yellow
                echo -en "\e]PC2b4f98" #blue
                echo -en "\e]PD826ab1" #magenta
                echo -en "\e]PEa1cdcd" #cyan
                echo -en "\e]PFdedede" #white -> this is the foreground color as well.
                clear #repaint the whole background with the new color
                fi

                Nos fijamos en "\e]P0 y "\e]P7. Los 6 dígitos siguientes se corresponden con el código de color hexadecimal, donde:

                P0 es el color para el background (fondo), que por defecto es el código hexadecimal: 232323
                P7 es el color para el foreground (texto), que por defecto es el código hexadecimal: e5e5e5
                

                Cuando indicamos:

                setterm --inversescreen on

                lo que hacemos es invertir P0 y P7, de modo que el fondo pasa a ser el gris (e5e5e5) y el texto pasa a ser el negro (232323).

                Cuando indicamos cualquier otro comando de los que hemos analizado haciendo referencia al blanco, mediante white o los códigos numéricos, lo que hace es llamar a P7, y como es gris, pues nunca muestra el blanco.

                De modo que si queremos un fondo blanco con letras negras, buscamos primero en código hexadecimal el tipo de blanco y de negro que queremos. Para ello estos recursos son de utilidad:

                https://es.wikipedia.org/wiki/Colores_web
                https://www.w3schools.com/colors/colors_hexadecimal.asp
                

                Atención: es importante hacer los cambios de color en un orden en que el contraste del fondo y el texto sea legible, o directamente hacer el cambio de P0 y P7 a la vez.

                Como ejemplo utilizaré para P0 el blanco: FFFFFF, y para P7 el negro: 232323. El código hexadecimal puede estar escrito en minúscula y/o mayúscula.

                echo -en "\e]P0FFFFFF" echo -en "\e]P7232323"

                y si no cambia de inmediato ejecutamos:

                clear

                Funciona correctamente en Debian 9 y en CentOS 7.

                Actualización:

                Si queremos que los cambios de color estén por defecto al reiniciar, seguiremos los siguientes pasos:

                Ejecutamos

                ls -a

                Nos mostrará entre otros archivos, el .bashrc y el .bash_profile (este último en Debian 9 yo no lo tenía)

                Ahora editamos o creamos el .bash_profile

                Para editarlo:

                nano ~/.bash_profile

                Para crearlo:

                nano .bash_profile

                ¿Y qué escribimos dentro?, pues depende de cuanto queramos personalizar el bash, podemos desde introducir todo el código que he citado arriba (que afecta desde P0 hasta PF), o para el ejemplo que he indicado en esta solución podemos escribir solo

                echo -en "\e]P0FFFFFF"
                echo -en "\e]P7232323"
                clear

                Guardamos el archivo con Ctrl+O, aceptamos y Ctrl+X para salir de nano. Reiniciamos la máquina y listo.

                A mi me funciona sin darle permisos de ejecución: chmod +x \.bash_profile

                Si posteriormente queremos editar los colores de P0, P7 u otras P, editamos el archivo .bash_profile

                Gracias a todos por vuestras aportaciones (@cobito y compañeros de exDebian).

                Saludos

                cobitoC 1 Respuesta Última respuesta Responder Citar 3
                • cobitoC
                  cobito Administrador @Bienve
                  Última edición por

                  Gracias por la apotación @bienve.

                  Para iniciar comandos al arranque de una sesión, puedes intentar editando el archivo .bash_profile que encontrarás en tu carpeta personal. Ahí sólo tienes que incluir los comandos que quieras ejecutar.

                  Toda la actualidad en la portada de Hardlimit
                  Mis cacharros

                  hlbm signature

                  B 1 Respuesta Última respuesta Responder Citar 1
                  • B
                    Bienve @cobito
                    Última edición por

                    @cobito gracias de nuevo, pero no tengo el archivo .bash_profile, solo el .bashrc, el cual intenté modificarlo con el siguiente código antes de que me indicaras tu solución. Pero no funcionó.

                    if [ "$TERM" = "linux" ]; then
                    echo -en "\e]P0232323" #black -> this is the background color as well.
                    echo -en "\e]P1803232" #darkred
                    echo -en "\e]P25b762f" #darkgreen
                    echo -en "\e]P3aa9943" #brown
                    echo -en "\e]P4324c80" #darkblue
                    echo -en "\e]P5706c9a" #darkmagenta
                    echo -en "\e]P692b19e" #darkcyan
                    echo -en "\e]P7e5e5e5" #lightgray
                    echo -en "\e]P8222222" #darkgray
                    echo -en "\e]P9982b2b" #red
                    echo -en "\e]PA89b83f" #green
                    echo -en "\e]PBefef60" #yellow
                    echo -en "\e]PC2b4f98" #blue
                    echo -en "\e]PD826ab1" #magenta
                    echo -en "\e]PEa1cdcd" #cyan
                    echo -en "\e]PFdedede" #white -> this is the foreground color as well.
                    clear #repaint the whole background with the new color
                    fi

                    Ahora estoy intentando con crontab lograr un script que me haga el cambio de color en el fondo y la letra en cada reinicio.

                    cobitoC 1 Respuesta Última respuesta Responder Citar 0
                    • cobitoC
                      cobito Administrador @Bienve
                      Última edición por cobito

                      @bienve El archivo .bash_profile lo puedes crear si no existe (dale permisos de ejecución). Si has usado ese script tal cual, deberás modificarlo para que aparezca el color que quieres. Es más, yo lo dejaría en su mínima expresión porque al no usar entorno gráfico, es algo que vas a querer ejecutar siempre y así evitas posibles problemas por variables de entorno incorrectas:

                      echo -en "\e]P0ffffff"
                      clear
                      

                      Toda la actualidad en la portada de Hardlimit
                      Mis cacharros

                      hlbm signature

                      1 Respuesta Última respuesta Responder Citar 0
                      • B
                        Bienve
                        Última edición por

                        Gracias @cobito, funciona perfectamente.

                        1 Respuesta Última respuesta Responder Citar 0
                        • 1 / 1
                        • First post
                          Last post

                        Foreros conectados [Conectados hoy]

                        2 usuarios activos (0 miembros e 2 invitados).
                        febesin, pAtO, krampak

                        Estadísticas de Hardlimit

                        Los hardlimitianos han creado un total de 543.3k posts en 62.8k hilos.
                        Somos un total de 34.7k miembros registrados.
                        sridharpat ha sido nuestro último fichaje.