Hoe verander je de kleur van je Linux terminal
On januari 22, 2022 by adminJe kunt kleur toevoegen aan je Linux terminal met speciale ANSI coderingsinstellingen, dynamisch in een terminal commando of in configuratiebestanden, of je kunt kant-en-klare thema’s gebruiken in je terminal emulator. Hoe dan ook, de nostalgische groene of amberkleurige tekst op een zwart scherm is geheel optioneel. Dit artikel laat zien hoe je Linux zo kleurrijk (of monochroom) kunt maken als je zelf wilt.
Terminal mogelijkheden
Moderne systemen staan meestal standaard op tenminste xterm-256color, maar als je zonder succes probeert kleur aan je terminal toe te voegen, moet je je TERM instelling controleren.
Historisch gezien waren Unix terminals letterlijk dat: fysieke punten aan het letterlijke eindpunt (termination) van een gedeeld computersysteem waar gebruikers commando’s konden intypen. Ze waren uniek ten opzichte van de teletype machines (dat is waarom we vandaag de dag nog steeds /dev/tty devices in Linux hebben) die vaak werden gebruikt om op afstand commando’s te geven. Terminals hadden ingebouwde CRT monitoren, zodat gebruikers in hun kantoor aan een terminal konden zitten om direct met het mainframe te communiceren. CRT monitoren waren duur – zowel om te maken als om te bedienen; het was gemakkelijker om een computer ruwe ASCII tekst te laten uitspuwen dan om zich zorgen te maken over anti-aliasing en andere finesses die moderne computeristen als vanzelfsprekend beschouwen. De ontwikkelingen in de technologie gingen echter ook toen al snel, en het werd al snel duidelijk dat wanneer nieuwe video display terminals werden ontworpen, zij nieuwe mogelijkheden nodig hadden die op een optionele basis beschikbaar moesten zijn.
Zo ondersteunde de fancy nieuwe VT100 die in 1978 werd uitgebracht ANSI kleur, dus als een gebruiker het terminal type als vt100 identificeerde, dan kon een computer kleurenuitvoer leveren, terwijl een basis serieel apparaat misschien niet zo’n optie had. Hetzelfde principe geldt vandaag, en het wordt ingesteld door de omgevingsvariabele TERM. U kunt uw TERM-definitie controleren met echo:
$ echo $TERM
xterm-256color
Het verouderde (maar op sommige systemen nog steeds gehandhaafde in het belang van achterwaartse compatibiliteit) /etc/termcap bestand definieerde de mogelijkheden van terminals en printers. De moderne versie hiervan is terminfo, te vinden in /etc of /usr/share, afhankelijk van uw distributie. Deze bestanden geven een lijst van mogelijkheden die beschikbaar zijn in verschillende soorten terminals, waarvan vele gedefinieerd zijn door historische hardware: er zijn definities voor vt100 tot vt220, en ook voor moderne software-emulators zoals xterm en Xfce. De meeste software maakt het niet uit welk terminal type je gebruikt; in zeldzame gevallen kun je een waarschuwing of foutmelding krijgen over een onjuist terminal type wanneer je inlogt op een server die controleert op compatibele functies. Als je terminal is ingesteld op een profiel met zeer weinig mogelijkheden, maar je weet dat de emulator die je gebruikt meer mogelijkheden heeft, dan kun je de instelling wijzigen door de omgevingsvariabele TERM te definiëren. U kunt dit doen door de TERM variabele te exporteren in uw ~/.bashrc configuratiebestand:
export TERM=xterm-256color
Bewaar het bestand, en laad uw instellingen opnieuw:
$ source ~/.bashrc
ANSI kleurcodes
Moderne terminals hebben ANSI escape-sequenties geërfd voor “meta” functies. Dit zijn speciale reeksen tekens die een terminal interpreteert als acties in plaats van tekens. Bijvoorbeeld, deze sequentie wist het scherm tot de volgende prompt:
$ printf `3
Or you can use dircolors directly:
$ dircolors --print-database
# image formats
.jpg 01;35
.jpeg 01;35
.mjpg 01;35
.mjpeg 01;35
.gif 01;35
.bmp 01;35
.pbm 01;35
.tif 01;35
.tiff 01;35
If that looks cryptic, it’s because it is. The first digit after a file type is the attribute code, and it has six options:
- 00 none
- 01 bold
- 04 underscore
- 05 blink
- 07 reverse
- 08 concealed
The next digit is the color code in a simplified form. You can get the color code by taking the final digit of the ANSII code (32 for green foreground, 42 for green background; 31 or 41 for red, and so on).
Your distribution probably sets LS_COLORS globally, so all users on your system inherit the same colors. If you want a customized set of colors, you can use dircolors for that. First, generate a local copy of your color settings:
$ dircolors --print-database > ~/.dircolors
Wijzig uw lokale lijst naar wens. Als u tevreden bent met uw keuzes, slaat u het bestand op. Uw kleurinstellingen zijn slechts een database en kunnen niet direct door ls worden gebruikt, maar u kunt dircolors gebruiken om shellcode te krijgen die u kunt gebruiken om LS_COLORS in te stellen:
$ dircolors --bourne-shell ~/.dircolors
LS_COLORS='rs=0:di=01;34:ln=01;36:mh=00:
pi=40;33:so=01;35:do=01;35:bd=40;33;01:
cd=40;33;01:or=40;31;01:mi=00:su=37;41:
sg=30;43:ca=30;41:tw=30;42:ow=34;
export LS_COLORS
Kopieer en plak die uitvoer in uw ~/.bashrc bestand en laad het opnieuw. Als alternatief kunt u die uitvoer rechtstreeks in uw .bashrc-bestand dumpen en opnieuw laden.
$ dircolors --bourne-shell ~/.dircolors >> ~/.bashrc
$ source ~/.bashrc
U kunt Bash ook .dircolors laten oplossen bij het opstarten in plaats van de conversie handmatig uit te voeren. Realistisch gezien zult u waarschijnlijk niet vaak van kleur veranderen, dus dit is misschien wat overdreven, maar het is een optie als u van plan bent uw kleurenschema vaak te wijzigen. Voeg in uw .bashrc-bestand de volgende regel toe:
] && eval "`dircolors --sh $HOME/.dircolors`"
Als u een .dircolors-bestand in uw homedirectory hebt, evalueert Bash dit bij het opstarten en stelt dienovereenkomstig LS_COLORS in.
Color
Kleuren in uw terminal zijn een gemakkelijke manier om uzelf een snelle visuele referentie te geven voor specifieke informatie. Maar misschien wilt u er niet te zwaar op leunen. Kleuren zijn immers niet universeel, dus als iemand anders uw systeem gebruikt, ziet hij de kleuren misschien anders dan u. Bovendien, als u een verscheidenheid van hulpmiddelen gebruikt om met computers te interageren, zou u ook kunnen vinden dat sommige terminals of verbindingen op afstand niet de kleuren bieden die u verwacht (of helemaal geen kleuren).
Die waarschuwingen terzijde, kleuren kunnen nuttig en leuk zijn in sommige werkstromen, dus maak een .dircolor database en pas het naar hartelust aan.
Geef een antwoord