Linux Professional Institute Learning Logo.
Weiter zum Inhalt
  • Home
    • Alle Ressourcen
    • LPI Lernmaterialien
    • Mitmachen
    • Publishing Partner
    • Publishing Partner werden
    • Über uns
    • FAQ
    • Mitwirkende
    • Roadmap
    • Kontakt
  • LPI.org
107.3 Lektion 1
Thema 105: Shells und Shell-Skripte
105.1 Die Shell-Umgebung anpassen und verwenden
  • 105.1 Lektion 1
  • 105.1 Lektion 2
  • 105.1 Lektion 3
105.2 Einfache Skripte anpassen oder schreiben
  • 105.2 Lektion 1
  • 105.2 Lektion 2
Thema 106: Benutzerschnittstellen und Desktops
106.1 X11 installieren und konfigurieren
  • 106.1 Lektion 1
106.2 Grafische Desktops
  • 106.2 Lektion 1
106.3 Barrierefreiheit
  • 106.3 Lektion 1
Thema 107: Administrative Aufgaben
107.1 Benutzer- und Gruppenkonten und dazugehörige Systemdateien verwalten
  • 107.1 Lektion 1
  • 107.1 Lektion 2
107.2 Systemadministrationsaufgaben durch Einplanen von Jobs automatisieren
  • 107.2 Lektion 1
  • 107.2 Lektion 2
107.3 Lokalisierung und Internationalisierung
  • 107.3 Lektion 1
Thema 108: Grundlegende Systemdienste
108.1 Die Systemzeit verwalten
  • 108.1 Lektion 1
  • 108.1 Lektion 2
108.2 Systemprotokollierung
  • 108.2 Lektion 1
  • 108.2 Lektion 2
108.3 Grundlagen von Mail Transfer Agents (MTA)
  • 108.3 Lektion 1
108.4 Drucker und Druckvorgänge verwalten
  • 108.4 Lektion 1
Thema 109: Netzwerkgrundlagen
109.1 Grundlagen von Internetprotokollen
  • 109.1 Lektion 1
  • 109.1 Lektion 2
109.2 Persistente Netzwerkkonfiguration
  • 109.2 Lektion 1
  • 109.2 Lektion 2
109.3 Grundlegende Netzwerkfehlerbehebung
  • 109.3 Lektion 1
  • 109.3 Lektion 2
109.4 Clientseitiges DNS konfigurieren
  • 109.4 Lektion 1
Thema 110: Sicherheit
110.1 Administrationsaufgaben für Sicherheit durchführen
  • 110.1 Lektion 1
110.2 Einen Rechner absichern
  • 110.2 Lektion 1
110.3 Daten durch Verschlüsselung schützen
  • 110.3 Lektion 1
  • 110.3 Lektion 2
How to get certified
  1. Thema 107: Administrative Aufgaben
  2. 107.3 Lokalisierung und Internationalisierung
  3. 107.3 Lektion 1

107.3 Lektion 1

Zertifikat:

LPIC-1

Version:

5.0

Thema:

107 Administrative Aufgaben

Lernziel:

107.3 Lokalisierung und Internationalisierung

Lernziel:

1 von 1

Einführung

Alle gängigen Linux-Distributionen lassen sich mit benutzerdefinierten Lokalisierungseinstellungen konfigurieren. Diese Einstellungen umfassen regionale und sprachbezogene Definitionen wie die Zeitzone, die Sprache der Benutzeroberfläche oder die Zeichenkodierung und können während der Installation des Betriebssystems oder zu einem späteren Zeitpunkt geändert werden.

Anwendungen verlassen sich auf Umgebungsvariablen, Systemkonfigurationsdateien und Befehle, um über die richtige Zeit und Sprache zu entscheiden; daher verfügen die meisten Linux-Distributionen über eine standardisierte Methode zur Anpassung der Zeit- und Lokalisierungseinstellungen. Diese Anpassungen sind nicht nur für die Benutzerfreundlichkeit wichtig, sondern stellen auch sicher, dass der Zeitpunkt von Systemereignissen — wichtig z.B. für die Meldung sicherheitsrelevanter Probleme — korrekt berechnet wird.

