sábado, 18 de noviembre de 2017

Como escribir símbolos ASCII en el terminal de ubuntu


Hola amigos.

En este escueto artículo os mostramos como escribir los símbolos y caracteres del código ASCII en la terminal de Linux y en cualquier editor de textos de este sistema operativo.


Como ya sabéis en el sistema operativo Windows estos caracteres se pueden escribir con la combinación del teclado "Alt" + el número del código, y os aparece el carácter escrito.

Pues bien en el sistema operativo Linux la combinación del teclado es "Ctrl" + "Shift" + "u" + el número del código ASCII pero en Hexadecimal.

Podéis convertir cualquier número decimal a Hexadecimal en cualquier calculadora científica.

Aquí os muestro una imagen de los códigos ASCII en decimal, hexadecimal y en html:


 Y aquí otra imagen donde os muestro una combinación de filas y columnas para poder saber el código ASCII en hexadecimal:


Con un ejemplo lo entenderéis rápidamente:

Si queremos escribir el símbolo de la cedilla en el terminal, pulsaremos la combinación de teclas "Ctrl" + "Shift" + "u", ahora se nos mostrará en el terminal una letra "u" subrayada, quedando a la espera de que introduzcamos un número del código ASCII en hexadecimal. Viendo esta última imagen vemos que la fila 7 y la columna E es la que contienen la cedilla. Entonces escribiremos 7E.
Y se nos mostrará inmediatamente el símbolo en la terminal.

Lo mismo sirve para los editores de texto en Linux.

También deberíais saber que para obtener rápidamente la tabla de códigos ASCII en el mismo terminal de comandos os bastará con escribir en el terminal el siguiente comando:

$ man ascii

Y el programa manual de comandos (man) os mostrará la tabla de los 128 códigos ASCII con sus valores en octal, decimal y hexadecimal.

Imágenes del resultado de salida por terminal:









A parte de estos 128 caracteres ASCII, ¿sabéis que hay mas símbolos que podéis representar en el emulador del terminal de comandos o en cualquier editor de textos de las diferentes distribuciones de GNU/Linux? Son los llamados unicode.

Solo tenéis que mirar en el final del manual man de ASCII. Hay una serie de documentación de símbolos y caracteres catalogados por tipos de lenguas según unas ISO. Os lo resalto en la siguiente captura:


Vamos a husmear en los diferentes manuales, por ejemplo en el "iso_8859-1". escribimos en el emulador de terminal:

man iso_8859-1

Y podemos ver una serie de símbolos con su código octal, decimal y hexadecimal que podemos usar.



En este enlace tenéis parte de códigos matemáticos. Es un artículo de wikipedia.

Pero si queréis verlos absolutamente todos, en este enlace están todos los códigos, llamados unicode (definición de unicode en wikipedia): símbolos matemáticos, de puntuación, según cada lengua, etc.

Podemos llegar a escribir en el terminal estos símbolos: (con la combinación de teclas que os he nombrado en el principio de este artículo: "Ctrl" "Shift" "u" y el código pertinente del símbolo):


O en el editor de texto gedit:



IMPORTANTE: Hay algunas distribuciones gnu/Linux (Linux Lite 4.6, por ejemplo), en que la forma de la entrada de símbolos es la misma, pero cambia la visualización de la ejecución por pantalla. Es decir, cuando pulsamos la combinación de teclas "Ctrl" mas "Shift" y posteriormente la letra u, no nos aparece nada por pantalla, ni la letra u subrayada, ha dejado de aparecer el cursor parpadeante en el prompt, pero la función está activa y a la espera de la entrada del posterior código, el cual cuando lo pulséis tampoco os aparecerá por pantalla, hasta que presionéis la tecla "Enter", y entonces si os dará el resultado del símbolo por pantalla.

Imagen del emulador de terminal de comandos en la distro Linux Lite 4.6 antes de ejecutar la entrada del código unicode, donde se aprecia el cursor en el prompt a la espera de la entrada de datos:


Imagen del emulador de terminal de comandos en la distro Linux Lite 4.6 pulsando la combinación de teclas "Ctrl" "Shift" "u" y la entrada del código unicode, donde se aprecia que no aparece ni la letra u subrayada ni la combinación de teclas del código por pantalla y el cursor en el prompt ha desaparecido, significa que está captando la entrada de datos por teclado:



Imagen del emulador de terminal de comandos en la distro Linux Lite 4.6 una vez hemos pulsado la tecla "Enter" y nos muestra por pantalla el resultado de la operación, el cursor en el prompt vuelve a parecer, para continuar con la entrada de caracteres desde el teclado:



Esta forma de proceder será el mismo en cualquier aplicación de dichas distribuciones (como Linux Lite) ya sea el emulador de terminal de comandos o el procesador de textos como LibreOffice Writer, etc.

Fácil verdad?

Si queréis ver un video práctico aquí tenéis uno:



Espero os sirva de ayuda y nos vemos en otro artículo.
Saludos.

