Debian

De landinstellingen op Debian GNU/Linux begrijpen

De landinstellingen op Debian GNU/Linux begrijpen
Elk computersysteem wordt geleverd met zijn specifieke instellingen met betrekking tot de systeemtaal en tekencodering die in gebruik is. Op basis van deze configuratie worden de foutmeldingen, het helpsysteem en de feedback van het programma op het scherm weergegeven.

Op UNIX/Linux-systemen wordt deze setup POSIX [7] locales genoemd en gestandaardiseerd als IEEE Std 1003.1-2017 [3]. Zo'n landinstelling kan variëren voor het systeem als geheel, en de afzonderlijke gebruikersaccounts zoals elke afzonderlijke gebruiker zijn werkomgeving kan individualiseren. In dit artikel zullen we je uitleggen hoe je de huidige locale setup op Debian GNU/Linux kunt achterhalen, hoe je de enkele stelschroeven begrijpt en hoe je het systeem aan je behoeften kunt aanpassen.

Merk op dat dit artikel is afgestemd op Debian GNU/Linux Release 10 “Buster”. Tenzij anders vermeld, werken de hier beschreven technieken ook voor afgeleide producten zoals Ubuntu of Linux Mint [8].

Wat is een landinstelling??

Over het algemeen is een landinstelling een reeks waarden die de aard en de conventies van een land of een cultuur weerspiegelen. Deze waarden worden onder andere opgeslagen als omgevingsvariabelen die de taal, de tekencodering, de datum- en tijdnotatie, het standaardpapierformaat, de valuta van het land en de eerste dag van de week vertegenwoordigen.

Zoals eerder vermeld, is er een algemene instelling die bekend staat als 'default locale', en een door de gebruiker gedefinieerde instelling. De standaard locale werkt systeembreed en wordt opgeslagen in het bestand /etc/default/locale. Listing 1 toont de standaard locale op een Debian GNU/Linux met Duits als hoofdtaal, en 8 bit unicode (UTF-8) als de karakterset [11].

Lijst 1: De standaard locale op een Duitse Debian GNU/Linux

$ cat /etc/default/locale # Bestand gegenereerd door update-locale LANG=“de_DE.UTF-8” $ --

Houd er rekening mee dat in tegenstelling tot Debian GNU/Linux, op sommige eerdere Ubuntu-versies de systeembrede locale-instellingen worden opgeslagen in /etc/locale.conf.

De door de gebruiker gedefinieerde instellingen worden opgeslagen als een verborgen bestand in uw thuismap en de daadwerkelijke bestanden die worden geëvalueerd, zijn afhankelijk van de login-shell die u gebruikt [6]. De traditionele Bourne-shell (/bin/sh) [4] leest de twee bestanden /etc/profile en ~/.profiel, terwijl de Bourne-Again shell (Bash) (/bin/bash) [5] leest /etc/profile en ~/.bash_profile. Als uw login-shell Z-shell (/bin/zsh) [9] is, worden de twee bestanden ~/.zprofiel en ~/.zlogin worden gelezen, maar niet ~/.profiel tenzij aangeroepen in Bourne shell-emulatiemodus [10].

Het starten van een shell in een terminal in een bestaande sessie resulteert in een interactieve shell zonder inloggen. Dit kan resulteren in het lezen van de volgende bestanden - ~/.bashrc voor Bash, en /etc/zshrc evenals ~/.zshrc voor Z-shell [6].

Een land een naam geven

Zoals hier uitgelegd [12], volgt de naam van een landinstelling een specifiek patroon. Het patroon bestaat uit taalcodes, tekencodering en de beschrijving van een geselecteerde variant.

Een naam begint met een ISO 639-1 kleine tweeletterige taalcode [13], of een ISO 639-2 drieletterige taalcode [14] als de taal geen tweeletterige code heeft. Het is bijvoorbeeld de voor Duits, fr voor Frans en cel voor Keltisch. De code wordt voor veel, maar niet alle talen gevolgd door een onderstrepingsteken _ en door een ISO 3166-landcode van twee letters in hoofdletters [15]. Dit leidt bijvoorbeeld tot de_CH voor Zwitsers-Duits en fr_CA voor een Franstalig systeem voor een Canadese gebruiker die zich waarschijnlijk in Québec bevindt.