Um jeden Text, unabhängig von der gesprochenen Sprache, darstellen zu können, benötigen moderne Betriebssysteme einen Referenzstandard zur Zeichenkodierung, auch Linux-Systeme. Da Computer nur mit Zahlen umgehen können, ist ein Textzeichen nichts anderes als eine Zahl, die einem grafischen Symbol zugeordnet ist. Verschiedene Computerplattformen könnten demselben Zeichen unterschiedliche Zahlenwerte zuordnen — daher bedarf es eines gemeinsamen Standards zur Zeichenkodierung, um sie kompatibel zu machen. Ein Textdokument, das in einem System erstellt wurde, ist nur dann in einem anderen System lesbar, wenn beide sich über das Kodierungsformat einig sind und darüber, welche Zahl mit welchem Zeichen verbunden ist — oder wenn sie zumindest wissen, wie sie zwischen zwei Standards konvertieren.

Die uneinheitlichen Lokalisierungseinstellungen in Linux-basierten Systemen führen zu subtilen Unterschieden zwischen den Distributionen. Doch trotz dieser Unterschiede haben alle Distributionen die gleichen Basiswerkzeuge und Konzepte zur Einrichtung der Internationalisierungsparameter eines Systems.

Zeitzonen

Zeitzonen sind grob proportionale, diskrete Bänder der Erdoberfläche, die einer Stunde entsprechen, d.h. Regionen der Welt, die zu jedem Zeitpunkt dieselbe Stunde des Tages haben. Da es nicht einen Längengrad gibt, der den Tagesbeginn für die ganze Welt markieren kann, sind die Zeitzonen relativ zum Primär- oder Nullmeridian, dessen Längengradwinkel der Erde als 0 definiert ist. Die Zeit am Nullmeridian wird als Koordinierte Universalzeit (Universal Time Coordinated) bezeichnet, kurz UTC. Aus praktischen Gründen folgen die Zeitzonen nicht exakten Abständen vom Bezugspunkt (dem Nullmeridian), sondern sind Ländergrenzen oder anderen politischen oder geographischen Gegebenheiten angepasst.

Politische Grenzen sind so relevant, dass Zeitzonen oft nach größeren Ländern oder Städten innerhalb der jeweiligen Zone benannt sind. Die Zeitzonen werden jedoch nach ihrem Zeitversatz relativ zu UTC unterteilt, und dieser Versatz dient auch der Bezeichnung der jeweiligen Zone. Die Zeitzone GMT-5 gibt z.B. die Region an, für die die UTC-Zeit fünf Stunden voraus ist; die Region liegt also 5 Stunden hinter UTC. Ebenso zeigt die Zeitzone GMT+3 eine Region an, in der es drei Stunden später ist als in der UTC-Zone. GMT, die Abkürzung von Greenwich Mean Time, wird als Synonym für UTC in den offsetbasierten Zonennamen verwendet.

Auf einen vernetzten Rechner kann von verschiedenen Teilen der Welt aus zugegriffen werden, daher ist es gute Praxis, die Hardware-Uhr auf UTC (die Zeitzone GMT+0) einzustellen und die Wahl der Zeitzone dem jeweiligen Einzelfall zu überlassen. Clouddienste bespielsweise werden üblicherweise so konfiguriert, dass sie UTC verwenden, um gelegentliche Inkonsistenzen zwischen der lokalen Zeit und der Zeit auf den Clients oder auf anderen Servern abzumildern. Im Gegensatz dazu möchten Benutzer, die eine Remotesitzung auf dem Server öffnen, möglicherweise ihre lokale Zeitzone verwenden. Es liegt also am Betriebssystem, die richtige Zeitzone für den jeweiligen Fall einzurichten.

Neben dem aktuellen Datum und der Uhrzeit gibt der Befehl date auch die aktuell konfigurierte Zeitzone aus:

$ date
Mon Oct 21 10:45:21 -03 2019

