Dateien mit dem Raspberry Pi bearbeiten: 4 Wege für Einsteiger – Grafisch und mit Nano/vim auf der Konsole

Als Video ansehen
Bereitgestellt über YouTube

Dateien mit dem Raspberry Pi bearbeiten: 4 Wege für Einsteiger – Grafisch und mit Nano/vim auf der Konsole

Wie kann ich Konfigurationsdateien, Skripte, Programme oder andere Dateien auf dem Raspberry Pi ändern bzw. anlegen? Ich zeige dir in diesem Video insgesamt vier Wege: Zwei grafische, von denen einer kein Nachinstallieren der grafischen Oberfläche auf dem Raspberry Pi erfordert. Dazu zwei weitere Methoden, wie man Textbasierte Dateien auf der Konsole mit den bekanntesten Editoren Nano und Vim ändern kann – also auch problemlos per SSH.

Auf dem Raspberry Pi wird man an vielen Stellen auf verschiedenste Textdateien stoßen: Das kann eine Konfigurationsdatei sein von z.B. einem Webserver oder anderen Programmen, die auf dem Pi laufen. Vielleicht möchtest du Skripte oder Programme selbst schreiben und fragst dich: Wie mache ich das? Welche Möglichkeiten gibt es?

#1: Über die grafische Oberfläche des Raspberry Pi OS Desktop

Ist die grafische Oberfläche auf eurem Pi installiert, kann man viele Dateien einfach mit dem vorinstallierten Texteditor öffnen und bearbeiten. Dies gilt für sämtliche textbasierte Dateien: Egal ob es sich um ein Bash-Skript, Konfigurationsdateien des Betriebssystems bzw. einer Anwendung oder eine HTML oder PHP-Datei auf dem Webserver handelt. Wenn euer Pi hauptsächlich fürs Basteln gedacht ist und daher vielleicht sowieso die grafische Desktopumgebung installiert ist um auf dem Pi selbst zu arbeiten, kann dies ein praktischer Weg für euch sein.

Wenn du öfter und/oder komplexere Änderungen über die grafische Desktop-Oberfläche vornehmen möchtest, macht ein Texteditor mit mehr Funktionen Sinn – der vorinstallierte Mosepad ist ziemlich rudimentär und bietet kaum Unterstützungsfunktionen. Hier ist derzeit Visual Studio Code als quelloffener sowie kostenfreier Texteditor zu empfehlen. Er bietet viele Vorteile wie beispielsweise Syntax-Hervorhebung oder Autovervollständigung. Wie du ihn installierst, haben wir in einem separaten Beitrag bereits erklärt.

Auch zur Installation der grafischen Oberfläche gibt es bereits eine Anleitung, die du bei Bedarf hier findest Dafür musst du nicht zwingend mit angeschlossenem Bildschirm sowie Tastatur und Maus vor dem Pi selbst sitzen. Man kann den Pi auch einfach in einen RDP-Server verwandeln und über die Remotedesktopverbindung deines Computers oder Laptops darauf zugreifen. Dort lässt sich die grafische Oberfläche bedienen, wie wenn du vor dem Gerät sitzt.

#2 Grafisch per SSH-Verbindung mit Editor auf dem Client

Du musst jedoch nicht zwingend die grafische Oberfläche auf dem Pi selbst installieren, es gibt auch andere Wege: Über SSH kann man auf alle Dateien des Raspberry Pi zugreifen. Somit lässt sich auch ein Texteditor auf deinem PC oder Laptop verwenden. Dieser Ansatz ist ressourcensparender und sicherheitstechnisch besser. Gerade auf einem älteren Pi ist das daher besser, als direkt auf dem Pi zu arbeiten – wenngleich das natürlich ebenfalls geht, wie zuvor gezeigt.

Wenn ihr MobaXTerm als SSH-Client verwendet, lassen sich zumindest einzelne Dateien auch darüber sehr einfach bearbeiten: Verbindet euch dazu mit eurem Pi und klickt links auf den Reiter SFTP. Dort habt ihr Zugriff auf alle Dateien und Ordner, auf die auch der angemeldete Benutzer zugreifen kann. Allerdings ist hier kein sudo möglich. Dieser Weg funktioniert daher nur, wenn der angemeldete Benutzer (standardmäßig heißt dieser pi) Lese- und Schreibrechte darauf besitzt. Beim Apache2 Webserver lässt sich dies beispielsweise lösen, in dem der Pi-Benutzer als Eigentümer festgelegt wird – dies haben wir im Praxisbeitrag zur Installation bereits aufgezeigt. Schwieriger wird es bei Konfigurationsdateien des Systems, hier solltet ihr die folgenden Varianten 3 oder 4 verwenden.

