Plaintext ist das wichtigste Dateiformat der Linux-Welt. Entsprechend viele Tools widmen sich dem Bearbeiten oder automatisierten Manipulieren solcher Files.
Linux teilt als Mitglied der großen Unix-Betriebssystemfamilie viele Eigenschaften mit den frühen Unix-Versionen. Insbesondere folgt es wie sie dem Paradigma everything is a file (alles ist eine Datei). Das bedeutet, dass Betriebssystem, Dienste und Anwendungen für den Zugriff auf angeschlossene Geräte, für Netzwerkverbindungen, für die Interprozesskommunikation und auch für die Abfrage des Systemzustands dieselben Mechanismen nutzen wie für den Lese- und Schreibzugriff auf Dateien.
Wenn zum Beispiel das Kommandozeilenwerkzeug Ps eine Liste aller laufenden Prozesse samt Statusinformationen anzeigt, fordert es diese Informationen nicht explizit beim Linux-Kernel an. Es sucht stattdessen im Verzeichnis /proc nach Unterordnern: Dort gibt es für jeden Prozess ein Verzeichnis mit der numerischen Prozess-ID als Namen. Darin befinden sich Textdateien wie status und cmdline, die Ps öffnet, ausliest, verarbeitet und daraus die Informationen für die Prozessliste generiert. In Abbildung 1 sehen Sie im Dateimanager die zahlreichen numerisch benannten Ordner in /proc und im unteren Terminalfenster die ersten sechs Zeilen der Ps-Ausgabe. Das große Terminalfenster zeigt Zugriffe auf die Dateien in /proc/1/, /proc/2/ und so weiter. Solche Dateizugriffe lassen sich auch mit dem Helfer Strace [1] überwachen, den Sie im gleichnamigen Paket finden.