Der Offset relativ zu UTC ist mit -03 angegeben — die angezeigte Zeit liegt also drei Stunden hinter UTC. Oder anders: Die UTC-Zeit ist drei Stunden voraus, weshalb GMT-3 die entsprechende Zeitzone darstellt. Der Befehl timedatectl, der in Distributionen mit systemd verfügbar ist, zeigt weitere Details über die Systemzeit und das Datum an:

$ timedatectl
                      Local time: Sat 2019-10-19 17:53:18 -03
                  Universal time: Sat 2019-10-19 20:53:18 UTC
                        RTC time: Sat 2019-10-19 20:53:18
                       Time zone: America/Sao_Paulo (-03, -0300)
       System clock synchronized: yes
systemd-timesyncd.service active: yes
                 RTC in local TZ: no

Wie im Eintrag Time zone (Zeitzone) zu sehen, werden Zeitzonennamen auch auf der Basis von Orten — wie America/Sao_Paulo — akzeptiert. Die Standardzeitzone für das System ist in der Datei /etc/timezone definiert, entweder durch den vollständigen beschreibenden Namen der Zone oder den Offset. Generische Zeitzonennamen, die durch den UTC-Offset angegeben werden, müssen Etc als ersten Teil des Namens enthalten. Um also die Standardzeitzone auf GMT+3 zu setzen, lautet der Name der Zeitzone Etc/GMT+3:

$ cat /etc/timezone
Etc/GMT+3

Obwohl Zeitzonennamen, die auf Ortsnamen basieren, keinen Offset-Angabe benötigen, um zu funktionieren, ist die Auswahl nicht so einfach. Dieselbe Zone kann mehr als einen Namen haben, was es schwierig machen kann, sie sich zu merken. Bei diesem Problem hilft der Befehl tzselect, der den Benutzer interaktiv zur richtigen Zeitzonendefinition führt. tzselect ist in den meisten Linux-Distributionen standardmäßig verfügbar, da er Teil des Pakets ist, das die notwendigen Hilfsprogramme zur GNU C Bibliothek enthält.

Der Befehl tzselect ist z.B. für einen Benutzer nützlich, der die Zeitzone für “São Paulo City” in “Brasilien” ermitteln möchte. tzselect beginnt mit der Abfrage der Makroregion des gewünschten Ortes:

$ tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent, ocean, "coord", or "TZ".
 1) Africa
 2) Americas
 3) Antarctica
 4) Asia
 5) Atlantic Ocean
 6) Australia
 7) Europe
 8) Indian Ocean
 9) Pacific Ocean
10) coord - I want to use geographical coordinates.
11) TZ - I want to specify the time zone using the Posix TZ format.
#? 2

Option 2 ist für (nord- und süd-)amerikanische Standorte, die nicht unbedingt in derselben Zeitzone liegen. Es ist auch möglich, die Zeitzone mit geografischen Koordinaten oder mit der Offset-Notation, auch bekannt als das Posix TZ-Format, anzugeben. Der nächste Schritt ist die Auswahl des Landes:

Please select a country whose clocks agree with yours.
 1) Anguilla              19) Dominican Republic    37) Peru
 2) Antigua & Barbuda     20) Ecuador               38) Puerto Rico
 3) Argentina             21) El Salvador           39) St Barthelemy
 4) Aruba                 22) French Guiana         40) St Kitts & Nevis
 5) Bahamas               23) Greenland             41) St Lucia
 6) Barbados              24) Grenada               42) St Maarten (Dutch)
 7) Belize                25) Guadeloupe            43) St Martin (French)
 8) Bolivia               26) Guatemala             44) St Pierre & Miquelon
 9) Brazil                27) Guyana                45) St Vincent
10) Canada                28) Haiti                 46) Suriname
11) Caribbean NL          29) Honduras              47) Trinidad & Tobago
12) Cayman Islands        30) Jamaica               48) Turks & Caicos Is
13) Chile                 31) Martinique            49) United States
14) Colombia              32) Mexico                50) Uruguay
15) Costa Rica            33) Montserrat            51) Venezuela
16) Cuba                  34) Nicaragua             52) Virgin Islands (UK)
17) Curaçao               35) Panama                53) Virgin Islands (US)
18) Dominica              36) Paraguay
#? 9