Wenn die Berechtigungen stimmen, könnt ihr über den SFTP-Explorer zum gewünschten Ordner navigieren oder den Pfad oben eintippen und mit <Enter> bestätigen. Nach einem Rechtsklick auf die Datei gibt es zwei Möglichkeiten: Open öffnet die Datei mit dem Standard-Texteditor eures Systemes. Wurde kein weiterer Editor installiert bzw. als Standard hinterlegt, ist das Notepad – nicht sehr komfortabel. Ist ein anderer Editor installiert aber nicht als Standard festgelegt, klickt ihr auf Open with und könnt ihn dort auswählen. Alternativ auf Weitere Apps, herunterscrollen und ganz unten auf Weitere Apps auf diesem PC suchen, um manuell den Pfad zur ausführbaren Exe-Datei eures Editors anzugeben.

MobaXterm lädt die Datei herunter und überwacht Schreibvorgänge. Sobald die Datei gespeichert wird, werdet ihr gefragt, wie verfahren werden soll. Ich wähle hier meist Autosave. Dadurch lädt das Programm die Datei automatisch per SFTP auf dem Pi, ohne dass dies bei jeder Änderung bestätigt werden muss.

Bei allen Änderungen in diesem Editorfenster wird die Datei im Anschluss automatisch hochgeladen. Dies sieht man links unten:

Bei dieser Variante gibt es zwei Nachteile:

  1. Das Speichern geschieht verzögert, da MobaXterm die Datei nach Erkennen der Änderung erst hochladen muss. Wenn du viele Änderungen durchführst, kann es nervig sein, jedes mal ein paar Sekunden zu warten.
  2. Es lassen sich nur einzelne Dateien öffnen. Gerade bei umfangreicheren Projekten müsste man daher jede Datei öffnen, statt den gesamten Ordner als Arbeitsbereich.

Wenn du diese umgehen möchtest ohne alternativ den Editor direkt auf dem Pi mit grafischer Oberfläche zu nutzen, gibt es nur eine Alternative: Den Pi über SFTP auf deinem Computer mounten. Dies ist sowohl unter Linux per SSHFS möglich, als auch unter Windows. Wobei Windows dies nur über Drittanbieter-Software unterstützt, etwa SFTP Drive (v2). Dementsprechend ist es ein wenig umfangreicher, das schauen wir uns in einem eigenen Beitrag an.

#3 Auf der Konsole mit nano: Dem einfachsten Texteditor

Es gibt verschiedene Texteditoren, die wir direkt auf der Konsole nutzen können. Eine grafische Oberfläche auf dem Pi ist eben so wenig erforderlich wie die Installation eines Texteditors auf dem Client. Nano ist der Einfachste und auf dem Raspberry Pi vorinstalliert. Seine grundlegende Funktion lässt sich daher schnell erklären: Man gibt nano gefolgt von einem Leerzeichen und dem Pfad zur Datei ein, die man erstellen oder bearbeiten möchte. Falls der aktuelle Nutzer dazu nicht berechtigt ist, wird sudo davorgesetzt, um dem Editor volle Root-Rechte zu gewähren. Soll beispielsweise eine neue HTML-Datei für den Apache bereitgestellt werden, der wie in unserem Einstiegsvideo dazu installiert wurde, genügt folgender Befehl:

nano /var/www/html/test.html

Man kann nun direkt Text hinzufügen oder ändern, wie man es von grafischen Editoren her gewohnt ist. Für einige Sprachen bietet nano auch Syntax-Highlighting an. Dadurch lassen sich z.B. HTML-Elemente leichter erkennen und vom Rest des Dokumentes unterscheiden. Dies wird für eine Reihe an gängigen Sprachen angeboten. Man findet die Definitionen für das Hervorheben im Verzeichnis /usr/share/nano. Anhand der Dateierweiterung lädt Nano die passenden Definitionen, etwa PHP für .php Dateien.

Alle verfügbaren Befehle sehen wir am unteren Rand. Um sie auszuführen, muss man STRG und den jeweiligen Buchstabe drücken. Ist die Bearbeitung abgeschlossen, kann man den Editor mit STRG + X (für Exit) schließen. Wenn etwas verändert wurde, fragt nano nach, ob wir dies abspeichern möchten. Erst wenn man hier mit Y für Yes bzw J für Ja bestätigt, wird die Datei geschrieben und die Änderung damit gesichert. Für grundlegende Änderungen reicht das auch schon. Wir schauen uns in einem separaten Beitrag an, welche weiteren Möglichkeiten nano noch bietet – beispielsweise Änderungen rückgängig machen, Suchen oder Ausschneiden/Kopieren.