Abbildung 1: Alles ist eine Datei, und vieles sogar eine Textdatei, wie etwa die Prozessinformationen in den Unterordnern von /proc.
Öffnen Sie diese Dateien manuell, dann stellen Sie fest, dass sie sich im Klartext lesen lassen. Diese Beobachtung machen Sie unter Linux ständig. Werfen Sie etwa einen Blick in den zentralen Konfigurationsordner /etc, finden Sie auch dort und in den Unterverzeichnissen etliche Dateien, die Sie mit einem Texteditor auslesen oder bearbeiten können. Einige der interessanteren Dateien im Ordner /etc/ zeigt die Tabelle “Systemdateien”. All diese Dateien enthalten lesbaren Text. Bei vielen Konfigurationsdateien finden Sie am Anfang oder oberhalb einzelner Einträge Kommentare, die erklären, worum es geht und welche alternativen Einstellungen möglich sind.
Die Dateien in /etc legen globale Einstellungen fest. Zusätzlich gibt es im Home-Verzeichnis jedes Benutzers noch persönliche Konfigurationsdateien. Viele davon liegen direkt in /home/User/ und sind versteckt, um nicht zu stören: Ihre Dateinamen fangen mit einem Punkt an. So enthält /etc/bash.bashrc die globalen Vorgaben für die Standard-Shell Bash, /home/User/.bashrc bietet Platz für individuelle Anpassungen. Weitere persönliche Konfigurationsdateien liegen in /home/User/.config/ und dessen Unterordnern.
|
Datei |
Funktion |
|---|---|
|
|
Die Filesystem-Tabelle zeigt an, welche Partitionen, Netzwerk-Shares und sonstigen Geräte mit welchen Dateisystemen in welche Ordner eingehängt werden. |
|
|
Enthält den im Netzwerk benutzten Rechnernamen. |
|
|
Die Einstellungen für alle im System konfigurierten Benutzerkonten, unter anderem das jeweilige Home-Verzeichnis und die Standard-Shell. |
|
|
In älteren Unix-Systemen der namensgebende Aufbewahrungsort für Passwörter. Neuere Systeme verwenden dafür |
|
|
Regelt Details zur Auflösung von Rechnernamen, also das Übersetzen in IP-Adressen in sprechende Namen. Bekanntestes Beispiel: |
|
|
Enthält, gegebenenfalls zusammen mit weiteren Dateien im Ordner |
|
|
Enthält den Namen der verwendeten Betriebssystemversion (siehe Listing 1). |
Listing 1
/etc/os-relase
$ cat /etc/os-release
PRETTY_NAME="Ubuntu 23.10"
NAME="Ubuntu"
VERSION_ID="23.10"
VERSION="23.10 (Mantic Minotaur)"
VERSION_CODENAME=mantic
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=mantic
LOGO=ubuntu-logo
Einen Blick wagen
Auf der Kommandozeile stehen diverse Tools bereit, um Textdateien zu inspizieren. Dabei hilft es, wenn Sie bereits die ungefähre Größe der Datei kennen und damit einschätzen können, ob die Ausgabe des Inhalts komplett auf eine Bildschirmseite passt.
Dateien mit wenig Inhalt geben Sie einfach mit Cat (cat Datei) aus. Stellen Sie dann fest, dass die Datei doch länger als erwartet ist, scrollen Sie mit [Umschalt]+[Seite-oben] zurück. Besser setzen Sie jedoch statt Cat ein Tool ein, mit dem Sie sich komfortabler durch längere Texte bewegen, also einen sogenannten Pager. Der Unix-Klassiker für diese Aufgabe heißt More und gehört zu jeder Linux-Standardinstallation. Wesentlich beliebter ist aber eine weiterentwickelte More-Version namens Less. Sie rufen das Programm mit der zu betrachtenden Datei als Argument auf (less Datei), die dann fensterfüllend im Terminal erscheint. Mit [Pfeil-oben]+ und [Pfeil-unten]+ bewegen Sie sich zeilenweise durch die Datei, [Bild-oben]+ und [Bild-unten] blättern seitenweise. Stattdessen können Sie auch mit dem Scrollrad der Maus blättern.
Oft suchen Sie in Dateien nach bestimmten Schlüsselworten. Dafür bietet Less eine eingebaute Suchfunktion: Geben Sie einen Schrägstrich (/) ein, tippen danach den Suchbegriff und bestätigen Sie ihn mit [Eingabe]+. Less springt dann zum ersten Treffer und hebt ihn und die weiteren Treffer im sichtbaren Bereich optisch hervor. Mit [N]+ und [Umschalt]+[N] navigieren Sie vorwärts und rückwärts durch die weiteren Treffer. Die praktische Suchfunktion lässt sich bereits beim Öffnen der Datei aktivieren: So öffnen Sie etwa mit less -p systemd /var/log/syslog die Protokolldatei des Systems und lassen Less darin alle Vorkommen von systemd hervorheben. Egal, in welcher Form Sie den Suchbegriff eingeben – es bleibt ein sogenannter regulärer Ausdruck [2]. Wenn Sie sich damit auskennen, können Sie also auch komplexere Suchmuster verwenden. Um Less zu beenden, drücken Sie [Q].
Möchten Sie bei längeren Dateien nur die Zahl der angezeigten Zeilen reduzieren, verwenden Sie die Werkzeuge Head und Tail: Die Tools geben standardmäßig die ersten beziehungsweise letzten zehn Zeilen einer Datei aus. Über den Parameter -Anzahl geben Sie eine andere Zeilenanzahl vor. So zeigt der Aufruf tail -3 /var/log/syslog die letzten drei Zeilen der Logdatei an. Tail bringt aber noch eine weitere nützliche Option mit: Der Schalter -f (follow) weist das Tool an, sich nach Ausgabe der letzten Zeile nicht zu beenden. Stattdessen wartet es darauf, dass neue Zeilen in der Datei erscheinen, die es dann ausgibt. Das ist vor allem für Logdateien sinnvoll, an die das System regelmäßig neue Einträge anhängt.
Um einen Suchbegriff in einer oder mehreren Textdateien zu finden, bietet sich das Werkzeug Grep an. Mit ihm lassen Sie sich alle Zeilen auf der Konsole ausgeben, die einen Treffer enthalten. Listing 2 zeigt einige Beispiele, wobei das aus dem letzten Aufruf einen regulären Ausdruck verwendet. Im Terminalfenster hebt Grep die Fundstellen rot hervor (siehe Abbildung 1, großes Terminalfenster). Mit der Option -v (invert) kehren Sie die Auswahl um: Es erscheinen alle Zeilen, die nicht auf das angegebene Suchmuster passen.
Listing 2
Grep-Aufrufe
$ grep http /etc/services http 80/tcp www # WorldWideWeb HTTP https 443/tcp # HTTP over TLS/SSL https 443/udp # HTTP/3 http-alt 8080/tcp webcache # WWW caching service $ sudo grep NOPASS /etc/sudoers esser ALL=(ALL) NOPASSWD: ALL %sudo ALL=(ALL:ALL) NOPASSWD: ALL $ grep -E '(mail|news|uucp)' /etc/passwd mail:x:8:8:mail:/var/mail:/usr/sbin/nologin news:x:9:9:news:/var/spool/news:/usr/sbin/nologin uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
Vorschau im Dateimanager
Beim Durchforsten des Dateisystems mit dem Dateimanager wünscht man sich oft einen schnellen Blick in eine Textdatei. Allerdings fehlt dem Gnome-Programm Dateien (früher: Nautilus) ein solches Feature. Es lässt sich aber über die Erweiterung Sushi [3] nachrüsten. Im Ubuntu-Terminalfenster geben Sie dazu sudo apt install gnome-sushi ein oder suchen in der Softwareverwaltung nach “sushi”. Unter Ubuntu 23.10 müssen Sie dazu bei den Treffern einstellen, dass Sie Debian-Pakete sehen wollen; mit der Vorgabe Snap-Pakete finden Sie Sushi nicht.
Mit der Erweiterung können Sie nun im Dateimanager eine Vorschau für viele Dateiformate anzeigen lassen, darunter Textdateien, PDF- und0 LibreOffice-Dokumente sowie Bilder aller Art. Dazu wählen Sie eine Datei aus und drücken dann die Leertaste. In der Vorschau (Abbildung 2) blättern Sie mit dem Mausrad, ein erneuter Druck auf die Leertaste schließt die Ansicht. Achtung: Bei der Vorschau handelt es sich nicht um ein separates Programm, der Dateimanager behält weiter den Tastaturfokus. Mit den Pfeiltasten navigieren Sie also nicht in der Vorschau, sondern im Dateimanager selbst – selbst dann, wenn die Vorschau ihn verdeckt. Dadurch ändert sich automatisch die Anzeige in der Vorschau. Das bietet eine praktische Möglichkeit, sehr schnell eine größere Menge an Dateien zu inspizieren.