Brasilien erstreckt sich über vier Zeitzonen, daher reicht die Länderinformation allein nicht aus, um die Zeitzone einzustellen. Im nächsten Schritt verlangt tzselect vom Benutzer daher die Angabe der Region:

Please select one of the following time zone regions.
 1) Atlantic islands
 2) Pará (east); Amapá
 3) Brazil (northeast: MA, PI, CE, RN, PB)
 4) Pernambuco
 5) Tocantins
 6) Alagoas, Sergipe
 7) Bahia
 8) Brazil (southeast: GO, DF, MG, ES, RJ, SP, PR, SC, RS)
 9) Mato Grosso do Sul
10) Mato Grosso
11) Pará (west)
12) Rondônia
13) Roraima
14) Amazonas (east)
15) Amazonas (west)
16) Acre
#? 8

Es sind nicht alle Ortsnamen verfügbar, aber die Auswahl der nächstgelegenen Region ist genau genug. Die angegebenen Informationen nutzt tzselect dann, um die entsprechende Zeitzone anzuzeigen:

The following information has been given:

        Brazil
        Brazil (southeast: GO, DF, MG, ES, RJ, SP, PR, SC, RS)

Therefore TZ='America/Sao_Paulo' will be used.
Selected time is now:   sex out 18 18:47:07 -03 2019.
Universal Time is now:  sex out 18 21:47:07 UTC 2019.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
        TZ='America/Sao_Paulo'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
America/Sao_Paulo

Sie können den resultierenden Namen der Zeitzone, America/Sao_Paulo, auch als Inhalt der Datei /etc/timezone nutzen, um die Standardzeitzone für das System zu bestimmen:

$ cat /etc/timezone
America/Sao_Paulo

Wie die Ausgabe von tzselect zeigt, definiert die Umgebungsvariable TZ die Zeitzone für die Shell-Sitzung, unabhängig von der Standardzeitzone des Systems. Durch Hinzufügen der Zeile TZ='America/Sao_Paulo'; export TZ in die Datei ~/.profile wird America/Sao_Paulo zur Zeitzone für künftige Sitzungen des Benutzers. Sie können die Variable TZ auch während der aktuellen Sitzung vorübergehend ändern, um die Uhrzeit in einer anderen Zeitzone anzuzeigen:

$ env TZ='Africa/Cairo' date
Mon Oct 21 15:45:21 EET 2019

Im Beispiel führt der Befehl env den angegebenen Befehl in einer neuen Subshell-Sitzung mit denselben Umgebungsvariablen der aktuellen Sitzung aus, mit Ausnahme der Variable TZ, die durch das Argument TZ='Afrika/Kairo' geändert wird.

Sommerzeit

In vielen Regionen gilt für einen Teil des Jahres die Sommerzeit, was dazu führen kann, dass ein falsch konfiguriertes System während dieser Periode die falsche Zeit meldet.

Die Datei /etc/localtime enthält die Daten, anhand derer das Betriebssystem seine Uhr einstellt. Standard-Linux-Systeme haben Dateien für alle Zeitzonen im Verzeichnis /usr/share/zoneinfo/, so dass /etc/localtime nur ein symbolischer Link auf die passende Datei in diesem Verzeichnis ist. Die Dateien in /usr/share/zoneinfo/ sind nach dem Namen der entsprechenden Zeitzone organisiert —  die Datei für die Zeitzone America/Sao_Paulo heißt folglich /usr/share/zoneinfo/America/Sao_Paulo.

Da sich die Definitionen für die Sommerzeit ändern können, ist es wichtig, die Dateien in /usr/share/zoneinfo/ auf dem neuesten Stand zu halten. Der Upgrade-Befehl des von der Distribution bereitgestellten Paketverwaltungswerkzeugs sollte diese stets aktuell halten.