Eventueel een punt . volgt de naam van de tekencodering, zoals UTF-8 of ISO-8859-1, en het @-teken gevolgd door de naam van een variant. De naam [email protected] beschrijft bijvoorbeeld de configuratie voor een Engels systeem voor Ierland met UTF-8-tekencodering en de euro als valutasymbool.

Opdrachten en hulpmiddelen

Het aantal opdrachten met betrekking tot landinstellingen is relatief laag. De lijst bevat landinstellingen die puur de huidige landinstellingen weergeven. De tweede is localectl die kan worden gebruikt om de systeemlandinstellingen en toetsenbordindelingsinstellingen op te vragen en te wijzigen. Om een ​​locale te activeren komen de tools dpkg-reconfigure en locale-gen in het spel - zie onderstaand voorbeeld.

Toon de landinstelling die in gebruik is

Stap één is om de huidige locale op uw systeem te achterhalen met behulp van de locale-opdracht als volgt:

Lijst 2: Toon de huidige landinstelling

$ locale LANG=de_DE.UTF-8 LANGUAGE= LC_CTYPE=“de_DE.UTF-8” LC_NUMERIC="de_DE.UTF-8”
LC_TIME="de_DE.UTF-8” LC_COLLATE="de_DE.UTF-8” LC_MONETARY="de_DE.UTF-8”
LC_MESSAGES="de_DE".UTF-8” LC_PAPER="de_DE.UTF-8” LC_NAME="de_DE.UTF-8”
LC_ADDRESS="de_DE".UTF-8” LC_TELEPHONE="de_DE.UTF-8” LC_MEASUREMENT="de_DE.UTF-8”
LC_IDENTIFICATION="de_DE".UTF-8” LC_ALL= $ --

Houd er rekening mee dat andere Linux-distributies dan Debian GNU/Linux extra omgevingsvariabelen kunnen gebruiken die hierboven niet zijn vermeld. De enkele variabelen hebben de volgende betekenis:

Beschikbare landinstellingen weergeven

Vervolgens kunt u de beschikbare landinstellingen op uw systeem weergeven met behulp van het locale-commando vergezeld van de optie -a. -a is een afkorting voor -all-locales:

Lijst 3: Toon beschikbare landinstellingen

$ landinstelling -a C C.UTF-8 de_DE@euro de_DE.utf8 nl_US.utf8 POSIX $ --

Listing 3 bevat twee landinstellingen voor zowel Duits (Duitsland) als Engels (VS). De drie ingangen C, C.UTF-8 en POSIX zijn synoniemen en vertegenwoordigen de standaardinstellingen die geschikt zijn voor gegevens die worden geparseerd door een computerprogramma. De uitvoer in Listing 3 is gebaseerd op de lijst met ondersteunde locales die zijn opgeslagen in /usr/share/i18n/SUPPORTED.

Bovendien leidt het toevoegen van de optie -v (afkorting van -verbose) aan de aanroep tot een veel uitgebreidere uitvoer die de LC_IDENTIFICATION-metadata over elke landinstelling bevat. Figuur 1 laat dit zien voor de oproep van Listing 3.

Om te zien welke locales al bestaan, en welke nog meer hulp nodig hebben om te voltooien, kun je ook een kijkje nemen op de kaart van het Locale Helper Project [20]. Rode markeringen laten duidelijk zien welke locaties nog niet zijn voltooid. Afbeelding 2 toont de locaties voor Zuid-Afrika die er vrij compleet uitzien.

Toon beschikbare karakterkaarten

Het locale commando wordt geleverd met de optie -m wat een afkorting is voor -charmaps. De uitvoer toont de beschikbare karakterkaarten of karaktersetbeschrijvingsbestanden [16]. Een dergelijk bestand is bedoeld om "kenmerken te definiëren voor de gecodeerde tekenset en de codering voor de tekens gespecificeerd in Portable Character Set, en kan codering definiëren voor extra tekens die door de implementatie worden ondersteund" [16]. Listing 4 illustreert dit met een uittreksel van de hele lijst.

Lijst 4: Karaktersetbeschrijvingsbestanden

$ landinstelling -m ANSI_X3.110-1983 ANSI_X3.4-1968 ARMSCII-8 ASMO_449 BIG5 BIG5-HKSCS… $ --