Abbildung 2: Mit dem Sushi-Plugin für den Gnome-Dateimanager öffnen Sie eine schnelle Vorschau für viele Dateitypen.
Textdateien bearbeiten
Wollen Sie die Dateien bearbeiten, dann schlägt die Stunde der Texteditoren. Einfache Textdateien öffnen Sie nicht mit einer Textverarbeitung wie LibreOffice Writer, sondern mit einem Tool, das Dateien ohne Formatierungen bearbeitet. Das Standardwerkzeug auf einem aktuellen Ubuntu-System heißt Texteditor. Es startet automatisch, wenn Sie im Dateimanager auf eine Textdatei doppelklicken. Das vergleichsweise neue Programm löste erst in Ubuntu 22.10 den früheren Standardeditor Gedit ab, den Sie bei Bedarf über sudo apt install gedit nachinstallieren. Im Anwendungszentrum gibt es Gedit nur als Snap-Paket.
Der Ubuntu-Editor kann mehrere Dateien gleichzeitig öffnen und erlaubt über Reiter den schnellen Wechsel, ähnlich wie im Browser. Standardmäßig zeigt der Editor keine Bedienelemente an, ein Menü öffnen Sie über das Hamburger-Icon in der Titelleiste. Ein separates Öffnen-Menü und eines mit wichtigen Einstellungen, etwa zum Anzeigen der Zeilennummern, finden Sie ebenfalls in der Titelleiste.
Im Editor funktionieren die klassischen Tastenkombinationen [Strg]+[C] zum Kopieren, [Strg]+[X] zum Ausschneiden und [Strg]+[V] zum Einfügen. Außerdem macht [Strg]+[Z] die letzte Änderung rückgängig, mit [Strg]+[Y] wiederholen Sie die letzte zurückgenommene Aktion. Das klappt auch über mehrere Schritte hinweg bis zum Wiederherstellen des ursprünglichen Zustands der Datei.
Eine Suche starten Sie mit [Strg]+[F]. Während Sie im eingeblendeten Suchfeld den Suchbegriff eingeben, zeigt der Editor bereits durch eine farbige Hinterlegung die ersten Treffer an (Abbildung 3). Gibt es mehrere Treffer, bewegen Sie sich mit [Strg]+[G] vorwärts und mit [Umschalt]+[Strg]+[G] rückwärts durch die Fundstellen. Der jeweils aktuelle Treffer unterscheidet sich dabei durch eine intensivere Unterlegung von den übrigen. Der Editor markiert den ausgewählten auch gleich, sodass Sie den Text mit [Strg]+[X][Rückschritt] oder [Entf] löschen können.