Sprache und Zeichenkodierung

Linux-Systeme können mit einer Vielzahl von Sprachen und nicht westlichen Zeichenkodierungen arbeiten, sogenannten Locales. Die grundlegendste Gebietsschemakonfiguration ist die Definition der Umgebungsvariablen LANG, anhand derer die meisten Shellprogramme die zu verwendende Sprache identifizieren.

Der Inhalt der Variablen LANG folgt dem Format ab_CD, wobei ab für den Sprachcode und CD für den Regionalcode steht. Der Sprachcode sollte dem ISO-639-Standard und der Regionalcode dem ISO-3166-Standard folgen. Bei einem System, das für brasilianisches Portugiesisch konfiguriert ist, sollte die Variable LANG beispielsweise auf pt_BR.UTF-8 gesetzt sein:

$ echo $LANG
pt_BR.UTF-8

Wie in der Beispielausgabe zu sehen, enthält die Variable LANG auch die für das System vorgesehene Zeichenkodierung. ASCII, kurz für American Standard Code for Information Interchange, war der erste weit verbreitete Zeichenkodierungsstandard für die elektronische Kommunikation. Da ASCII jedoch einen sehr begrenzten Bereich verfügbarer numerischer Werte hat und auf dem englischen Alphabet basiert, enthält es keine Zeichen, die von anderen Sprachen verwendet werden, oder einen erweiterten Satz nicht-alphabetischer Symbole. Die UTF-8-Kodierung ist ein Unicode-Standard für die üblichen westlichen Zeichen sowie viele andere nicht-konventionelle Symbole. Wie vom Unicode Consortium, dem verantwortlichen Gremium für den Unicode-Standards, angegeben, sollte er standardmäßig übernommen werden, um die Kompatibilität zwischen Computerplattformen zu gewährleisten:

Der Unicode-Standard bietet eine eindeutige Nummer für jedes Zeichen, unabhängig von Plattform, Gerät, Anwendung oder Sprache. Er wurde von allen modernen Softwareanbietern übernommen und ermöglicht es nun, dass Daten unverfälscht über viele verschiedene Plattformen, Geräte und Anwendungen übertragen werden können. Die Unterstützung von Unicode bildet die Grundlage für die Darstellung von Sprachen und Symbolen in allen wichtigen Betriebssystemen, Suchmaschinen, Browsern, Laptops und Smartphones — sowie im Internet und World Wide Web (URLs, HTML, XML, CSS, JSON, etc.). (…​) der Unicode-Standard und die Verfügbarkeit von Werkzeugen, die ihn unterstützen, gehören zu den bedeutendsten jüngsten globalen Trends der Softwaretechnologie.

— The Unicode Consortium
What is Unicode?

Einige Systeme mögen immer noch ISO-definierte Standards — wie den Standard ISO-8859-1 — für die Kodierung von Nicht-ASCII-Zeichen verwenden. Solche Zeichenkodierungsstandards sollten jedoch zu Gunsten des Unicode-Kodierungsstandards abgelehnt werden. Alle größeren Betriebssysteme tendieren dazu, den Unicode-Standard per Default zu übernehmen.

Systemweite Locale-Einstellungen definieren Sie in der Datei /etc/locale.conf. Die Variable LANG und andere ortsabhängige Variablen werden in dieser Datei wie gewöhnliche Shellvariable zugewiesen, zum Beispiel:

$ cat /etc/locale.conf
LANG=pt_BR.UTF-8

Benutzer können Ihre Gebietsschemakonfiguration anpassen, indem sie die Umgebungsvariable LANG neu definieren. Dies ist nur für die aktuelle Sitzung oder auch für künftige Sitzungen möglich, indem die neue Definition im Bash-Profil des Benutzers in ~/.bash_profile oder ~/.profile ergänzt wird. Bis sich der Benutzer anmeldet, wird die Standardsystemsprache jedoch weiterhin von benutzerunabhängigen Programmen verwendet, wie z.B. dem Anmeldebildschirm des Displaymanagers.