Toon de definities van locale variabelen

Elke variabele die voor een landinstelling wordt gebruikt, heeft zijn eigen definitie. Met behulp van de optie -k (afkorting van -keyword-name) geeft het locale commando deze instelling in detail weer. Lijst 5 illustreert dit voor de variabele LC_TELEPHONE zoals deze is gedefinieerd in een Duitse omgeving - het telefoonnummerformaat, het binnenlandse telefoonformaat, de internationale selectiecode evenals de landcode (internationale prefix) en de codeset. Zie het Locale Helper Project [20] voor een gedetailleerde beschrijving van de waarden.

Lijst 5: De details van LC_TELEPHONE

$ locale -k LC_TELEPHONE tel_int_fmt=“+%c %a %l” tel_dom_fmt=“%A %l”
int_select=“00” int_prefix=“49” phone-codeset=“UTF-8” $ --

De huidige landinstelling wijzigen

De kennis met betrekking tot de locale wordt noodzakelijk zodra je een systeem draait dat wordt geleverd met een andere locale dan je gewend bent - bijvoorbeeld op een Linux live-systeem. Het wijzigen van de landinstelling kan op twee manieren worden gedaan: het Debian locales-pakket [19] opnieuw configureren en de vereiste landinstelling toevoegen met het commando locale-gen. Voor optie één opent het uitvoeren van de volgende opdracht een op tekst gebaseerd configuratievenster dat wordt weergegeven in Afbeelding 3:

# dpkg-landinstellingen opnieuw configureren

Druk op de spatiebalk om de gewenste landinstelling(en) te kiezen uit de lijst die wordt weergegeven in het dialoogvenster en kies "OK" om uw selectie te bevestigen. Het volgende dialoogvenster biedt u een lijst met locales die beschikbaar zijn voor de standaard locale. Selecteer de gewenste en kies "OK". Nu worden de overeenkomstige locale-bestanden gegenereerd en is de eerder geselecteerde locale ingesteld voor uw systeem.

Voor optie twee wordt de gewenste locale gegenereerd met behulp van het commando locale-gen. Lijst 6 illustreert dit voor een Franse opstelling:

Listing 6: Een Franse landinstelling genereren

locale-gen fr_FR.UTF-8
Landinstellingen genereren... fr_FR.UTF-8... klaar Generatie voltooid. # --

Om de eerder gegenereerde locale als standaard te gebruiken, voert u de opdracht in Listing 7 uit om deze correct in te stellen:

Lijst 7: Handmatig de landinstelling instellen

# update-locale LANG=fr_FR.UTF-8

Zodra u een nieuwe terminalsessie opent of opnieuw inlogt op uw systeem, worden de wijzigingen geactiveerd.

Een locale-definitiebestand samenstellen

Het commando localectl helpt je om handmatig een locale-definitiebestand te compileren. Voer de opdracht als volgt uit om een ​​Franse instelling te maken:

Listing 8: Stel een locale-definitie samen

# localedef -i fr_FR -f UTF-8 fr_FR.UTF-8

Conclusie

Het begrijpen van landinstellingen kan even duren, omdat het een instelling is die wordt beïnvloed door verschillende factoren. We hebben uitgelegd hoe u uw huidige landinstelling kunt achterhalen en hoe u deze op de juiste manier kunt wijzigen. Het Linux-systeem aanpassen aan uw behoeften zou vanaf nu veel gemakkelijker voor u moeten zijn.

Links en referenties
Middelste muisknop werkt niet in Windows 10
De middelste muis knop helpt u door lange webpagina's en schermen met veel gegevens te bladeren. Als dat stopt, zul je uiteindelijk het toetsenbord ge...
Hoe de linker- en rechtermuisknop op Windows 10 pc te veranderen
Het is nogal een norm dat alle computermuisapparaten ergonomisch zijn ontworpen voor rechtshandige gebruikers. Maar er zijn muisapparaten beschikbaar ...
Emuleer muisklikken door te zweven met Clickless Mouse in Windows 10
Het gebruik van een muis of toetsenbord in de verkeerde houding of overmatig gebruik kan leiden tot veel gezondheidsproblemen, waaronder spanning, car...