Abbildung 3: Der Gnome-Texteditor zeigt bei der Suche die Treffer schon an, während Sie noch den Suchbegriff eingeben.
Mit [Strg]+[S] sichern Sie die Änderungen. Fehlen Ihnen die Schreibrechte für die geöffnete Datei, fragt Ubuntu Ihr Benutzerpasswort ab, um mit Administratorrechten die Änderungen zu schreiben. Analog hilft der Texteditor auch beim Öffnen von Dateien, die Sie nicht lesen dürfen. Rechtsklicken Sie etwa auf die Datei /etc/shadow und wählen dann Öffnen mit | Texteditor, zeigt der Editor einen Fehlerhinweis an (Abbildung 4). Er enthält zwei Lösungsvorschläge. Die erste Lösung (Wiederholen) setzt voraus, dass Sie die Zugriffsrechte ändern, sodass der Editor die Datei dann in einem zweiten Anlauf ganz normal öffnen kann. Wählen Sie die Alternative Als Systemverwalter öffnen, dann fragt Ubuntu Sie nach Ihrem Passwort. Die erweiterten Rechte bleiben dann für die Dauer der Bearbeitung erhalten, das Speichern erfordert keine erneute Passworteingabe.

Abbildung 4: Fehlende Rechte? Kein Problem: Der Gnome-Texteditor fragt bei Bedarf nach Ihrem Passwort.
Beim ersten Speichern einer neuen Datei legen Sie die Zeichenkodierung fest, etwa Unicode (UTF-8) oder Westlich (ISO-8859-15), und geben an, welcher Konvention für Zeilenumbrüche Sie folgen wollen. Relevant ist das vor allem, wenn Sie die Datei später auf einem Windows-Rechner öffnen möchten: Linux verwendet das Line-Feed-Zeichen (LF, ASCII-Wert 10), während Windows eine Kombination aus Carriage-Return- und Line-Feed-Zeichen (CR LF, ASCII-Werte 13 und 10) nutzt. Der Windows-Editor Notepad zeigt die Kodierung in der Statusleiste an (Abbildung 5). Er kann unter Windows 10 seit Mitte 2018 und bei Windows 11 immer Dateien mit Linux-Umbrüchen öffnen und auch im selben Format wieder speichern. Bei neuen Dateien bietet er jedoch keine Wahlmöglichkeit, sondern speichert sie immer im Windows-Format.

Abbildung 5: Für neue Textdateien setzt Notepad auf den Windows-Standard für Zeilenumbrüche (CR LF).
In umgekehrter Richtung erkennt der Gnome-Editor beim Öffnen eine unter Windows gespeicherte Textdatei und behält beim Bearbeiten und Speichern die Windows-Umbrüche bei. Wollen Sie explizit ins Linux-typische Format konvertieren, wählen Sie auch dazu Speichern unter und wechseln dann im Ausklappmenü Zeilenende von Windows (CR+LF) zu Unix/Linux (LF) (Abbildung 6). Übrigens: In der Shell können Sie mit dem Kommando file Datei.txt herausfinden, welche Kodierung und welche Zeilenumbrüche eine Textdatei verwendet.

