GNU/Linux >> Tutoriels Linux >  >> Linux

Les espaces vides/l'arrière-plan d'un terminal peuvent-ils être remplacés par un motif aléatoire (mais joli) de caractères Ascii ?

Contexte et question

Il existe de nombreuses façons de coloriser l'environnement du terminal et du shell. La sortie de commandes individuelles, telles que ls et grep , peut également être colorisé. La notion de lecture de médias sur la console n'est pas directement liée, mais néanmoins intéressante, mais cela repose apparemment sur un cadre (bibliothèques) au-dessus du système de fenêtrage. La question suivante concerne uniquement le bash shell et son implémentation dans le framework de terminal Linux et ses fondements.

Veuillez considérer le montage suivant de "rendus" ASCII d'une scène dans un jeu 2D :

Ce ne sont pas des scènes générées aléatoirement. Les segments que j'ai sélectionnés dépeignent tous en fait une forme de terrain de "prairie" (arbres, buissons et arbustes, fleurs, herbe, etc.) d'un jeu qui utilise des caractères ASCII pour représenter de tels objets. Les 4 dernières scènes présentent des jeux de tuiles créés par l'utilisateur qui sont essentiellement un remappage de caractères ASCII avec des spécifications de couleur (ces détails sont triviaux - il suffit de dire que c'est l'inspiration visuelle pour ce que j'essaie d'accomplir ici en termes de visuels et " motif »).

Les caractéristiques communes à ces scènes du partage de montage sont :

  • 5-6 caractères ASCII différents au maximum (virgules, guillemets et quelques autres)
  • 2-4 couleurs utilisées
    • pour les personnages
    • pour les arrière-plans de caractères dans certains cas - le dernier exemple est là pour montrer l'utilisation de nuances de couleurs avec peu ou pas de caractères pour créer un motif, c'est-à-dire une mosaïque de couleurs

Ce que j'ai dans une VM pour le moment, c'est Arch Linux et bien que la question ne soit pas spécifique à la distribution, j'ai consulté leur documentation pour personnaliser le /etc/bash.bashrc dossier. Je peux voir que beaucoup d'explications entrent dans la configuration de l'apparence de l'invite et généralement de tous les éléments de premier plan. Il existe peu d'informations sur la configuration de l'arrière-plan, à l'exception généralement d'une couleur unie, comme ces paramètres et conseils :

# Background
On_Black='e[40m'       # Black
On_Red='e[41m'         # Red
On_Green='e[42m'       # Green
On_Yellow='e[43m'      # Yellow
On_Blue='e[44m'        # Blue
On_Purple='e[45m'      # Purple
On_Cyan='e[46m'        # Cyan
On_White='e[47m'       # White

Je ne comprends toujours pas conceptuellement quels sont ces "espaces" vides / vides / d'arrière-plan que je n'ai pas tapés lorsque j'utilise la console, c'est-à-dire "de quoi sont-ils faits?" pour ainsi dire. Surtout ceux qui ne sont pas à l'invite et qui s'enroulent autour des commandes qui sont renvoyées en écho. En ce qui concerne ce qui se passe sur la ligne active, il est possible de démontrer que bash agit de manière "orientée ligne" et que certaines opérations déclenchent un effacement de la ligne active (for i in $(seq 1 $(expr $(tput lines) * $(tput cols))); do echo -n M; done; tput cup 15 1 , puis à l'invite, tapez un caractère et reculez-le - a démontré un contributeur) - dont l'étendue peut varier d'une CLI à une autre, c'est-à-dire zsh. De plus, il semble que lorsque j'ajoute quelque chose comme [

Linux
  1. Comment convertir les caractères hexadécimaux en caractères ASCII dans le shell Linux ?

  2. Comment puis-je compter le nombre de caractères dans une variable Bash

  3. Trouver des fichiers avec des caractères Windows illégaux dans le nom sous Linux

  4. Remplacer les espaces par des traits de soulignement via BASH

  5. Pycharm tensorflow ImportError mais fonctionne bien avec Terminal

Planifier une visite avec le psychiatre Emacs

Apportez de la couleur à votre terminal Linux avec lolcat

Exécutez ASCII Globe In Terminal avec l'utilitaire globe-cli

Comment travailler avec le processus de premier plan et d'arrière-plan sous Linux

Convertir les onglets en espaces dans le terminal Linux avec la commande Expand

Utilisation de la commande tr sous Linux pour jouer avec des personnages