Tip

Sie können den Befehl localectl, der auf Systemen mit systemd als Systemmanager zur Verfügung steht, auch für Abfrage und Änderung des Systemgebietsschemas nutzen, zum Beispiel: localectl set-locale LANG=de_US.UTF-8.

Neben der Variable LANG wirken sich auch andere Umgebungsvariablen auf bestimmte Aspekte des Gebietsschemas aus, wie z.B. das zu verwendende Währungssymbol oder das Tausendertrennzeichen für Zahlen:

LC_COLLATE

Legt die alphabetische Reihenfolge fest, z.B. von Dateien und Verzeichnisse bei Auflistungen.

LC_CTYPE

Legt fest, wie das System bestimmte Gruppen von Zeichen behandelt, z.B. welche Zeichen als Großbuchstaben oder Kleinbuchstaben gelten.

LC_MESSAGES

Legt die Sprache für die Anzeige von Programmmeldungen fest (meist GNU-Programme).

LC_MONETARY

Legt die Währung und das Währungsformat fest.

LC_NUMERIC

Legt das numerische Format für nicht-monetäre Werte fest, insbesondere Tausender- und Dezimaltrennzeichen festzulegen.

LC_TIME

Legt das Zeit- und Datumsformat fest.

LC_PAPER

Legt das Standardpapierformat fest.

LC_ALL

Hat Vorrang vor allen anderen Variablen, einschließlich LANG.

Der Befehl locale zeigt alle definierten Variablen in der aktuellen Gebietsschemakonfiguration an:

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

Die einzige nicht definierte Variable ist LC_ALL, die dazu dient, alle anderen Gebietsschemaeinstellungen vorübergehend außer Kraft zu setzen. Das folgende Beispiel zeigt, wie der Befehl date — der in einem System ausgeführt wird, das für das Gebietsschema pt_BR.UTF-8 konfiguriert ist — seine Ausgabe so ändert, dass die Ausgabe der neuen Variable LC_ALL entspricht:

$ date
seg out 21 10:45:21 -03 2019
$ env LC_ALL=en_US.UTF-8 date
Mon Oct 21 10:45:21 -03 2019

Die Änderung der Variable LC_ALL sorgt dafür, dass die beiden Abkürzungen für den Wochentag und den Monatsnamen in amerikanischem Englisch (en_US) erscheinen. Es ist jedoch nicht zwingend erforderlich, für alle Variablen das gleiche Gebietsschema einzustellen. Sie können z.B. die Sprache auf pt_BR und das Zahlenformat (LC_NUMERIC) auf den amerikanischen Standard einstellen.

Einige Lokalisierungseinstellungen beeinflussen, wie Programme mit alphabetischer Anordnung und Zahlenformaten umgehen. Während herkömmliche Programme in der Regel darauf ausgelegt sind, in solchen Situationen ein gemeinsames Gebietsschema korrekt zu wählen, verhalten sich Skripte oft unerwartet, wenn sie z.B. versuchen, eine Liste von Einträgen alphabetisch zu ordnen. Aus diesem Grund empfiehlt es sich, die Umgebungsvariable LANG auf das gemeinsame C-Gebietsschema zu setzen, wie in LANG=C, damit das Skript eindeutige Ergebnisse liefert, unabhängig von den Lokalisierungsdefinitionen, die in dem System verwendet werden, in dem es ausgeführt wird. Das C-Gebietsschema führt nur einen einfachen byteweisen Vergleich durch, daher wird es auch besser abschneiden als die anderen.

Kodierungsumwandlung

Text kann mit unverständlichen Zeichen erscheinen, wenn er auf einem System mit einer anderen Zeichenkodierungskonfiguration angezeigt wird als auf dem System, auf dem er erstellt wurde. Der Befehl iconv kann dieses Problem lösen, indem er die Datei von ihrer ursprünglichen Zeichenkodierung in die gewünschte konvertiert. Um z.B. eine Datei original.txt von der ISO-8859-1-Kodierung in die Datei mit dem Namen converted.txt mit UTF-8-Kodierung zu konvertieren, nutzen Sie den folgenden Befehl:

$ iconv -f ISO-8859-1 -t UTF-8 original.txt > converted.txt

Die Option -f ISO-8859-1 (oder --from-code=ISO-8859-1) setzt die Kodierung der Originaldatei und die Option -t UTF-8 (oder --to-code=UTF-8) die für die konvertierte Datei. Alle vom Befehl iconv unterstützten Kodierungen zeigt der Befehl iconv -l oder iconv --list. Statt der Ausgabeumleitung, wie im Beispiel, könnte Sie auch die Option -o converted.txt oder --output converted.txt verwenden.

Geführte Übungen

  1. Basierend auf der folgenden Ausgabe des Befehls date, was ist die Zeitzone des Systems in GMT-Notation?

    $ date
    Mon Oct 21 18:45:21 +05 2019
  2. Auf welche Datei sollte der symbolische Link /etc/localtime zeigen, um Europe/Brussels zur Standardortszeit des Systems zu machen?

  3. Zeichen in Textdateien werden auf einem System mit einer anderen Zeichenkodierung als der im Textdokument verwendeten möglicherweise nicht korrekt wiedergegeben. Wie nutzen Sie iconv, um die WINDOWS-1252-kodierte Datei old.txt in die Datei new.txt mit UTF-8-Kodierung zu konvertieren?

Offene Übungen

  1. Welcher Befehl macht Pacific/Auckland zur Standardzeitzone für die aktuelle Shellsitzung?

  2. Der Befehl uptime zeigt u.a. den Lastdurchschnitt des Systems in Kommazahlen an. Er verwendet die aktuellen Gebietsschemaeinstellungen, um zu entscheiden, ob das Dezimaltrennzeichen ein Punkt oder ein Komma ist. Wenn zum Beispiel das aktuelle Gebietsschema auf de_DE.UTF-8 (das Standardgebietsschema von Deutschland) eingestellt ist, wird uptime ein Komma als Trennzeichen setzen. Welcher Befehl bewirkt, dass uptime die Werte für den Rest der aktuellen Sitzung mit einem Punkt statt einem Komma als Trennzeichen darstellt?

  3. Der Befehl iconv ersetzt alle Zeichen außerhalb des Zielzeichensatzes durch ein Fragezeichen. Wenn //TRANSLIT an die Zielkodierung angehängt wird, werden Zeichen, die nicht im Zielzeichensatz dargestellt sind, durch ein oder mehrere ähnlich aussehende Zeichen ersetzt (transliteriert). Wie könnten Sie diese Methode nutzen, um eine UTF-8-Textdatei namens readme.txt in eine einfache ASCII-Datei namens ascii.txt zu konvertieren?

Zusammenfassung

Diese Lektion erläutert, wie Sie ein Linux-System für die Arbeit mit benutzerdefinierten Sprachen und Zeiteinstellungen einrichten. Es werden auch Konzepte und Einstellungen für die Zeichenkodierung behandelt, da diese für die korrekte Darstellung von Textinhalten sehr wichtig sind. In dieser Lektion werden die folgenden Themen behandelt:

  • Wie Linux-Systeme die Sprache für die Anzeige von Shell-Meldungen auswählen.

  • Verstehen, wie Zeitzonen die Ortszeit beeinflussen.

  • Wie Sie die richtige Zeitzone identifizieren und die Systemeinstellungen entsprechend ändern.

  • Was Zeichenkodierungen sind und wie man zwischen ihnen konvertiert.

Die angesprochenen Befehle und Prozeduren sind:

  • Gebietsschema- und zeitbezogene Umgebungsvariablen, wie LC_ALL, LANG und TZ.

  • /etc/timezone

  • /etc/localtime

  • /usr/share/zoneinfo/

  • locale

  • tzselect

  • timedatectl

  • date

  • iconv