Abbildung 6: Der Gnome-Texteditor (oben) erlaubt, die Zeichenkodierung sowie die Zeilenumbruchkonvention zu ändern. Kodierung und Umbruchformat einer Datei zeigt Ihnen auch das Shell-Tool File an (unten).
Automatisierte Änderungen
Statt Dateien interaktiv im Editor zu bearbeiten, können Sie auch den kommandozeilenbasierten Stream-Editor Sed verwenden, um automatische Ersetzungen vorzunehmen. Sed kann nicht nur suchen und ersetzen, sondern beispielsweise auch Zeilen löschen oder an bestimmten Stellen hinzufügen. Die Syntax ist ein wenig kryptisch; das Kommando aus Listing 3 ersetzt in einer Datei test.txt alle Vorkommen von bird durch vogel.
Listing 3
Sed
$ sed -i.bak 's/bird/vogel/g' bird.txt
Der Aufruf sorgt dafür, dass Sed die Änderungen direkt in der Datei vornimmt. Der Schalter -i (in-place) bewirkt, dass das Tool eine Backup-Datei mit Zusatzendung .bak anlegt. Der Schalter g (global) sorgt dafür, dass Sed in jeder Zeile nicht nur den ersten, sondern alle Treffer ersetzt (s, substitute). Der Schrägstrich dient dabei jeweils als Trennzeichen zwischen dem Sed-Kommando, dem Suchbegriff, dem Ersatztext und den Optionen. Statt / können Sie auch ein anderes Trennzeichen benutzen, wenn beispielsweise der Schrägstrich im Suchbegriff vorkommt.
Sed akzeptiert auch reguläre Ausdrücke. Das Tool ist so mächtig, dass es sich lohnt, sich in seine Verwendung einzuarbeiten [4]. Abbildung 7 zeigt, wie sich das Kommando auf eine Textdatei auswirkt, die einige Male das Wort “bird” enthält. Das vollautomatische Austauschen von Worten kann zu Fehlern führen, hier etwa “vogels” in der zweiten Zeile. Die Abbildung zeigt außerdem, wie Sie mit Diff zwei Textdateien vergleichen. Mit der Option -y präsentiert das Tool die Inhalte der beiden Dateien nebeneinander, wobei ein Balken im Zwischenraum auf Unterschiede hinweist.
Fazit
Ubuntu und andere Linux-Distributionen bringen zahlreiche leistungsfähige Werkzeuge mit, um Textdateien zu betrachten, zu durchsuchen und zu verändern. Das ist auch wenig verwunderlich, weil Linux die meisten Dienste und Anwendungen über Konfigurationsdateien im Textformat steuert.
Sagt Ihnen der Gnome-eigene Texteditor nicht zu, haben Sie die Wahl zwischen zahlreichen Alternativen. Viele laufen direkt im Terminalfenster, darunter Vim, Emacs, Nano, Mcedit, Joe und Pico. Es gibt aber auch komfortable grafische und sogar plattformübergreifend verfügbare Anwendungen. Dazu zählen beispielsweise Kate aus dem KDE-Fundus und der kommerzielle Editor Sublime Text (Abbildung 8), den Sie unter Ubuntu mit snap install --classic sublime-text installieren [5]. Auch der ebenfalls für mehrere Betriebssysteme verfügbare Microsoft-Editor Visual Studio Code ist nur einen Snap-Aufruf entfernt (snap install --classic code).
Hinzu gesellen sich die Kommandozeilenwerkzeuge, mit denen Sie Textdateien filtern und anpassen. Wenn Sie mit Helfern wie Sed, Grep, Tr, Sort und Cut [6] Freundschaft geschlossen haben, ist der nächste Schritt zur automatisierten Textverarbeitung, dass Sie sich mit Shell-Programmierung beschäftigen. (tle)
Infos
-
Strace: Karsten Günther, “Schlüsselloch”, LU 12/2015, S. 90, https://www.linux-community.de/35770
-
Reguläre Ausdrücke: Frank Hofmann, “Schnipseljagd”, LU 09/2011, S. 84, https://www.linux-community.de/24091
-
Stream-Editor Sed: Harald Zisler, “Am Fließband”, LU 08/2015, S. 68, https://www.linux-community.de/34454
-
Texteditor Sublime Text: Daniel Tibi, “Tausendsassa”, LU 11/2022, S. 52, https://www.linux-community.de/48324
-
Advanced Bash Scripting Guide – Text Processing Commands: https://tldp.org/LDP/abs/html/textproc.html