38 comentarios:

  1. Hola tengo una duda aparte, Se pueden hacer gifs ASCII en la terminal o una animacion?
    Es mas que nada por que quiero hacer un script con una decoracion

    ResponderEliminar
  2. Muchas gracias,
    Vengo de tropezar en innumerables webs que no me daban respuesta al problema, por fin alguien que entiende...

    ResponderEliminar
  3. Gracias por la info, es muy util aunque sigue siendo un enredo 10 veces peor que en WINDOWS, donde solo pulsas ALT + numero y listo. Pero bueno hay cosas en las que linux es peor que windows o mac

    ResponderEliminar
    Respuestas
    1. No comparto tu opinión. Que la entrada sea en hexadecimal no tiene por que ser un enredo, simplemente es diferente. Todo sistema tiene apartados mejores o peores, pero no cambio GNU/Linux ni por Windows ni tampoco por MacOS.
      Saludos.

      Eliminar
    2. Poner el código en decimal o en hexadecimal no hace la diferencia, lo que es un engorro es tener que mantener presionadas tres teclas al mismo tiempo que se introduce el codigo, amo a Linux pero no hay que caer en la histeria de defenderlo a toda costa, en este caso es mas complicado y no hay mas vueltas que darle

      Eliminar
    3. Es que no debes tenerlas pulsadas al mismo tiempo que introduces el código, por eso no es nada complicado. Siempre hay que darle dos o tres vueltas a las cosas.

      Eliminar
    4. Mano izquierda pulsa Ctrl+Shift --> mano derecha pulsa u --> fuera manos --> escribe el código y pulsa Enter.

      Eliminar
    5. Perfecto, gracias por aclarárselo.

      Eliminar
  4. Cuando presiono "Ctrl" + "Shift" + "U", en un editor de texto como sublime text no me funciona, ¿alguien me puede ayudar?

    ResponderEliminar
    Respuestas
    1. Tengo Sublime-text instalado en Ubuntu 18.04 y todos los códigos unicode que escribo aparecen.
      Cuando pulsas las dos teclas "Ctrl" "Shift", las mantienes pulsadas y presionas la tecla "u", aparece la "u" en un bocadillo, sueltas las teclas y luego pulsas el código unicode, por ejemplo "7e", te apare junto a la u en el bocadillo, cuando pulsas la tecla "Enter", te aparecer
      a escrito el símbolo.
      Saludos

      Eliminar
    2. Estoy en una Sandbox pero tampoco me aparece la activación del las teclas código Unicode.

      Eliminar
  5. esto es lo peor ke vi en mi vida. control shift u? acaso tenemos dedos de 30 centimetros? aunke sea control shift a, s... pero u? incluso con ambas manos despues no puedo teclear el teclado numerico. hagan algo !

    ResponderEliminar
    Respuestas
    1. Si te hubieras leído el artículo entero, no tendrías dudas. A no ser que no tengas dos manos. Cuando presionas Ctrl Shift u, ayudándote de las dos manos deberá aparecerte una u subrayada o a veces nada (desapareciendo el cursor), depende de la distribución que uses. Inmediatamente puedes entrar el código unicode con el teclado numérico. Saludos.

      Eliminar
    2. Este comentario ha sido eliminado por un administrador del blog.

      Eliminar
    3. no es nuestro problema que hayas nacido tan enano

      Eliminar
  6. y también kiero aclarar ke no funciona este "truco" = "control shift u" haciendo magia con mis manos y oprimiendo el teclado numerico no pasa nada, solo se abre una ventana nueva de codigo o algo raro ke no tienen ke ver con "ASCII" por favor solucionen. saludos!

    ResponderEliminar
    Respuestas
    1. No es un truco, sino una utilidad. Y SI "funciona". Pulsa "Ctrl" "Shift" "u", aparta las manazas del teclado y pulsa el código unicode necesario. Saludos

      Eliminar
  7. por que ese comando solo los puedo usar en la ventana de texto pero no en la terminal?

    ResponderEliminar
    Respuestas
    1. No es un comando. Es una combinación de teclas que permiten la entrada de codigos unicode en hexadecimal. Y en todas las distribuciones GNU/Linux se introduce de la misma forma. Y en todas las aplicaciones de cada distribución (emulador de terminal, editores de texto como gedit, procesadores de texto como libreoffice writer) se introducen de la misma forma.
      Saludos.

      Eliminar
  8. Saludos.
    ¿Qué puedo hacer si la tecla de shift no funciona?

    ResponderEliminar
    Respuestas
    1. Te fallan las dos teclas shift? Supongo que sabes que tienes otra a la derecha del teclado.
      Saludos.

      Eliminar
  9. gooood!!!! buenísimo, me encantó ¡Muchas Gracias!

    ResponderEliminar
  10. gracias una vez mas, me ayudo con una duda que para mi que soy principiante me devolvió el animo de seguir

    ResponderEliminar
  11. No me funciono, no sale la u y nada,

    ResponderEliminar
    Respuestas
    1. Hay según que emuladores de terminal en que no aparece la u subrayada, aún así entra el código y pulsa enter y aparecerá el símbolo. Suerte.

      Eliminar
  12. Buenas!! He llegado a tu artículo buscando algo relacionado, a ver si me pudieras ayudar.

    En fstab estamos declarando un ftp de proveedor y resulta que en su usuario lleva una @: usu@rio@dominio.com Ocurre que interpreta el usuario hasta la primera @ y el dominio a partir de esta. He estado investigando para poder pasar la @ como su valor en hexadecimal y decimal pero no consigo nada, he probado con el carácter de escape \ y varias combinaciones con el valor decimal y hexadecimal, '%40' "%40" \%40 '\%40' "\%40" \40 '\40' "\40", incluso he probado con \\@ Entiendo que la idea sería pasar el valor de la @ y que fstab lo interprete como texto pero no lo consigo.

    Se te ocurre alguna forma de poder hacerlo?

    Muchas gracias de antemano!!

    ResponderEliminar
    Respuestas
    1. Deberás cambiar el nombre de usuario. La @ un carácter especial en Unix. Suerte

      Eliminar
  13. En windows es mas facil, Alt+teclado numerico y listo

    ResponderEliminar
  14. como coño hago si no me funciona el bendito ctrl + shit +u

    ResponderEliminar
  15. Excelente sirve, correcto las instrucciones... para quien no le sirve el control +shift+u debe establecer las condiciones predeterminadas de los atajos.

    ResponderEliminar

Gracias por participar en este blog.