Lösungen zu den geführten Übungen

  1. Basierend auf der folgenden Ausgabe des Befehls date, was ist die Zeitzone des Systems in GMT-Notation?

    $ date
    Mon Oct 21 18:45:21 +05 2019

    Es handelt sich um die Zeitzone Etc/GMT+5.

  2. Auf welche Datei sollte der symbolische Link /etc/localtime zeigen, um Europe/Brussels zur Standardortszeit des Systems zu machen?

    Der Link /etc/localtime sollte auf /usr/share/zoneinfo/Europe/Brussels zeigen.

  3. Zeichen in Textdateien werden auf einem System mit einer anderen Zeichenkodierung als der im Textdokument verwendeten möglicherweise nicht korrekt wiedergegeben. Wie nutzen Sie iconv, um die WINDOWS-1252-kodierte Datei old.txt in die Datei new.txt mit UTF-8-Kodierung zu konvertieren?

    Der Befehl iconv -f WINDOWS-1252 -t UTF-8 -o new.txt old.txt führt die gewünschte Konvertierung durch.

Lösungen zu den offenen Übungen

  1. Welcher Befehl macht Pacific/Auckland zur Standardzeitzone für die aktuelle Shellsitzung?

    export TZ=Pacific/Auckland

  2. Der Befehl uptime zeigt u.a. den Lastdurchschnitt des Systems in Kommazahlen an. Er verwendet die aktuellen Gebietsschemaeinstellungen, um zu entscheiden, ob das Dezimaltrennzeichen ein Punkt oder ein Komma ist. Wenn zum Beispiel das aktuelle Gebietsschema auf de_DE.UTF-8 (das Standardgebietsschema von Deutschland) eingestellt ist, wird uptime ein Komma als Trennzeichen setzen. Welcher Befehl bewirkt, dass uptime die Werte für den Rest der aktuellen Sitzung mit einem Punkt statt einem Komma als Trennzeichen darstellt?

    Der Befehl export LC_NUMERIC=en_US.UTF-8 oder export LC_ALL=en_US.UTF-8.

  3. Der Befehl iconv ersetzt alle Zeichen außerhalb des Zielzeichensatzes durch ein Fragezeichen. Wenn //TRANSLIT an die Zielkodierung angehängt wird, werden Zeichen, die nicht im Zielzeichensatz dargestellt sind, durch ein oder mehrere ähnlich aussehende Zeichen ersetzt (transliteriert). Wie könnten Sie diese Methode nutzen, um eine UTF-8-Textdatei namens readme.txt in eine einfache ASCII-Datei namens ascii.txt zu konvertieren?

    Der Befehl iconv -f UTF-8 -t ASCII//TRANSLIT -o ascii.txt readme.txt führt die gewünschte Konvertierung durch.

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

Nächste Lektion

108.1 Die Systemzeit verwalten (108.1 Lektion 1)

Nächste Lektion lesen

Linux Professional Insitute Inc. Alle Rechte vorbehalten. Besuchen Sie die LPI Learning Website: https://learning.lpi.org
Dieses Werk steht unter der Lizenz Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International.

LPI ist eine Non-Profit-Organisation.

© 2022 Linux Professional Institute (LPI) ist eine globale Organisation für Zertifizierungsstandards und zur Karriereplanung für Open-Source-Profis. Mit mehr als 200.000 Zertifikatsinhabern ist es die weltweit erste und größte herstellerneutrale Linux- und Open-Source-Zertifizierungsstelle. LPI verfügt über zertifizierte Fachleute in über 180 Ländern, bietet Prüfungen in mehreren Sprachen an und hat Hunderte von Trainingspartnern.

Unser Ziel ist es, wirtschaftliche und kreative Möglichkeiten für alle zu ermöglichen, indem wir Open-Source-Wissens- und Kompetenzzertifizierungen allgemein zugänglich machen.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Kontaktieren Sie uns
  • Datenschutz und Cookie-Richtlinien

Haben Sie einen Fehler entdeckt oder möchten Sie helfen, diese Seite zu verbessern? Lassen Sie es uns wissen.

© 1999–2022 The Linux Professional Institute Inc. Alle Rechte vorbehalten.