#4 Auf der Konsole mit vim: Dem Schweizer Taschenmesser der Texteditoren

Vim bzw. dessen Vorgänger vi sind deutlich mächtigere Texteditoren auf der Konsole. Sie bieten eine Vielzahl an Funktionen, die alle zu nennen den Rahmen deutlich sprengen würden. Man kann z.B. mehrere Tabs öffnen, Dateien vergleichen, vielfältig durch Dateien springen und den Editor umfangreich anpassen, um nur ein paar zu nennen. Dafür ist die Bedienung gewöhnungsbedürftig: Es gibt mehrere Modi, in denen jeweils nur bestimmte Funktionen möglich sind. Dadurch ist die Lernkurve höher als bei einfachen Editoren wie nano.

Der Aufruf funktioniert wie bei nano auch: vim gefolgt von einem Leerzeichen und dem Dateiname, beispielsweise

vim /var/www/html/test.html

Direkt etwas schreiben können wir aber nicht, da vim im Befehlsmodus startet. Die Befehle werden mit verschiedenen Buchstaben bzw. Kombinationen daraus gesteuert. Drücken wir beispielsweise ein großes G (also mit Shift), springt der Cursor zur letzten Zeile. Zweimal hintereinander den Buchstabe „d“, löscht die aktuelle Zeile (delete), „u“ macht die letzte Änderung rückgängig (undo).

Um frei Text eingeben zu können, muss man zunächst durch drücken der Taste i (insert) in den Einfügemodus wechseln. Nachdem wir dort unsere Änderungen vorgenommen haben, müssen wir durch Drücken der ESC-Taste wieder zurück in den Befehlsmodus wechseln. Zum Speichern benötigen wir ein Kommand, das durch einen Doppelpunkt eingeleitet wird. :wq schreibt die Änderungen in die Datei (write) und verlässt den Editor (quit). Möchte man die Änderungen nicht speichern, kann man mit :q! diese verwerfen und den Editor beenden.

Auch den Texteditor vi schauen wir uns in anderen Beiträgen genauer an, eines davon werden wir dann oben verlinken.

Fazit

Ihr kennt nun vier verschiedene Möglichkeiten, um Textdateien auf dem Pi zu ändern. Meine Empfehlung wäre, tendenziell die lokalen grafischen Editoren auf dem Client zu bevorzugen, wenn man programmiert oder komplexere Änderungen vornehmen möchte. Oder eben direkt auf dem Pi, falls ihr diesen als Entwicklungsumgebung einsetzt. Natürlich kann man auch mit vim oder nano auf der Konsole arbeiten, wenn man da tiefer drin ist kann man z.B. Tabs mit vim verwenden. Darüber hinaus kann die Funktionalität mit Plugins zusätzlich erweitert werden.

Aber die grafischen Editoren bieten hier in meinen Augen mehr Komfort. Für andere Dinge würde ich bevorzugt einen Editor auf der Konsole nutzen, etwa für kleinere Änderungen oder Funktionalitäten wie Suchen und Ersetzen, das kann vim sehr gut und auch nano grundlegend. Nano ist aufgrund seiner Einfachheit für Einsteiger perfekt, ich habe ihn selbst die erste Zeit benutzt. Sich zumindest später vim genauer anzusehen macht jedoch trotz der höheren Lernkurve Sinn, da man sehr vielseitig und effizient mit dem Editor arbeiten kann, wenn man sich an die Eigenheiten gewöhnt hat.

Letztendlich ist das aber Geschmackssache, die Präferenzen sind verschieden. Es gibt durchaus Menschen, die z.B. komplett mit vim arbeiten. Wer über die Jahre viel Erfahrung damit gesammelt hat, kann mit diesem Texteditor sicher auch sehr effizient arbeiten. Andere nutzen grafische Editoren und verwenden Nano für kleinere Änderungen direkt auf der Konsole.

Dieses Video soll dir einen Überblick geben, damit du siehst: Viele Wege führen nach Rom. Auf der Konsole funktioniert es zwar etwas anders, aber auch das ist kein Hexenwerk. Ich hoffe, dir hat die Übersicht gefallen. Probiere die vorgestellten Wege gerne auf deinem eigenen Pi aus und finde heraus, was für dich am besten ist. Wenn du möchtest, kannst du mir gerne in die Kommentare schreiben, welche Variante dir am besten gefällt, welche du bisher nutzt oder was du ausprobieren möchtest. Damit verabschiede ich mich, viel Erfolg bei deinen Raspberry Pi Projekten, Tschüss bis zum nächsten Mal.

Leave a Reply