Kapitel 5

Grundlagen der Linux‐Shell

Möglicherweise haben Sie bereits einen ersten Eindruck von der Linux‐Shell erhalten. Dabei handelt es sich um die textbasierte Benutzeroberfläche, über die Sie Ihrem Raspberry Pi Befehle erteilen. Bei älteren Versionen vom Raspberry Pi und dem erstmaligen Start mit Raspbian von einer neu geflashten SD‐Karte mussten Sie dort nach der Anmeldung durch Eingabe der standardmäßigen Zugangsdaten (pi und raspberry) das Kommando startx eingeben, um die Desktop‐Umgebung zu starten. Diese einfache Benutzeroberfläche oder Shell wird Bash genannt und auch von den meisten anderen Linux‐Distributionen verwendet. Dieser Name steht als Kürzel für »Bourne Again Shell «, einem Wortspiel, da diese Shell entwickelt wurde, um die Bourne‐Shell zu ersetzen.

In diesem Kapitel werden Sie Ihren Raspberry Pi über die Shell zu verwalten lernen. Es gibt einige gute Gründe, warum Sie sich mit der Shell vertraut machen sollten. Insbesondere lassen sich bestimmte Aufgaben über die Shell schneller und/oder leichter erledigen. Zudem können ein paar Linux‐Kenntnisse an sich auch kaum schaden. Linux ist ein mächtiges und verbreitetes Betriebssystem, zu dessen Grundlagen Ihnen der Raspberry Pi vergleichsweise einfachen Zugang bietet. Sie werden in diesem Kapitel auch einen Eindruck davon erhalten, was sich hinter den Kulissen Ihres Raspberry Pi abspielt.

In den aktuelleren Versionen von Raspbian wird beim Start automatisch der vorgegebene Benutzer angemeldet und die Desktop‐Umgebung gestartet. Um ein Shell‐Fenster zu öffnen, müssen Sie nun oben auf dem Bildschirm in der Werkzeugleiste auf das Symbol LXTERMINAL klicken, auf dem das Prompt (die Eingabeaufforderung) >_ dargestellt ist. Alternativ finden Sie LXTerminal unter der Option ZUBEHÖR (ACCESSORIES) des Himbeer‐Menüs APPLICATIONS (PROGRAMS). Bei beiden Varianten wird ein Fenster auf dem Desktop angezeigt, das Sie für den Zugriff auf die Shell benutzen können.

Spracheinstellung

Sollten die Texte in der grafischen Benutzeroberfläche englisch angezeigt werden, kann das mehrere Ursachen haben. Zunächst einmal ist das vielleicht ganz normal, weil die Texte (noch nicht) vollständig eingedeutscht worden sind. Dann könnten Sie bei der Installation vergessen haben, die Spracheinstellungen korrekt vorzunehmen, und zu guter Letzt müssen Sie Raspbian vielleicht noch einmal neu starten, bis die Spracheinstellungen übernommen werden.

Erinnerung Es ist nicht unbedingt ungewöhnlich, wenn unter Linux beim Eindeutschen von Programmoberflächen die eine oder andere Option übersehen oder vergessen wurde.

Tipp Wenn der Bildschirm gelöscht wird, während Sie die Shell nutzen, müssen Sie sich darüber weiter keine Gedanken machen. Nach Betätigung einer beliebigen Taste der Tastatur oder einer Bewegung der Maus wird er wieder angezeigt. Wenn der Bildschirm vom Bildschirmschoner ausgeschaltet wird, hilft oft die mehrfache Betätigung der rechten Maustaste.

Grundlagen des Prompts

Wenn das Terminal auf dem Bildschirm dargestellt wird, sehen Sie hinter dem Prompt (der Eingabeaufforderung ) einen Cursor, der auf Ihre Befehlseingaben wartet:

pi@raspberrypi ~ $

Auf den ersten Blick wirkt dieses Prompt leicht recht befremdlich und unnötig kompliziert (reicht nicht einfach OK oder Bereit?). Es enthält aber etliche Informationen. Die einzelnen Bestandteile haben diese Bedeutung:

Grundlagen des Linux‐Systems

Sie können völlig gefahrlos beliebige Dateien und Verzeichnisse auf Ihrer SD‐Karte einsehen. Als gewöhnlicher Benutzer können Sie generell keine irgendwie wichtigen Dateien löschen oder beschädigen. Daher müssen Sie auch nicht befürchten, dass Sie im Dateisystem Ihrer SD‐Karte irgendetwas Wichtiges löschen könnten.

Dateien und Verzeichnisse auflisten

Der Befehl für das Auflisten von Dateien und Verzeichnissen lautet ls (list ). Da Sie in Ihrem persönlichen Verzeichnis starten, werden Ihnen die dort vorhandenen Verzeichnisse und Dateien angezeigt, wenn Sie den Befehl nun eingeben. Die Ausgabe sieht bei einem frisch installierten Raspbian so aus:

pi@raspberrypi ~ $ ls
Desktop Downloads Pictures python_games Videos
Documents Music Public Templates

In diesem Kapitel werden Ihre Eingaben fett dargestellt, damit Sie sie von den Ausgaben des Computers besser unterscheiden können.

Warnung Linux unterscheidet zwischen Groß‐ und Kleinschreibung. LS, ls, Ls und lS sind also gänzlich verschiedene Befehle. Verwandtschaften zwischen Groß‐ und Kleinbuchstaben sind Linux unbekannt. Ähnlich wie die auch für uns unterschiedlichen Zeichen A und Z werden daher beispielsweise S und s wie völlig verschiedene Symbole behandelt. Bei falscher Schreibweise in Befehlen funktionieren diese nicht, was für alle Eingaben in der Shell gilt. Wenn Sie fälschlicherweise einen Großbuchstaben in einem Dateinamen verwenden, existiert die gewünschte Datei für Linux einfach nicht. Wenn Sie später anspruchsvollere Befehlsoptionen nutzen, werden Sie sehen, dass bei einigen Befehlen groß‐ und kleingeschriebene Optionen unterschiedlicher Bedeutung existieren.

Verzeichnis wechseln

Im ls‐Beispiel wurde das Ergebnis durchweg in Blau ausgegeben, auch wenn Sie das hier natürlich nicht erkennen können. Das weist darauf hin, dass es sich um Verzeichnisse handelt, in die Sie wechseln können, um die darin enthaltenen Dateien zu betrachten. Der Befehl zum Wechseln des Verzeichnisses heißt cd (change directory). Er wird zusammen mit dem Namen des Verzeichnisses verwendet, in das Sie wechseln wollen:

pi@raspberrypi ~ $ cd python_games

Daraufhin ändert sich das Prompt und zeigt hinter dem Tildezeichen den Namen des Verzeichnisses an, in das Sie gewechselt sind. Wenn Sie das nicht glauben, können Sie es noch einmal überprüfen, indem Sie sich den Inhalt des aktuellen Verzeichnisses durch Eingabe von ls anzeigen lassen.

Dateitypen prüfen

Wenn Sie mehr über eine bestimmte Datei erfahren wollen, können Sie dazu den Befehl file verwenden. Fügen Sie hinter dem Namen des Befehls den Namen der Datei an, über die Sie mehr erfahren wollen. Sofern Sie sie durch Leerzeichen voneinander trennen, können Sie dabei auch mehrere Dateinamen in einem Befehl angeben:

pi@raspberrypi ~/python_games $ file boy.png match0.wav wormy.py
boy.png: PNG image data, 50 x 85, 8-bit/color RGBA, non-interlaced
match0.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit,
mono 44100 Hz

wormy.py: Python script, ASCII text executable

Der Befehl file kann Ihnen einiges über eine Datei mitteilen. Sie haben nicht nur erfahren, welche Art von Daten sich in den ersten beiden Dateien befinden (eine Bild‐ und eine Audiodatei), sondern darüber hinaus auch noch die Abmessungen der Bilddatei (50 x 85 Pixel) und dass die Audiodatei mono ist.

Techniker Erfahrene Computerbenutzer hätten über die Namenerweiterungen (.png, .wav und .py am Ende der Dateinamen) wohl auch so erraten können, um welchen Dateityp es sich handelt. Linux nutzt diese Dateinamenerweiterungen eigentlich gar nicht, weshalb der Befehl file zuweilen hilfreich sein kann. (Anwendungen und die meisten Benutzer nutzen allerdings Dateinamenerweiterungen, weil es angenehmer ist, wenn die Dateinamen Angaben zum Dateityp bereitstellen.)

Techniker Sie können file auch für Verzeichnisse einsetzen. Wenn Sie sich beispielsweise im Ordner pi befinden, können Sie damit ein wenig mehr über die Verzeichnisse Desktop und python_games erfahren:

pi@raspberrypi ~ $ file Desktop python_games
Desktop: directory
python_games: directory

Hier wird uns bestätigt, dass es sich um Verzeichnisse handelt. So ganz intuitiv eingängig ist es vielleicht nicht, wenn mit einem Befehl wie file versucht wird, mehr über Ordner herauszufinden. Das soll Ihnen hier aber eine besondere Linux‐Eigenschaft verdeutlichen. Linux behandelt alles wie Dateien und das gilt nicht nur für Ordner, sondern auch für komplette Festplatten und Netzwerkverbindungen. Für Linux handelt es sich einfach nur um einen Haufen Dateien.

Ins Elternverzeichnis wechseln

Bisher haben wir cd nur dazu benutzt, um in einen anderen Ordner zu wechseln, der sich innerhalb des aktuellen Arbeitsverzeichnisses befand. Häufig werden Sie aber auch in Verzeichnisse wechseln wollen, die dem aktuellen Arbeitsverzeichnis übergeordnet sind und deshalb auch Elternordner genannt werden. Das Verzeichnis python_games befindet sich beispielsweise innerhalb des Ordners pi, bei dem es sich also um dessen Elternordner handelt.

Um in den Elternordner zu wechseln, verwenden Sie cd mit zwei anschließenden Punkten. Wenn Sie sich im Ordner python_games befinden, können Sie diesen Befehl dazu benutzen, um in Ihren persönlichen Ordner (der durch das ~‐Symbol im Befehlsprompt repräsentiert wird) zu wechseln:

pi@raspberrypi ~/python_games $ cd ..
pi@raspberrypi ~ $

Das ~‐Symbol ist tatsächlich nur eine abkürzende Schreibweise für Ihren persönlichen Ordner. Dessen eigentlicher Name entspricht Ihrem Benutzernamen, der laut Vorgabe üblicherweise pi lautet. Das Elternverzeichnis Ihres persönlichen Ordners heißt home und wird dazu genutzt, alle persönlichen Ordner der verschiedenen Benutzer des Rechners darin zu speichern.

Von Ihrem persönlichen Ordner aus sollten Sie versuchen, mit cd .. in das Verzeichnis home zu wechseln. Wenn Sie diesen Befehl dann noch einmal eingeben, gelangen Sie in das höchste Verzeichnis des Dateisystems, das Stamm‐ , Basis‐ oder root‐Verzeichnis , das im Befehlsprompt vom Schrägstrich / repräsentiert wird. Wechseln Sie über die Elternverzeichnisse ins Stammverzeichnis und lassen Sie sich anzeigen, was sich darin befindet:

pi@raspberrypi ~ $ cd ..
pi@raspberrypi /home $ cd ..
pi@raspberrypi / $ ls
bin debian-binary etc lib man mnt proc run srv tmp var boot dev home lost+found media opt root sbin sys usr

Lassen Sie Ihrer Neugier ruhig freien Lauf und sehen Sie sich ein wenig in diesen Ordnern um. Mit ls können Sie sich jeweils anzeigen lassen, was sich darin befindet, und mit cd in vorhandene Verzeichnisse wechseln. Mit file können Sie die gefundenen Dateien schließlich ein wenig näher untersuchen.

Der Aufbau des Ordnerbaums

Stellt man sich vor, wie die Ordner auf einem Computer organisiert sind, nutzt man häufig die Metapher eines Baums. Ein Baum hat einen einzelnen Stamm, von dem viele Äste abgehen, die wiederum weitere Äste haben können, bis man schließlich zu den letzten dünnen Zweigen gelangt.

Der Raspberry Pi hat einen Basisordner, in dem sich Verzeichnisse mit Unterverzeichnissen und möglicherweise weitere Unterverzeichnisse befinden.

Erinnerung Für das Stammverzeichnis werden viele Bezeichnungen verwenden. Haupt‐ , Wurzelverzeichnis , root‐Ordner , Basisordner oder auch oberstes Verzeichnis.

Abbildung 5.1 enthält eine teilweise Darstellung des Ordnerbaums auf Ihrem Raspberry Pi. Sie zeigt nicht alle Unterverzeichnisse der ersten Ebene und auch nicht alle weiteren Unterverzeichnisse, dafür aber, wo sich das home‐Verzeichnis mit Ihrem persönlichen Ordner relativ zu anderen Ordnern und dem Basisordner befindet. Dabei handelt es sich um eine Art Landkarte. Wenn Sie vom Basisordner (/) aus ins Verzeichnis python_games wechseln wollen, zeigt Ihnen der Baum, dass der Weg dabei über die Ordner home und pi führt.

images

Abbildung 5.1: Teil des Ordnerbaums auf Ihrem Raspberry Pi

Im Basisordner existieren insgesamt etwa 20 Verzeichnisse. Alle Programme, Dateien und Betriebssystemdaten Ihres Raspberry Pi werden in ihm und dessen Unterordnern gespeichert. Sie können sich in den verschiedenen Verzeichnissen problemlos umschauen und die dort vorhandenen Dateien mit file ein wenig näher untersuchen.

Techniker Sie werden nur selten eines dieser Verzeichnisse wirklich nutzen müssen. Um Ihre Neugier zu stillen, sollen Sie dennoch kurz erfahren, welchem Zweck sie dienen:

  • bin : Hierbei handelt es sich um ein Kürzel für Binaries und damit Binärdateien, die kleine Programme enthalten, die sich wie Befehle in der Shell verhalten. Zu ihnen zählen auch ls und mkdir, der Befehl zum Anlegen neuer Verzeichnisse, den Sie weiter hinten in diesem Kapitel noch kennenlernen werden.
  • boot : Dieses Verzeichnis enthält mit dem Linux‐Kernel die zentralen Bestandteile des Betriebssystems und eine Reihe von Konfigurationsdateien mit verschiedenen technischen Einstellungen. In Anhang A erfahren Sie, wie Sie die hier gespeicherte config.txt bearbeiten, um gewisse Computereinstellungen zu ändern.
  • dev : In diesem Ordner wird eine Liste der vom Betriebssystem erkannten Geräte (wie Festplatten und Netzwerkverbindungen) gespeichert.
  • etc : Dieses Verzeichnis wird für diverse Konfigurationsdateien verwendet, die für alle Nutzer des Computers gelten.
  • home : Wie bereits erläutert, enthält dieser Ordner Unterverzeichnisse für die verschiedenen Benutzer. Standardmäßig dürfen Benutzer nur in ihren eigenen persönlichen Ordnern Dateien speichern oder ändern.
  • lib : Dieses Verzeichnis enthält gemeinsam genutzte Bibliotheken (libraries) und damit Module, die von verschiedenen Programmen des Betriebssystems genutzt werden.
  • lost+found : Der Name wirkt ein wenig geheimnisvoll und hoffentlich werden Sie sich nie mit diesem Verzeichnis beschäftigen müssen. Es wird genutzt, wenn das Dateisystem beschädigt wird, um dort teilweise wiederhergestellte Dateien abzulegen.
  • media : Wenn Sie ein Wechselmedium wie einen USB‐Stick anschließen, der in der Desktop‐Umgebung automatisch erkannt wird, dann werden die diesbezüglichen Einzelheiten hier abgelegt.
  • mnt : In diesem Verzeichnis werden Details zu Wechselmedien abgelegt, die manuell eingehängt wurden (siehe »Einhängen externer Speichermedien« in Anhang A).
  • opt : In diesem Verzeichnis wird optionale Software auf Ihrem Raspberry Pi abgelegt. Unter Linux wird es zwar üblicherweise für vom Benutzer selbst installierte Software genutzt, beim Raspberry Pi werden Programme aber bevorzugt in /usr/bin abgelegt.
  • proc : Dieses Verzeichnis wird vom Linux‐Kernel für Daten über den Zustand des Systems genutzt. Diese können zwar meist nur mit entsprechendem Expertenwissen interpretiert werden, es kann aber trotzdem Spaß machen, einmal einen Blick zu riskieren. Wenn Sie sehen wollen, was der Kernel von den Prozessoren Ihres Raspberry Pi weiß, geben Sie einmal less /proc/cpuinfo ein. Mit less /proc/meminfo erfahren Sie mehr über die Größe und die Nutzung des Arbeitsspeichers. (Wie Sie less ausreizen können, werden Sie später noch erfahren. Vorläufig müssen Sie nur noch wissen, dass Sie den Anzeigemodus des Programms mit keycaps verlassen.) Wenn Sie diese Dateien mit dem Befehl file betrachten, sind sie sonderbarerweise vermeintlich leer, was daran liegt, dass sie laufend aktualisiert werden.
  • root : Gewöhnlichen Benutzern fehlt die Berechtigung, in dieses Verzeichnis zu wechseln. Dessen Nutzung bleibt dem Benutzer root vorbehalten, dem unter Linux allmächtigen Konto des Superusers , das alle Aktionen am Computer zulässt. Beim Raspberry Pi wird davon abgeraten, das Konto root zu verwenden. Stattdessen wird empfohlen, bestimmte Befehle mit dem Befehl sudo und den Rechten des root‐Benutzers auszuführen. Weiter hinten in diesem Kapitel werden wir Ihnen zeigen, wie Sie auf diesem Weg Software installieren (siehe »Software installieren«).
  • run : Dieses Verzeichnis ist eine relativ neue Linux‐Erweiterung und bietet Programmen einen Platz, an dem sie Daten speichern können, die von ihnen nach dem Hochfahren des Betriebssystems benötigt werden. Daten im Ordner tmp werden gern von Aufräumprogrammen beseitigt und auch das Verzeichnis usr steht nicht gleich direkt beim Systemstart auf allen Linux‐Systemen bereit (es kann sich in einem anderen Dateisystem befinden).
  • sbin : Dieses Verzeichnis enthält Software, deren Nutzung typischerweise dem benutzer root vorbehalten bleibt.
  • srv : Ein leerer Ordner, der unter Linux manchmal zum Speichern von Daten für Dienste wie FTP genutzt wird, mit dem Dateien über das Internet kopiert werden.
  • sys: Ordner für Dateien des Linux‐Betriebssystems.
  • tmp: Dieser Ordner wird für temporäre, also nur vorübergehend angelegte, Dateien verwendet.
  • usr: Dieser Ordner wird für Programme und Dateien verwendet, auf die gewöhnliche Benutzer zugreifen und die sie starten dürfen.
  • var: Hier werden Dateien gespeichert, deren Größe sich ändern kann, wie beispielsweise Datenbanken und Protokolldateien . Das Protokoll der Systemmeldungen können Sie sich beispielsweise mit dem Befehl less /var/log/messages anzeigen lassen. (Verwenden Sie die Pfeiltasten zum Blättern und beenden Sie die Dateianzeige mit keycaps.)

Relative und absolute Pfade

Wir haben bereits erwähnt, wie Sie Dateien zwischen einander direkt über‐ oder untergeordneten Verzeichnissen fast wie in der Desktop‐Umgebung verschieben können. Sie öffnen einen Ordner, öffnen darin befindliche Ordner, öffnen den nächsten Ordner und so weiter. Das ist einfach und wird deshalb auch häufig genutzt. Wenn es aber um komplexere Ordnerstrukturen geht, wird das schnell mühsam.

Wenn Sie Ihr Ziel kennen, können Sie durch die Angabe von Pfaden direkt dorthin wechseln. Pfade entsprechen einer Beschreibung der Position von Ordnern oder Dateien im Ordnerbaum. Es gibt zwei Arten von Pfaden und damit Wegbeschreibungen: relative und absolute. Ein relativer Pfad entspricht einer vom aktuellen Standort ausgehenden Wegbeschreibung: einen Ordner hoch, dann in den Ordner Desktop und schon sind Sie da! Der absolute Pfad bleibt hingegen immer gleich und ähnelt damit einer von einem Bahnhof ausgehenden Beschreibung (oder auch einer Straßenadresse), die unabhängig vom jeweiligen Standort gleich bleiben.

Absolute Pfade werden vom Basisordner ausgehend angegeben und beginnen daher mit einem /. Dahinter folgt eine Liste der Ordner, die auf dem Weg zum Zielverzeichnis durchwandert werden müssen. Der absolute Pfad für den Ordner pi lautet so beispielsweise /home/pi. Wo auch immer Sie sich im Ordnerbaum befinden, mit diesem Befehl gelangen Sie immer in den persönlichen Ordner des Benutzers pi:

cd /home/pi

Um direkt ins Verzeichnis Desktop zu wechseln, benutzen Sie:

cd /home/pi/Desktop

Um ins Basisverzeichnis zu gelangen, verwenden Sie einfach nur den Schrägstrich selbst:

cd /

Unter Linux müssen Sie nicht den Basisordner als Ausgangspunkt für absolute Pfade benutzen, sondern können sich auch auf Ihren Benutzerordner beziehen. Dieser wird von einer Tilde (~) repräsentiert. Verwenden Sie sie eigenständig, gelangen Sie direkt in Ihren Benutzerordner:

cd ~

Alternativ können Sie das Zeichen am Anfang der Pfadangabe für ein anderes Verzeichnis benutzen, das sich in Ihrem persönlichen Ordner befindet:

cd ~/Desktop

Relative Pfade nutzen das aktuelle Arbeitsverzeichnis als Ausgangspunkt. Der Name des jeweiligen aktuellen Verzeichnisses wird normalerweise im Prompt (der Eingabeaufforderung) angezeigt. Sie können das aber auch noch einmal mit dem Befehl pwd (Print Working Directory) überprüfen:

pwd

Während im Prompt die Tilde (~) angezeigt wird, wenn Sie sich in Ihrem persönlichen Ordner aufhalten, teilt Ihnen pwd mit, wo sich dieses tatsächlich im Ordnerbaum befindet, und meldet daher /home/pi.

In relativen Pfaden, die Unterordner als Ausgangspunkt benutzen, werden nur die Ordner unterhalb des angegebenen Unterverzeichnisses in ihrer Reihenfolge angegeben und dabei jeweils mit einem Schrägstrich voneinander getrennt. In Abbildung 5.1 gibt es beispielsweise einen Ordner home, in dem sich der Ordner pi mit dem Ordner Desktop darin befindet. Vom Ordner home aus können Sie in den Ordner Desktop wechseln, wenn Sie Folgendes eingeben:

pi@raspberrypi /home $ cd pi/Desktop
pi@raspberrypi ~/Desktop $

Auf diese Weise können Sie in beliebige Verzeichnisse unterhalb des aktuellen wechseln. Wenn Sie zwei Punkte (..) in Pfadangaben verwenden, können Sie Pfade auch ausgehend vom jeweiligen Elternordner aus angeben. Stellen Sie sich wieder basierend auf Abbildung 5.1 vor, Sie wollten vom Ordner Desktop in den Ordner python_games wechseln. Das können Sie mit diesem Befehl auf dem Weg über den Ordner pi erledigen:

pi@raspberrypi ~/Desktop $ cd ../python_games
pi@raspberrypi ~/python_games $

Wie das Prompt zeigt, sind Sie vom Ordner Desktop in das Verzeichnis python_games gewechselt. Ausgangspunkt war Desktop, dann ging es über den Elternordner (pi) nach python_games. Sie können im Baum auch mehrfach den Weg über Elternordner gehen. Um beispielsweise vom Ordner pi in den Basisordner (/) zu wechseln, könnten Sie auch diesen Befehl verwenden:

pi@raspberrypi ~ $ cd ../../boot
pi@raspberrypi /boot $

Damit gelangen Sie in den Elternordner von pi (den Ordner namens home), dann eine weitere Ebene in Richtung Basisordner und von dort aus in den Ordner boot.

Je nachdem, was jeweils praktischer ist, können Sie absolute oder relative Pfade verwenden. Wenn sich Pfade in der Nähe des aktuellen Ordners befinden, dürfte die Nutzung relativer Pfade einfacher sein. Ansonsten sind absolute Pfade wohl zweckmäßiger. Letztlich bleibt das aber Ihnen überlassen. Die Pfade werden hier nur für den Wechsel zwischen Ordnern verwendet. Sie können sie aber auch in anderen Befehlen benutzen, um sich auf bestimmte Dateien zu beziehen. Dabei geben Sie typischerweise die Dateinamen zusammen mit Ihrem Pfad im Befehl an. Beispielsweise können Sie den Befehl file so verwenden:

file /boot/config.txt

Warnung Bringen Sie absolute und relative Pfade nicht durcheinander. Insbesondere müssen Sie darauf achten, wo Sie den Schrägstrich verwenden. Sie sollten / nur dann am Anfang einer Pfadangabe verwenden, wenn diese wirklich mit dem Basisverzeichnis beginnen soll.

Tipp Wenn Sie nur in einen anderen Ordner wechseln wollen, um sich dort kurz umzusehen und dann wieder zurückzukommen, können Sie mal eben wieder in den vorherigen Ordner zurückkehren:

cd ‐

            Wenn Sie diesen Befehl eingeben, wechseln Sie in den zuletzt in der Shell aktuellen Ordner, der damit wieder zum aktuellen Arbeitsordner wird.

Wenn Sie den Befehl cd allein verwenden, können Sie damit auch schnell in Ihren privaten Ordner wechseln:

pi@raspberrypi /boot $ cd
pi@raspberrypi ~ $

Einige anspruchsvollere ls‐Optionen

Sie können ls auch dazu benutzen, um sich den Inhalt von Ordnern außerhalb des aktuellen Arbeitsverzeichnisses anzeigen zu lassen, wenn Sie deren Pfad im Befehl mit angeben:

pi@raspberrypi ~ $ ls /boot

Auch wenn Sie sich in Ihrem persönlichen Ordner befinden, zeigt Ihnen dieser Befehl den Inhalt des Ordners /boot an.

Wenn wir in Befehlen weitere Angaben machen, wie beispielsweise einen Dateinamen oder einen Pfad, werden diese Argument genannt. Viele Linux‐Befehle übernehmen Argumente auf diese Weise (auch die Befehle cd und file).

Warnung Datei‐ und Ordnernamen können unter Linux Leerzeichen enthalten. Um sie dennoch als einzelnes Argument verwenden zu können, nutzen Sie Anführungszeichen:

cd "~/Musik/10_Mit Leerzeichen.mp3"

Einige Befehle können auch Optionen verarbeiten. Diese teilen dem Befehl mit, wie er seine Arbeit verrichten soll, und folgen allgemein dem Format, dass auf einen einleitenden Bindestrich Codes folgen, die dem Befehl mitteilen, welche Option(en) er verwenden soll.

In Verbindung mit ls können Sie etliche Optionen verwenden, um dessen Ausgabe zu verändern. Eine Übersicht finden Sie in Tabelle 5.1. Wechseln Sie beispielsweise in Ihr persönliches Verzeichnis und geben Sie dies ein:

pi@raspberrypi ~ $ ls ‐R

Option

Beschreibung

‐1

Die Ziffer 1 sorgt für die Ausgabe der Ergebnisse in einer einzelnen Spalte anstelle einer Zeile.

‐a

Zeigt alle Dateien und damit auch versteckte Dateien an. Die Namen versteckter Dateien beginnen unter Linux mit einem Punkt. Versteckte Dateien werden meist vom Betriebssystem angelegt (und benutzt) und sollten daher nicht verändert werden. Sie können aber durchaus selbst versteckte Dateien erstellen, wenn Sie als erstes Zeichen des Dateinamens einen Punkt verwenden.

‐F

Diese Option setzt Symbole neben Dateinamen, um deren Typ anzugeben. Wenn Sie diese Option benutzen, steht hinter Ordnern ein / und hinter ausführbaren Dateien ein *.

‐h

Beim langen Format werden die Dateigrößen in Kilobyte, Megabyte oder Gigabyte angegeben, um Ihnen ein wenig Kopfrechnerei abzunehmen. Das Kürzel steht für human‐readable (»für Humanoide lesbar«).

‐l

Diese Option zeigt die Ergebnisse im Langformat mit Angaben zu den Dateiberechtigungen und des letzten Änderungsdatums und deren Größe an. Diese Option verwendet den Kleinbuchstaben l.

‐m

Gibt die Ergebnisse als durch Kommas getrennte Werte aus (CSV – Comma‐separated Values).

‐R

Hierbei handelt es sich um die rekursive Option. Dabei werden nicht nur die direkt im aktuellen Arbeitsverzeichnis enthaltenen Dateien und Ordner angezeigt, sondern es werden rekursiv auch die Unterverzeichnisse und deren Inhalte abgearbeitet und der Ordnerbaum durchsucht. Wenn Sie vom Basisordner aus den Befehl ls ‐R eingeben, werden Ihnen alle Dateien angezeigt, die sich auf Ihrem Raspberry Pi befinden. Das dauert dann aber eine Weile. Wenn es Ihnen langweilig wird, können Sie den Befehl dann mit keycaps+keycaps abbrechen.

‐r

Diese Option zeigt die Ergebnisse in umgekehrter Reihenfolge (rückwärts/reverse) an. Standardmäßig werden die Ergebnisse in alphabetischer Reihenfolge präsentiert. Beachten Sie, dass es sich bei ‐r und ‐R um völlig unterschiedliche Optionen handelt.

‐S

Sortiert die Ergebnisse nach der Größe.

‐t

Sortiert die Ergebnisse nach Datum und Uhrzeit der letzten Änderung.

‐X

Sortiert die Ergebnisse nach der Dateinamenerweiterung.

Tabelle 5.1: Optionen des ls‐Befehls

Damit wird erst der gesamte Inhalt Ihres persönlichen Verzeichnisses und dann der Inhalt der Ordner angezeigt, die sich in Ihrem persönlichen Verzeichnis befinden.

Bei der gemeinsamen Verwendung von Optionen und Argumenten kommen erst die Optionen und dann die Argumente. Das typische Format von Linux‐Befehlen sieht also so aus

befehl ‐optionen argumente

Nutzen Sie beispielsweise die Option ‐X, um den Inhalt des Ordners python_games auszugeben. Da die Dateien mit den Erweiterungen .png, .py und .wav jetzt gruppiert werden, können Sie sich leichter einen Überblick verschaffen. Der zu verwendende Befehl lautet:

pi@raspberrypi ~ $ ls –X ~/python_games

Sie können mehrere Optionen hinter einem einzelnen Bindestrich miteinander kombinieren und gemeinsam angeben. Wenn Sie beispielsweise wissen wollen, was sich in allen Ordnern unterhalb des aktuellen Verzeichnisses (Option R) befindet und Sie das Ergebnis nach Dateityp sortieren (Option X) und Symbole verwenden wollen, um Ordner und ausführbare Dateien zusätzlich zu kennzeichnen (Option F), könnten Sie den folgenden Befehl verwenden:

pi@raspberrypi ~ $ ls ‐RXF

Abbildung 5.2 zeigt die daraus resultierende Ausgabe. Die Ausgabe zeigt die Daten eines unserer Rechner an. Wir haben den Rollbalken des Fensters benutzt, um zum Anfang der Ergebnisanzeige zurückzukehren. Vielleicht ist Ihnen aufgefallen, dass in Pfadnamen ein einzelner Punkt anstelle des aktuellen Ordners verwendet wird. Für den Pfad des ersten Ergebnissatzes steht daher einfach nur ein Punkt. Der Punkt ist also ein Kürzel für das aktuelle Verzeichnis und lässt sich ähnlich wie die zwei Punkte für den Elternordner verwenden.

images

Abbildung 5.2: Ein Listing mit allen Unterverzeichnissen sortiert nach Dateityp mit farblicher Kennzeichnung der Namen von Ordnern und ausführbaren Dateien

Tipp Beim Experimentieren mit ls (oder anderen Befehlen) können Sie den Bildschirm mit dem Befehl clear löschen und bei Bedarf ein wenig aufräumen.

Langformat und Berechtigungen

Bei einer der nützlichsten ls‐Optionen handelt es sich um das lange Darstellungsformat , bei dem weitere Informationen zu den Dateien angezeigt werden. Sie nutzen diese Option durch zusätzliche Eingabe des Parameters –l (dem Kleinbuchstaben l) hinter dem ls‐Befehl:

pi@raspberrypi ~ $ ls –l
total 152
‐rw‐r‐‐r‐‐ 1 pi pi 256 Nov 18 13:53 booknotes.txt
drwxr‐xr‐x 2 pi pi 4096 Oct 28 22:54 Desktop
drwxr‐xr‐x 5 pi pi 4096 Oct 28 22:35 Documents
drwxr‐xr‐x 2 pi pi 4096 Oct 28 22:54 Downloads
drwxr‐xr‐x 2 pi pi 4096 Oct 28 22:54 Music
drwxr‐xr‐x 2 pi pi 4096 Oct 28 22:54 Pictures
drwxr‐xr‐x 2 pi pi 4096 Oct 28 22:54 Public
drwxrwxr‐x 2 pi pi 4096 Nov 17 22:35 python_games
drwxr‐xr‐x 2 pi pi 4096 Nov 3 17:43 seanwork
‐rw‐r‐‐r‐‐ 1 pi pi 20855 Nov 12 2010 spacegame.sb
drwxr‐xr‐x 2 pi pi 4096 Oct 28 22:54 Templates
drwxr‐xr‐x 2 pi pi 4096 Oct 28 22:54 Videos

Dieses Darstellungsformat mag vielleicht ein wenig skurril wirken, lässt sich aber leicht begreifen, wenn man es von rechts nach links liest. Jede einzelne Zeile bezieht sich auf eine Datei oder einen Ordner, dessen Name ganz rechts steht. Daneben kommen Uhrzeit und Datum der letzten Änderung. Bei älteren Dateien wird anstelle der Änderungszeit das Jahr angegeben, in dem die Änderung stattfand. Das ist in der letzten Liste beispielsweise bei der Datei spacegame.sb der Fall.

Die Zahl in der Mitte der Zeile gibt die Dateigröße an. Bei drei der Einträge handelt es sich um Ordner (Desktop, python_games und seanwork), deren Dateigrößen übereinstimmen (4096 Bytes), obwohl sich die Inhalte stark unterscheiden. Das liegt daran, dass auch Ordner Dateien sind und die hier aufgeführte Zahl Ihnen mitteilt, wie groß die Datei mit der Beschreibung des Ordners ist, und nichts über die Größe des eigentlichen Inhalts des Ordners aussagt. Die Dateigröße wird in Byte angegeben. Um die Zahlenangaben ein wenig aussagekräftiger zu gestalten, können Sie aber die Option ‐h hinzufügen. Dann wird anstelle von 4096 Bytes beispielsweise 4K angegeben.

Die übrigen Angaben beziehen sich auf Berechtigungen , die angeben, wer mit der jeweiligen Datei was machen darf. Linux wurde von Beginn an so gestaltet, dass es mehreren Benutzern sichere Möglichkeiten zur gemeinsamen Nutzung desselben Systems bereitstellt. Entsprechend sind Berechtigungen wichtig für die Arbeitsweise von Linux.

Techniker Viele Benutzer meinen, Ihren Raspberry Pi benutzen zu können, ohne viel über Berechtigungen wissen zu müssen. Berechtigungen teilen Ihnen aber eine Menge darüber mit, wie Linux arbeitet, und dieses Wissen könnte Ihnen bei riskanteren Ausflügen noch nützlich sein.

Dateiberechtigungen fallen in drei Kategorien: Berechtigungen des Besitzers der Datei (üblicherweise die Person, die die Datei erstellt hat), Berechtigungen der Gruppenbesitzer (Mitglieder einer Gruppe, die zur Nutzung der Datei berechtigt sind) und Berechtigungen aller (Berechtigungen der »Welt «).

Im langen Listing wird das Wort pi zwei Mal bei den einzelnen Dateien angezeigt. Diese beiden Spalten entsprechen dem Besitzer der Datei oder des Ordners (die linke der beiden Spalten) und der Gruppe, die die Datei besitzt. Diese beiden tragen hier denselben Namen, weil Linux eine Gruppe für jeden Benutzer erstellt, die nur diesen selbst enthält und deren Name dem des Benutzers entspricht. Theoretisch könnte die Gruppe auch Studenten heißen und alle Studenten mit Benutzernamen für den Computer enthalten.

Die äußerste linke Spalte enthält einen Code, der den Dateityp und die der Datei zugeordneten Berechtigungen erläutert. Um den Sinn des Codes erfassen zu können, unterteilen Sie ihn entsprechend Tabelle 5.2 in vier Blöcke. Darin finden Sie den Code, der bei booknotes.txt und spacegame.sb in meiner langen Verzeichnisdarstellung angegeben wird.

Dateityp

Besitzer

Gruppe

Welt

rw‐

r‐‐

r‐‐

Tabelle 5.2: Die Bedeutung von Berechtigungen

Bei den beiden wichtigsten Dateitypen, denen Sie wahrscheinlich begegnen werden, handelt es sich um gewöhnliche Dateien und Ordner. Bei gewöhnlichen Dateien wird ein Bindestrich () als Dateityp am Anfang ihres Codes angezeigt und bei Ordnern finden Sie ein d (Directory ). Diese beiden Symbole finden Sie im langen Ordnerlisting.

Anschließend folgen die Berechtigungen für den Besitzer, die Gruppe und die übrige Welt. Es gibt drei verschiedene Berechtigungen, die jemand haben kann:

Warnung Das dürfte Ihnen zwar wahrscheinlich logisch und intuitiv erscheinen, hat aber zwei Haken. Erst einmal können Sie Daten nur in Ordnern ändern, wenn Sie auch dafür die Ausführen‐Berechtigung besitzen. Und dann können Sie nur Dateien umbenennen oder löschen, wenn Ihnen dies die Berechtigungen für deren Verzeichnis erlauben. Und das gilt auch, wenn Sie die entsprechenden Berechtigungen für die Datei besitzen.

Für die Darstellung der Berechtigungen werden die drei Buchstaben r (read/lesen), w (write/schreiben) und x (execute/ausführen) in dieser Reihenfolge als Code benutzt. Wenn bestimmte Berechtigungen nicht eingeräumt wurden, wird der Buchstabe im Code durch einen Bindestrich ersetzt. Aus Tabelle 5.2 können Sie also entnehmen, dass der Besitzer die Datei lesen und schreiben kann, während die Gruppe und die Welt (alle anderen) sie nur lesen darf.

Der Code für den Desktop‐Ordner lautet in der langen Liste drwxr‐xr‐x. Der erste Buchstabe teilt uns mit, dass es sich um einen Ordner handelt. Die nächsten drei Buchstaben (rwx) sagen uns, dass der Besitzer dazu berechtigt ist, ihn zu lesen, darin zu schreiben, und dorthin wechseln darf. Sie können also dessen Inhaltsverzeichnis anzeigen lassen (read), dürfen Dateien hinzufügen oder löschen (write) und in den Ordner wechseln, um diese Aktionen auch durchzuführen (execute). Die nächsten drei Zeichen (r‐x) teilen uns mit, dass Gruppenbesitzer in das Verzeichnis wechseln (execute) und dessen Inhalt auflisten (read), aber keine Dateien erstellen oder löschen dürfen. Die letzten drei Zeichen (r‐x) besagen, dass alle anderen (die Welt) dieselben Nur‐Lesen‐Berechtigungen besitzt.

Es gibt einige Befehle, mit denen Sie Dateiberechtigungen ändern können. Mit chown können Sie beispielsweise den Besitzer und mit chgrp den Gruppenbesitzer einer Datei ändern. Aus Platzmangel können wir hier zwar nicht näher darauf eingehen, aber im Abschnitt »Mehr über Linux‐Befehle herausfinden« weiter hinten in diesem Kapitel erfahren Sie dafür mehr darüber, wie Sie sich Hilfeinformationen anzeigen lassen. Am einfachsten ändern Sie Berechtigungen jedenfalls über die Desktop‐Umgebung. Klicken Sie im Dateimanager (siehe Kapitel 4) eine Datei mit der rechten Maustaste an und wählen Sie DATEIEIGENSCHAFTEN . Über den Reiter BERECHTIGUNGEN gelangen Sie in das in Abbildung 5.3 dargestellte gleichnamige Fenster, in dem Sie alle Dateiberechtigungen ändern können.

images

Abbildung 5.3: Berechtigungen über den Dateimanager ändern

Ausgabe verlangsamen und Dateien mit less lesen

Das Problem beim Befehl ls besteht darin, dass er Sie rasch mit Informationen überhäuft, die Sie gar nicht lesen können, weil sie viel zu schnell an Ihren Augen vorbeifliegen. Wenn Sie LX‐Terminal in der Desktop‐Umgebung verwenden, können Sie über den Rollbalken zu älteren Ausgaben zurückkehren, die vom Bildschirm geschoben wurden.

Die üblichere Lösung besteht jedoch in der Benutzung des Befehls less , der Ihr Listing übernimmt und es Ihnen ermöglicht, darin zu blättern, und es Ihnen seitenweise anzeigt. Um das Listing dem less‐Befehl zu übergeben, setzen Sie das Verkettungszeichen »|« (Pipe‐Zeichen ) hinter den ls‐Befehl:

ls –RXF | less

Wenn Sie less verwenden, können Sie die Ausgabe mit den Pfeiltasten zeilenweise durchlaufen oder seitenweise mit den Tasten keycaps oder keycaps (keycaps oder keycaps) durchblättern. Eine Suchfunktion können Sie mit keycaps aufrufen. Anschließend geben Sie den Suchbegriff ein und drücken keycaps. Die Programmanzeige beenden Sie mit keycaps.

Tipp Mit keycaps+keycaps brechen Sie die Ausführung von Linux‐Befehlen und deren lange Listingausgaben ab.

Tipp Sie können less auch dazu benutzen, um sich den Inhalt von Textdateien anzeigen zu lassen. Übergeben Sie dazu den Dateinamen als Argument, wie in diesem Beispiel:

less /boot/config.txt

Der Befehl bietet Ihnen eine gute Möglichkeit, die Dateien bei der Erforschung von Linux zu untersuchen. less warnt Sie, wenn es sich bei der Datei, die Sie lesen wollen, möglicherweise um eine Binärdatei handeln könnte, die als Computercode für Menschen wahrscheinlich nicht direkt lesbar sein dürfte. Sie können also less versuchsweise auf alle Dateien loslassen und sich zurückhaltender zeigen, wenn entsprechende Warnungen angezeigt werden. Wenn Sie nämlich Binärcode auf dem Bildschirm anzeigen, kann das schon einmal zu höchst seltsamen Resultaten wie nicht mehr lesbaren Shell‐Ausgaben führen.

Tipp Wenn Ihnen nur die ersten zehn Zeilen einer Datei angezeigt werden sollen, weil Sie vielleicht nur deren Version prüfen wollen, können Sie dazu den Befehl head mit anschließender Angabe eines Dateinamens verwenden.

Damit kennen Sie bereits alle Werkzeuge, die Sie zur weiteren Erforschung Ihres Linux‐Betriebssystems benötigen!

Die Befehlseingabe beschleunigen

Da Sie bereits einige grundlegende Befehle kennen, zeigen wir Ihnen nun ein paar Tricks, mit denen Sie die Arbeit mit der Shell beschleunigen können.

Zunächst einmal speichert die Shell die zuletzt eingegebenen Befehle in einer Art Chronik oder Geschichte (History ). Sie müssen Befehle daher nicht erneut eintippen, wenn Sie sie wiederholt benutzen wollen. Um den zuletzt eingegebenen Befehl erneut zu verwenden, können Sie zwei Ausrufezeichen eingeben und keycaps betätigen. Zudem können Sie die Liste der vorher eingegebenen Befehle chronologisch rückwärts und dann auch vorwärts mit den Pfeiltasten durchlaufen. Diese werden dann jeweils hinter dem Prompt in der Befehlszeile angezeigt. Bei Bedarf können Sie die Befehle auch bearbeiten, bevor Sie sie mit keycaps abschicken.

Sie können die Shell auch raten lassen, was Sie tippen wollen, und Ihre Eingaben automatisch vervollständigen lassen, wenn Sie keycaps drücken. Diese Funktion lässt sich für Befehle und Dateien nutzen. Wenn Sie beispielsweise

cd /bo

eingeben und keycaps drücken, wird der Pfad zu /boot/ vervollständigt.

Diese Vorgehensweise ist insbesondere dann nützlich, wenn Sie es mit langen und komplizierten Dateinamen zu tun haben. Wenn das einmal nicht funktioniert, haben Sie der Shell nicht genug Hinweise gegeben und müssen noch ein paar Buchstaben nachreichen, damit klar wird, was Sie beabsichtigen.

Erinnerung Im Terminal‐Fenster können Sie angezeigte Dateinamen über das Kontextmenü kopieren und einfügen!

Dateien durch Befehlsumleitungen erstellen

Bevor wir uns ansehen, wie Sie Dateien löschen und kopieren, sollten wir einige Dateien vorbereiten, mit denen wir spielen.

Statt die Ergebnisse eines Befehls auf dem Bildschirm auszugeben, können Sie sie in eine Datei umleiten lassen. Sie können beispielsweise Inhaltsverzeichnisse von Ordnern in Dateien ausgeben lassen, um sie dauerhaft aufzubewahren oder mit einem Texteditor zu bearbeiten und zu analysieren. Um die Bildschirmausgabe in eine Datei umzuleiten, verwenden Sie ein Größer‐Zeichen und geben den Namen der Datei an, in der die Ausgabe gespeichert werden soll:

ls > /listing.txt

Erinnerung Damit der Befehl unter Linux funktioniert, müssen Sie die Dateiendung .txt nicht verwenden. Sie sollten sie aber als Merkhilfe dennoch nutzen, zumal sie sich auf Windows‐Rechnern so später nutzen ließe.

Warnung Versuchen Sie, diesen Befehl zwei Mal nacheinander von verschiedenen Verzeichnissen aus abzusetzen, und betrachten Sie dann den Inhalt von listing.txt mit dem Befehl less. Sie werden sehen, wie wenig nachsichtig Linux ist. Bei der ersten Ausführung des Befehls wird die Datei listing.txt erzeugt. Bei der zweiten wird diese ohne Warnung überschrieben. Linux unterstellt, dass Sie wissen, was Sie tun. Daher müssen Sie selbst darauf achten, nicht versehentlich vorhandene Dateien zu ersetzen.

Wenn Ihnen nach ein wenig Abwechslung ist, können Sie einige andere Befehle zur Anzeige des Dateiinhalts auf dem Bildschirm nutzen:

Wenn Sie etwas am Ende einer vorhandenen Datei anfügen wollen, können Sie dazu zwei Größer‐Zeichen wie im Beispiel in Abbildung 5.4 verwenden.

images

Abbildung 5.4: Texte und Befehlsausgaben in einer Datei speichern und diese anzeigen

Sie können Umleitungen wie diese dazu verwenden, um einige Dateien zu erstellen und mit ihnen das Kopieren und Löschen zu üben. Wenn Sie keine Zeit mit dem Erstellen von Dateiinhalten verbringen wollen, können Sie auch einfach ein paar leere Befehle durch Umleitungen wie diese erzeugen:

> testfile1.txt

Verzeichnisse anlegen

Wie Sie möglicherweise wissen, lassen sich die Dateien auf Ihrem Rechner viel leichter verwalten, wenn sie in Verzeichnissen (Ordnern) organisiert werden. In Ihrem persönlichen Ordner können Sie mit dem Befehl mkdir leicht ein neues Verzeichnis erstellen:

mkdir work

Um Zeit zu sparen, können Sie mit einem Befehl auch mehrere Verzeichnisse erstellen:

pi@raspberrypi ~ $ mkdir work college games
pi@raspberrypi ~ $ ls
Downloads python_games work college Music Desktop Pictures Documents games Public Templates Videos

Insbesondere, wenn Sie die bisherigen Beispiele nachvollzogen haben, werden Sie hier wahrscheinlich noch weitere Dateien sehen. Wichtig ist aber letztlich nur, dass Sie mit einem Befehl drei neue Verzeichnisse angelegt haben.

Tipp Die Möglichkeit, mit mkdir mehrere Verzeichnisse gleichzeitig erstellen zu lassen, ist nicht ungewöhnlich. Viele andere Befehle akzeptieren ebenfalls mehrere Argumente und verarbeiten sie der Reihe nach. So können Sie sich beispielsweise den Inhalt von zwei Ordnern nacheinander anzeigen lassen:

ls ~ /boot

Tipp Der Befehl mkdir liefert Ihnen standardmäßig nicht gerade viel Einblick in die aktuellen Fortschritte. Sie können aber die Option ‐v (verbose) verwenden, die beim Erstellen der Ordner laufend entsprechende Meldungen ausgibt. Dem nächsten Codeschnipsel können Sie entnehmen, wie das aussieht.

Wenn Sie Ordner mit darin enthaltenen Unterverzeichnissen erstellen wollen, wäre es lästig, erst ein Verzeichnis erstellen, dann in dieses gehen und diese Schritte wiederholen zu müssen. Stattdessen können Sie die Option ‐p verwenden:

pi@raspberrypi ~ $ mkdir –vp work/writing/books
mkdir : created directory 'work'
mkdir : created directory 'work/writing'
mkdir : created directory 'work/writing/books'

Der Befehl informiert Sie über die vorgenommenen Änderungen. Wenn das Verzeichnis work bereits existiert, wird die erste der drei hier im Beispiel angezeigten Zeilen nicht ausgegeben.

Dateien löschen

Nachdem Sie ein wenig mit Dateien und Ordnern herumexperimentieren durften, gibt es bei Ihnen bestimmt überall verstreut seltsame Dateien und sinnlose Verzeichnisse. Es wird also Zeit, ein wenig aufzuräumen.

Warnung Um Dateien unter Linux zu löschen, verwenden Sie den Befehl rm (remove). Nutzen Sie ihn wirklich vorsichtig. Hier gibt es keine Mülltonne und keinen Papierkorb, aus dem Sie Ihre Datei wieder hervorholen können. Weg ist hier weg. Wahre Linux‐Experten könnten es vielleicht schaffen, die Dateien mit spezieller Software und einer Menge Geduld wieder hervorzuzaubern, weshalb es sich nicht um eine sichere Löschung handelt. Durchschnittliche Anwender ohne das entsprechende Wissen und die benötigte Software löschen Dateien mit rm aber schnell und effektiv.

Das Format des Befehls rm lautet:

rm options filename

Wie bei mkdir teilt Ihnen der Befehl auch hier erst dann mit, was er macht, wenn Sie die Option ‐v (verbose) verwenden. Beispielsweise könnten Sie eine Datei namens letter.txt mit diesem Befehl löschen:

pi@raspberrypi ~ $ rm –v letter.txt
removed 'letter.txt'

Wie bei mkdir können Sie auch rm mehrere Argumente übergeben. Sie können also gleichzeitig mehrere Dateien mit einem Befehl löschen:

pi@raspberrypi ~ $ rm –v letter.txt letter2.txt
removed 'letter.txt'
removed 'letter2.txt'

An dieser Stelle müssen Sie äußerst vorsichtig sein. Stellen Sie sich vor, dass bei Ihnen die beiden Dateien old index.html und index.html existieren. Bei der Letzteren handelt es sich um die Homepage Ihrer neuen Website, mit der Sie sich das ganze Wochenende lang herumgeplagt haben. (Sie ahnen schon, worauf das hinausläuft, oder?) Sie wollen die alte Dateiversion löschen und geben daher diesen Befehl ein:

pi@raspberrypi ~ $ rm –v old index.html
rm : Entfernen von 'old' nicht möglich:
Datei oder Verzeichnis nicht gefunden
removed 'index.html'

Warnung Dumm gelaufen! Wegen dieses Leerzeichens im Dateinamen old index.html meint rm, es solle zwei Dateien löschen, wobei die erste old und die zweite index.html heißt. rm teilt Ihnen (wegen –v) mit, dass es keine Datei namens old finden kann, macht dann aber gleich weiter und löscht index.html. Mist!

Um ein Sicherheitsnetz einzubauen, können Sie die Option ‐i (interactive) verwenden, die Ihnen mitteilt, welche Dateien gelöscht werden, und Sie bei jedem Löschvorgang um Bestätigung bittet. Mit dieser Befehlsvariante lässt sich der dargestellte Fehler vermeiden:

pi@raspberrypi ~ $ rm ‐vi old index.html
rm : Entfernen von 'old' nicht möglich:
Datei oder Verzeichnis nicht gefunden
rm : reguläre Datei 'index.html' entfernen?

Bloß nicht! Bei der jeweiligen Nachfrage geben Sie J zur Bestätigung oder N ein, wenn Sie die Datei behalten wollen und mit der nächsten Datei (sofern vorhanden) fortgefahren werden soll.

Tipp Die Gefahr, versehentlich die falschen Dateien zu löschen, ist einer der Gründe, warum Sie besser keine Leerzeichen in Dateinamen verwenden sollten. Der Vollständigkeit halber sei noch erwähnt, dass Sie Dateien mit Leerzeichen im Dateinamen korrekt löschen, indem Sie diese in einfache oder doppelte Hochkommas setzen:

pi@raspberrypi ~ $ rm –vi 'old index.html'

Mit Platzhaltern mehrere Dateien erfassen

Häufig enthalten Verzeichnisse eine Menge Dateien mit ähnlichen Dateinamen. Eine Digitalkamera könnte beispielsweise die folgenden Namen erzeugen:

img_8474.jpg
img_8475.jpg
img_8476.jpg
img_8477.jpg
img_8478.jpg

Wenn Sie eine Gruppe Dateien löschen, kopieren oder verschieben wollen, um sie anderweitig zu nutzen, werden Sie den Befehl nicht gerade jeweils neu eingeben und die Dateinamen einzeln eintippen wollen. Computer eignen sich besonders gut für wiederholt auszuführende Aufgaben, weshalb man besser sie das Maultier spielen lassen sollte.

Platzhalter (Wildcards ) ermöglichen Ihnen genau das. Anstatt einem Befehl bestimmte Dateinamen zu übergeben, geben Sie ein Muster an, dem die Dateinamen entsprechen müssen. Das können beispielsweise alle mit img beginnenden oder alle mit der Namenerweiterung .jpg endenden Dateien sein. Das Sternchen ersetzt als Platzhalter beliebig viele Zeichen. Unabhängig von der Länge der Dateinamen und der Anzahl der Dateien steht *.jpg also für alle Dateinamen, die mit .jpg enden. Das Fragezeichen ersetzt jeweils nur ein Zeichen. img?.jpg würde daher zwar img1.jpg, img2.jpg und imgb.jpg erfassen, aber img11.jpg und alle längeren Dateinamen übergehen.

Wenn Sie mit einem bestimmten Buchstaben beginnende Dateien erfassen wollen, verwenden Sie die eckigen Klammern als Platzhalter. Um alle Dateien zu erfassen, die mit den Buchstaben a, b oder c beginnen, verwenden Sie [abc]* als Platzhalter. Um die Auswahl nur auf Dateien mit der Erweiterung .jpg zu beschränken, benutzen Sie [abc]*.jpg.

Tabelle 5.3 enthält eine Kurzreferenz nebst Beispielen für die verwendbaren Platzhalter.

Platzhalter

Bedeutung

Beispiel

Wirkung

?

Beliebiges einzelnes Zeichen

photo?.jpg

Beliebige Dateien, die mit photo beginnen und deren Name genau ein weiteres Zeichen danach und vor der .jpg‐Erweiterung enthält. Zum Beispiel photo1.jpg oder photox.jpg, aber nicht photo10.jpg.

*

Beliebige Anzahl Zeichen (inklusive keines Zeichens)

*photo*

Beliebige Dateien mit dem Wort photo im Dateinamen

[…]

Übereinstimmung mit einem der Zeichen in Klammern

[abc]*

Alle mit einem der Buchstaben a, b oder c beginnenden Dateien

[^…]

Übereinstimmung mit einem Zeichen, das sich nicht zwischen den Klammern befindet

[^abc]*

Alle nicht mit einem der Buchstaben a, b oder c beginnenden Dateien

[a‐z]

Übereinstimmung mit einem der Zeichen aus dem angegebenen Bereich

[a‐c]*.jpg

Beliebige Dateien, die mit einem der Buchstaben a, b oder c beginnen und mit der Erweiterung .jpg enden

[0‐9]

Übereinstimmung mit einem der Zeichen aus dem angegebenen Bereich

photo[2‐5].jpg

Entspricht photo2.jpg, photo3.jpg, photo4.jpg und photo5.jpg

Tabelle 5.3: Raspbian‐Platzhalter (Wildcards)

Sie können Wildcards überall da verwenden, wo Sie üblicherweise einen Dateinamen verwenden würden. Sie können beispielsweise all Ihre mit der Zeichenfolge img beginnenden Dateien löschen:

rm –vi img*

Um alle Dateien mit der Dateinamenerweiterung .txt zu löschen, verwenden Sie:

rm –vi *.txt

Warnung Passen Sie bei der Benutzung von Platzhaltern besonders auf, wo Sie Leerzeichen setzen. Stellen Sie sich vor, Sie würden ein nettes Leerzeichen im letzten Beispiel verwenden:

rm –vi * .txt

Oh je! Die Shell glaubt, Sie wollten * und damit via Platzhalter für alle Dateien und dann eine (versteckte) Datei mit dem Namen .txt löschen. Glücklicherweise haben Sie die Option ‐i verwendet, die dafür sorgt, dass vor dem Löschen jeweils eine Rückfrage angezeigt wird. Benutzer lassen diese Sicherheitsoption beim Löschen vieler Dateien aber oft weg, weil es ansonsten zu lange dauern würde, die einzelnen Löschvorgänge zu bestätigen, was fast so mühsam ist wie die Nichtverwendung von Platzhaltern.

Tipp Wenn Sie prüfen wollen, ob Dateien einem Platzhalter entsprechen, können Sie den Befehl file voranstellen, bevor Sie den eigentlichen Löschbefehl absetzen:

file *.txt | less

Passen Sie auf, dass Sie keine Leerzeichen zwischen dem Test mit file und dem eigentlichen Löschen mit rm einfügen!

Warnung Bei der Benutzung von Platzhaltern in Verbindung mit versteckten Dateien sollten Sie ebenfalls besonders vorsichtig sein. Versteckte Dateien beginnen mit einem Punkt. Sie könnten also meinen, dass .* alle versteckten Dateien umfasst. Das stimmt zwar, es umfasst aber auch das aktuelle Verzeichnis (.) und dessen Elternordner (..), womit .* alles im aktuellen Verzeichnis und dem übergeordneten Ordner umfasst.

Ordner entfernen

Es gibt zwei Befehle, mit denen Sie Verzeichnisse entfernen können. rmdir ist der sicherere der beiden, weil er keine Ordner entfernt, in denen sich noch Dateien oder Verzeichnisse befinden. Benutzen Sie ihn zusammen mit dem Namen des Ordners, den Sie löschen wollen, wie zum Beispiel books:

rmdir books

Wenn Sie einen kompletten Ast Ihres Verzeichnisbaums löschen wollen, können Sie den Befehl rm dazu benutzen, um ein Verzeichnis nebst seinem gesamten Inhalt und seiner Unterverzeichnisse zu löschen. In Verbindung mit der rekursiven Option (‐R) arbeitet sich der Befehl durch den Verzeichnisbaum und löscht mit der Option –f (  force) rücksichtslos alle Dateien, die sich ihm in den Weg stellen. Dieser Befehl ähnelt einem tobenden Biest. Hier ein Beispiel:

rm –Rf books

Diese Befehlsvariante arbeitet still und schnell und löscht das Verzeichnis books nebst seinem gesamten Inhalt.

Sie können die interaktive Option (‐i) hinzufügen, um die Risiken zu verringern. Wie Sie Abbildung 5.5 entnehmen können, werden Sie dann bei jedem Löschvorgang um Bestätigung gebeten.

images

Abbildung 5.5: Der Dialog beim Befehl –Rfi

Warnung Sie können auch beim Entfernen von Ordnern Platzhalter verwenden, sollten dabei aber besonders aufpassen und dafür sorgen, dass Sie keine unerwünschten Leerzeichen verwenden, um nicht versehentlich * (alles) zu löschen. Wenn Sie rm –Rf .* verwenden, um versteckte Verzeichnisse zu entfernen, erfassen Sie damit auch den aktuellen Ordner (.) und den Elternordner (..). Damit löschen Sie alle Dateien im aktuellen Verzeichnis (versteckt oder nicht), alle Unterverzeichnisse und deren Inhalte (versteckt oder nicht) und alles im Elternordner inklusive seiner Unterverzeichnisse (wieder egal, ob versteckt oder nicht).

Warnung Ich selbst habe erfahren dürfen, dass die Linux‐Gemeinde freundlich und hilfsbereit ist, Neulinge begrüßt und zum Mitmachen einlädt. Gelegentlich könnten Sie aber auch so einem Online‐Witzbold begegnen, der unerfahrenen Benutzern empfiehlt, den Befehl rm ‐Rf /* als root abzusetzen, mit dem ausgehend vom Stammverzeichnis alle Dateien und Ordner gelöscht werden.

Dateien kopieren und umbenennen

Eine der fundamentalen Aufgabenstellungen im Zusammenhang mit Dateien ist das Kopieren. Deshalb werden wir uns jetzt auch damit befassen. Dazu werden Sie den Befehl cp mit diesem Format verwenden:

cp [optionen] copy_von copy_nach

Ersetzen Sie copy_von durch die zu kopierende Datei und copy_nach durch das Ziel der Kopieraktion.

Wenn Sie beispielsweise die Datei config.txt vom Ordner /boot in Ihren persönlichen Ordner(~) kopieren wollen, um sie gefahrlos unter die Lupe zu nehmen, verwenden Sie:

cp /boot/config.txt ~

Wenn Sie eine Datei in das aktuelle Arbeitsverzeichnis kopieren wollen, verwenden Sie:

cp /boot/config.txt .

Sie können auch einen Pfad zu einem bereits existierenden Ordner angeben und die Datei dorthin übertragen:

cp /boot/config.txt ~/files/

Die ursprüngliche Datei und die Kopien müssen nicht denselben Namen haben. Wenn Sie einen anderen Dateinamen angeben, wird er für die Kopie verwendet. Ein Beispiel:

cp /boot/config.txt ~/oldconfig.txt

Damit kopieren Sie die Datei config.txt vom Ordner /boot in Ihren persönlichen Ordner und benennen sie in oldconfig.txt um. Mit demselben Verfahren können Sie auch Sicherheitskopien von Dateien erstellen, an denen Sie gerade arbeiten, um später wieder zu einer älteren Fassung zurückzukehren. Da die Pfade optional sind, könnten Sie von Ihrem persönlichen Ordner aus wie folgt eine Sicherheitskopie der Datei zeitplan.txt erstellen:

cp zeitplan.txt zeitplan.bak

Zusammen mit cp können Sie verschiedene Optionen verwenden, die Ihnen teilweise bereits vom Befehl rm her vertraut sein dürften. cp überschreibt alle möglicherweise bereits vorhandenen Dateien ohne Rückfrage, weshalb Sie besser die Option ‐i verwenden sollten, bei der erst einmal nachgefragt wird, ob bestehende Dateien mit den neuen Kopien überschrieben werden sollen. Die Option ‐v informiert Sie darüber, was der Befehl gemacht hat (wie bei rm).

Sie können Platzhalter verwenden, um schnell all Ihre Dateien oder alle einem bestimmten Namensmuster entsprechenden Dateien zu kopieren. Wenn Sie auch Unterverzeichnisse kopieren wollen, müssen Sie die rekursive Option (‐R) verwenden:

cp ‐R ~/Documents/* ~/homebak

Dieser Befehl kopiert alles aus Ihrem Ordner Documents (und dessen Unterverzeichnissen) in einen Ordner namens homebak in Ihrem persönlichen Ordner. Der Ordner homebak muss vorhanden sein, bevor Sie den Befehl fehlerfrei ausführen können. Hinweise zur Benutzung der Shell, um Dateien auf externe Speichergeräte zu kopieren, finden Sie in Anhang A.

Wenn Sie keine Kopie einer Datei erstellen wollen, sondern diese stattdessen an einen anderen Platz verschieben wollen, verwenden Sie mv . Wenn Sie eines Ihrer Bilder in einem falschen Ordner abgelegt haben und es vom Verzeichnis australien nach japan (beide in Ihrem persönlichen Ordner) verschieben wollen, würden Sie diesen Befehl verwenden:

mv ~/australien/reiseroute.txt ~/japan

Das funktioniert, sofern der angegebene Zielordner auch existiert. Ansonsten geht der Befehl davon aus, dass Sie die Datei umbenennen und ihr den neuen Dateinamen japan geben wollen. Dann wird aus reiseroute.txt im Ordner australien eine Datei namens japan im persönlichen Ordner. Wenn Sie sich dabei versehentlich vertun, kann das zwar ganz schön irritieren, mit dieser Macke benennen Sie aber Dateien unter Linux um. Sie verschieben sie (üblicherweise im selben Ordner) vom alten Namen zum neuen Namen:

mv altername neuername

Tipp Beim Befehl mv gibt es keine rekursive Option, weil er keinen Unterschied zwischen Dateien und Verzeichnissen macht.

Software auf Ihrem Pi installieren und verwalten

Zu den verschiedenen Linux‐Distributionen sind Tausende Pakete erhältlich, bei denen es sich um vorbereitete Softwareprogramme handelt, die nur darauf warten, aus dem Internet heruntergeladen und auf Ihrem Computer installiert zu werden. Es gibt auch eine menügesteuerte Variante mit grafischer Benutzeroberfläche, über die Sie beim Raspberry Pi Software installieren können, die in Kapitel 4 beschrieben wird. Es dürfte aber durchaus hilfreich sein, wenn Sie wissen, was sich dabei im Hintergrund abspielt, und davon erhalten Sie bei Verwendung der Kommandozeile einen recht guten Eindruck.

Einige Pakete benötigen andere Pakete, um ordnungsgemäß zu arbeiten. Glücklicherweise löst ein Programm, das Paketmanager genannt wird, all diese Abhängigkeiten auf und kümmert sich um das Herunterladen und die Installation der gewünschten Software nebst aller darüber hinaus benötigten Pakete. Beim Raspberry Pi wird der Paketmanager apt genannt. apt steht abkürzend für Advanced Package Tool und ist das Paketverwaltungssystem von Debian.

Um Software zu installieren , benötigen Sie die Rechte des Benutzers root (des Superusers ) des Rechners. Beim Raspberry Pi ist kein root‐Konto aktiviert, was heute bei etlichen anderen Linux‐Distributionen auch der Fall ist. Eine alte Weisheit besagt, dass ein root‐Konto immer ein gewisses Sicherheitsrisiko bildet. Oft wird dieses Konto dann immer genutzt, weil es einem einfach zu mühselig ist, sich bei Bedarf immer anmelden und abmelden zu müssen. Damit wird aber das gesamte System nebst den gespeicherten Daten angreifbar, was auch für bösartige Software gilt, die eingeschleust werden könnte. Anstatt ein root‐Konto zu verwenden, setzen Sie beim Pi besser das Wort sudo vor den jeweiligen Befehl, wenn dieser nur mit den Rechten des Benutzers root ausgeführt werden kann. Sie können es zwar nicht vor allen Befehlen verwenden, bei der Installation von Software müssen Sie es allerdings voranstellen.

Tipp Wenn Sie Fehlermeldungen erhalten, dass Befehle nur mit root‐Rechten ausgeführt werden können, versuchen Sie, diese mit vorangestelltem sudo auszuführen.

Den Cache aktualisieren

Der erste Schritt bei der Installation von Software besteht in der Aktualisierung des Repositoriums (kurz: Repo ), bei dem es sich um eine Liste der dem Paketmanager bekannten Pakete handelt. Das erledigen Sie mit diesem Befehl:

sudo apt‐get update

Warnung Damit das funktioniert, benötigen Sie eine funktionierende Internet‐Verbindung. Zudem dürfte die Befehlsausführung ein wenig dauern. Vielleicht sollten Sie Ihren Raspberry Pi arbeiten lassen und sich zwischenzeitlich eine Tasse Tee machen.

Paketnamen ermitteln

Der apt‐Cache enthält einen Index aller verfügbaren Softwarepakete , den Sie nach der von Ihnen gewünschten Software durchsuchen können. Alle Spiele finden Sie beispielsweise mit:

sudo apt‐cache search game

Die ausgegebene Liste ist ewig lang. Verwenden Sie daher besser less :

sudo apt‐cache search game | less

Der Anfang der Bildschirmausgabe könnte etwa so aussehen:

c05f006

Abbildung 5.6: Ausgabe des Anwendungscache mit apt‐cache search game | less

Der Teil vor dem Bindestrich teilt Ihnen den Namen des Pakets mit, den Sie benötigen, um es zu installieren. Dieser weicht häufig vom Titel des Spiels oder dessen gängigem Namen ab. Es gibt beispielsweise eine Menge verschiedener Solitär‐Kartenspiele, von denen aber keines den Paketnamen solitaire hat. Um den Paketnamen eines Solitär‐Spiels herauszufinden, könnten Sie diesen Befehl verwenden:

sudo apt‐cache search solitaire

Diese Suche sollte etwa 20 Ergebnisse liefern, wobei sich oben in der Liste wahrscheinlich dieser Eintrag befindet:

ace‐of‐penguins ‐ penguin‐themed solitaire games

Software installieren

Wenn Sie den Namen des zu installierenden Pakets bereits kennen, können Sie es aus dem Internet herunterladen und zusammen mit anderen Paketen installieren , die zusätzlich benötigt werden, damit es reibungslos funktionieren kann (Abhängigkeiten ):

sudo apt‐get install ace‐of‐penguins

Beim letzten Argument handelt es sich um den Namen des Pakets, den wir über die Durchsuchung des Cache ermitteln konnten.

Warnung Beachten Sie, dass Sie zum Durchsuchen des Cache apt‐cache und beim Installieren von Software apt‐get verwenden müssen. Achten Sie also darauf, dass Sie den richtigen Befehl verwenden.

Software ausführen

Einige Programme lassen sich direkt über die Befehlszeile starten. Dazu müssen Sie einfach nur ihren Programmnamen eingeben, wie dies beispielsweise beim Spiel Penguins Puzzle (siehe Kapitel 17) möglich ist:

penguinspuzzle

Für die meisten Anwendungen wird jedoch der X Server benötigt, was praktisch bedeutet, dass sie nur aus der Desktop‐Umgebung heraus gestartet werden können. Nach der Installation finden Sie sie dann irgendwo im Programmmenü.

Ob Programme über die Befehlszeile oder die grafische Benutzeroberfläche gestartet werden müssen, ist vom jeweiligen Programm abhängig. Entsprechende Angaben sollten Sie in deren Begleitdokumentation finden.

Software aktualisieren

Der Paketmanager ist nicht nur für die Installation der Software zuständig. Damit können Sie auch die Software aktuell halten und die jüngsten Aktualisierungen und Sicherheitsverbesserungen installieren. Sie müssen nur einen einzigen Befehl eingeben, um alle Software auf Ihrem Raspberry Pi zu aktualisieren:

sudo apt‐get upgrade

Es empfiehlt sich, erst den Cache zu aktualisieren, damit apt die jüngsten Aktualisierungen Ihrer installierten Pakete auf Ihren Rechner überträgt. Sie können die beiden relevanten Befehle auch in einem kombinieren:

sudo apt‐get update && sudo apt‐get upgrade

Das && bewirkt, dass der zweite Befehl nur bei fehlerfreier Ausführung des ersten Kommandos ausgeführt wird. Wenn die Cache‐Aktualisierung fehlschlägt, wird also nicht versucht, die gesamte Software zu aktualisieren.

Warnung Aktualisierungen können bei Ihrem Raspberry Pi eine ganze Weile dauern.

Wenn Sie nur eine Anwendung aktualisieren wollen, benutzen Sie dazu denselben Befehl wie zur Installation. Wenn Sie Ace of Penguins bereits installiert haben, geben Sie dazu also beispielsweise diesen Befehl ein:

sudo apt‐get install ace‐of‐penguins

apt prüft daraufhin, ob irgendwelche Aktualisierungen für dieses Paket existieren, und installiert sie. Falls es keine gibt, wird Ihnen mitgeteilt, dass Sie bereits die aktuelle Version nutzen.

Software deinstallieren und Platz gewinnen

Der Paketmanager kann auch dazu benutzt werden, um Software von Ihrem Raspberry Pi zu entfernen :

sudo apt‐get remove ace‐of‐penguins

Dabei bleiben Spuren der Anwendung zurück, zu denen Benutzerdateien und verschiedene Dateien mit Benutzereinstellungen gehören. Wenn Sie sicher wissen, dass Sie diese Angaben nicht mehr benötigen, können Sie Anwendungen auch komplett entfernen und all deren Daten löschen lassen :

sudo apt‐get purge ace‐of‐penguins

Sie können zwei weitere Maßnahmen ergreifen, um ein wenig Speicherplatz auf Ihrer SD‐Karte freizugeben und Ihr System aufzuräumen. Erst einmal können Sie nicht mehr benötigte Pakete automatisch entfernen lassen. Zusammen mit dem installierten Paket werden üblicherweise weitere benötigte Pakete installiert. Derartige Pakete können nach der Deinstallation des Originalprogramms auf der SD‐Karte zurückbleiben. Deshalb gibt es einen Befehl, um die nicht länger benötigten Pakete automatisch zu entfernen:

sudo apt‐get autoremove

Dieser Befehl gibt eine Liste der Pakete aus, die entfernt werden, und teilt Ihnen mit, wie viel Platz freigegeben wird, bevor es Sie zur Eingabe einer Bestätigung auffordert und fortfährt.

Wenn Sie ein Paket installieren, laden Sie zunächst dessen Installationsdatei auf Ihren Pi herunter. Nach der Paketinstallation verbleibt die Installationsdatei im Ordner /var/cache/apt/archives. Mit der Zeit werden Sie immer mehr Pakete installieren, deren Dateien eine ganze Menge Platz auf Ihren SD‐Karten belegen. Werfen Sie doch einfach einmal einen Blick in diesen Ordner und sehen Sie sich an, was sich hier angesammelt hat. Die Dateien selbst bringen Ihnen nicht viel. Wenn Sie Programme erneut installieren wollen, können Sie die Installationsdatei schließlich immer noch erneut aus dem Internet herunterladen.

Um Platz auf Ihrer SD‐Karte zu schaffen, können Sie daher diesen Befehl eingeben:

sudo apt‐get clean

Und was ist auf meinem Raspberry Pi bereits installiert?

Wenn Sie wissen wollen, welche Software bereits auf Ihrem Pi installiert ist, verwenden Sie diesen Befehl, den Sie nicht mit sudo ausführen müssen :

dpkg ‐‐list

Wenn Sie feststellen wollen, ob ein bestimmtes Paket installiert ist, verwenden Sie diese Befehlsvariante:

dpkg ‐‐status packagename

Bei bereits installierten Anwendungen werden dabei auch längere Beschreibungen als bei apt‐cache ausgegeben, die auch einen Weblink zu weitergehender Dokumentation enthalten können.

Warnung Der Raspberry Pi nutzt viele Pakete des Linux‐Betriebssystems (Debian), die für dessen Betrieb benötigt werden. Wenn Sie Pakete nicht definitiv selbst installiert haben, sollten Sie Vorsicht walten lassen, bevor Sie sie deinstallieren.

Benutzerkontenverwaltung

Wenn mehrere Familienmitglieder einen Raspberry Pi gemeinsam nutzen, sollten Sie besser Konten für die verschiedenen Benutzer erstellen, damit alle ihren eigenen persönlichen Ordner erhalten. Die zuverlässigen Linux‐Berechtigungen tragen dann dazu bei, dass niemand versehentlich Dateien der anderen Benutzer löschen kann.

Bei der Betrachtung des ls‐Langformats haben wir Berechtigungen bereits vorgestellt. Vielleicht erinnern Sie sich ja noch daran, dass Benutzer Mitglied verschiedener Gruppen sein können. Bei Verwendung von Raspbian steuern Gruppen den Zugriff auf Ressourcen, wie beispielsweise die Audio‐ und Videohardware. Bevor Sie ein neues Benutzerkonto erstellen, müssen Sie daher verstehen, warum Benutzer Mitglied bestimmter Gruppen sein sollten oder sein müssen. Um das herauszufinden, können Sie den Befehl groups verwenden. Der Standardbenutzer pi ist beispielsweise Mitglied der folgenden Gruppen:

pi@raspberrypi ~ $ groups pi
pi : pi adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c spi

Wenn man einmal von der Gruppe pi (der Gruppe des Benutzers pi) absieht, dürften neu angelegte Benutzer Mitglied der meisten dieser Gruppen werden sollen.

Warnung Wenn Sie einen Benutzer zum Mitglied der Gruppe sudo machen, kann er aber Software installieren, Kennwörter ändern und kann (zumindest theoretisch) so ziemlich alle möglichen Manipulationen am Rechner vornehmen. In den eigenen vier Wänden sollte das auch keine allzu große Rolle spielen. Solange der Befehl sudo nicht benutzt wird, verhindert das Berechtigungssystem weiterhin, dass Benutzer versehentlich Daten löschen.

Um einen Benutzer hinzuzufügen, verwenden Sie den Befehl useradd mit den Optionen ‐m und ‐G. ‐m erstellt den privaten Ordner und bei Verwendung von ‐G können Sie die Gruppen angeben, deren Mitglied der Benutzer sein soll:

sudo useradd –m –G [liste der gruppen] [benutzername]

Beispielsweise:

sudo useradd ‐m ‐G
adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,netdev,input,spi,gpio karen

Warnung Achten Sie darauf, dass Sie in der Liste der Gruppen Kommas als Trennzeichen verwenden und keinerlei zusätzlichen Leerzeichen darin enthalten sind.

Sie können sich noch kurz davon überzeugen, dass im Verzeichnis /home neben dem bereits vorhandenen Ordner des Benutzers pi ein neuer persönlicher Ordner mit dem Namen des neuen Benutzers angelegt wurde:

ls /home

Sie müssen auch ein Kennwort für das Konto festlegen:

sudo passwd [benutzername]

Also beispielsweise:

sudo passwd karen

Bei der Eingabe von Kennwörtern müssen Sie deren Schreibweise genau einhalten. Um Tippfehler auszuschließen, müssen Sie das Kennwort doppelt eingeben. Mit diesem Befehl können Sie die Kennwörter beliebiger Benutzer ändern.

Sie können prüfen, ob die Eingaben funktioniert haben, indem Sie sich abmelden und unter dem Namen des neu angelegten Benutzers anmelden. Dazu müssen Sie Ihren Pi nicht neu starten, sondern sich nur abmelden (ausloggen ). Wählen Sie dazu im Anwendungsmenü die Option SHUTDOWN und dann ABMELDEN . Das vorgegebene Kennwort für das Konto pi lautet raspberry.

Warnung Wenn Sie mit dem Befehl passwd ein Kennwort für den Benutzernamen root erstellen, können Sie sich anschließend als Superuser root anmelden, der mit allen Berechtigungen ausgestattet ist. Damit könnten Sie es zwar in letzter Instanz vielleicht noch schaffen, bestimmte Software (wieder) zur Arbeit zu bewegen. Wir raten Ihnen aber dringend von dieser Möglichkeit ab. Es ist sicherer, wenn Sie das Superuser‐Jäckchen nur bei Bedarf mit dem sudo‐Befehl anziehen.

Tipp Vergessen Sie nicht, wie preiswert SD‐Karten sind. Wenn mehrere Familienmitglieder den Raspberry Pi abwechselnd benutzen sollen, können Sie jedem eine eigene SD‐Karte spendieren.

Mehr über Linux‐Befehle herausfinden

Im Internet stehen zwar Unmengen an Informationen über Linux bereit, aber ein Großteil der Dokumentation verbirgt sich auch im Betriebssystem selbst. Wenn Sie die Möglichkeiten von Linux eingehender erforschen wollen, kann diese Dokumentation Ihnen den richtigen Weg weisen, auch wenn sie teilweise in recht technischem Englisch gehalten ist.

Linux‐Befehle können in einigen unterschiedlichen Formen vorliegen. Sie können direkt in die Shell selbst integriert sein, es kann sich um eigenständige Programme im Ordner /bin handeln oder es kann sich um ein Alias handeln. (Diese werden im nächsten Abschnitt eingehender erläutert.) Wenn Sie die Dokumentation für einen Befehl einsehen wollen, müssen Sie erst einmal ermitteln, um welche Art von Befehl es sich handelt. Dazu können Sie den Befehl type benutzen:

pi@raspberrypi ~ $ type cd
cd is a shell builtin
pi@raspberrypi ~ $ type mkdir
mkdir is /bin/mkdir
pi@raspberrypi ~ $ type ls
ls is aliased to 'ls ‐‐color=auto'

Wenn Sie wissen wollen, wo ein bestimmtes Programm installiert ist, verwenden Sie den which ‐Befehl zusammen mit dem Namen des Programms:

which mkdir

Für die Dokumentation der internen Befehle der Shell können Sie deren help ‐Befehl benutzen. Geben Sie dazu einfach help und anschließend den Namen des Befehls an, zu dem Sie weitere Informationen suchen:

help cd

Tipp In der Dokumentation des help‐Befehls werden eckige Klammern für verschiedene Optionen (die Sie weglassen können) und das Pipe‐Zeichen (|) zwischen einander ausschließenden Elementen (beispielsweise mit gegenteiliger Bedeutung) verwendet.

Bei Befehlen, zu denen wie beispielsweise bei mkdir Dateien existieren, können Sie versuchen, den Befehl selbst mit dem zusätzlichen Parameter ‐‐help einzugeben. Viele Programme akzeptieren diesen und zeigen bei seiner Verwendung Hilfeinformationen an. Ein Beispiel:

mkdir ‐‐help

Zu den meisten Programmen existieren auch ausführlichere Handbuchseiten (Manuals oder man‐Pages ). Das gilt auch für Linux‐Befehle mit eigenen Dateien und einige Anwendungen wie LibreOffice (siehe Kapitel 6). Um sich das Manual zu einem Programm anzeigen zu lassen, verwenden Sie:

man program_name

Beispielsweise:

man ls

Das Handbuch wird unter Verwendung von less angezeigt. Sie können also die Ihnen bereits vertrauten Steuerbefehle benutzen, um darin zu blättern. Die man‐Pages können recht technisch werden, weshalb sie für Neulinge schwieriger verständlich als die help‐Seiten sein dürften.

Wenn Sie nicht wissen, welchen Befehl Sie benutzen müssen, können Sie die Handbücher mit dem Befehl apropos durchsuchen:

c05f007

Abbildung 5.7: Die Ausgabe des Befehls apropos delete

Sie können dann all diese Programme weiter erforschen und ihre man‐Pages lesen oder ausprobieren, ob sie ‐‐help als Befehlsparameter akzeptieren. Die Zahlenangabe in Klammern teilt Ihnen mit, welcher Abschnitt der man‐Page das von Ihnen gesuchte Wort enthält. Leider liegen viele der entsprechenden Texte nur in Englisch vor.

Um sich eine einzeilige, zusammenfassende Beschreibung aus den man‐Pages eines Programms anzeigen zu lassen, verwenden Sie whatis :

pi@raspberrypi ~ $ whatis ls
ls (1) ‐ list directory contents

Erinnerung Der hier angezeigte einzeilige Text stammt aus den englischsprachigen man‐Pages.

Wenn Sie kein Fan der man‐Pages sind, gibt es mit den info ‐Seiten eine Alternative. Die info‐Seiten sind ähnlich wie Webseiten aufgebaut, wobei ein Verzeichnis der Seiten am Anfang steht und die verschiedenen Seiten miteinander verlinkt sind. info rufen Sie für das Kommando ls so auf:

info ls

Die Steuertasten, mit deren Hilfe Sie sich durch info‐Dokumente bewegen können, unterscheiden sich ein wenig von denen bei man‐Pages. Um sich eine Liste der Tastenbefehle anzeigen zu lassen, betätigen Sie die Tastenkombination keycaps+keycaps, während die info‐Seite angezeigt wird.

Die Shell mit eigenen Linux‐Befehlen anpassen

Wenn Sie Raspberry Pi Ihre Identität aufzwingen wollen, können Sie auch eigene Linux‐Befehle erstellen. Es kann beispielsweise recht spaßig werden, wenn Sie einen Befehl erfinden, der eine spezielle Mitteilung anzeigt, wenn irgendwer Ihren Namen eingibt (dazu können Sie den echo ‐Befehl verwenden). Es ist aber generell nützlich, wenn Sie einprägsamere Befehle definieren, um sich nicht alle verschiedenen Optionen merken zu müssen, die Sie möglicherweise verwenden. Als Beispiel werden wir Ihnen zeigen, wie Sie einen Befehl erstellen, der die einzelnen Dateien erst nach Beantwortung der jeweiligen Bestätigungsmeldungen löscht und meldet, was gelöscht wurde. Wir haben diesen Befehl hier pidel genannt und dabei Pi und delete (löschen) miteinander kombiniert.

Im ersten Schritt wird geprüft, ob der gewünschte Befehlsname bereits benutzt wird. Wenn der type‐Befehl etwas anderes als nicht gefunden meldet, müssen Sie sich einen anderen Namen für Ihren Befehl überlegen oder riskieren, einen vorhandenen Befehl zu beseitigen. Die Prüfung sieht so aus:

pi@raspberrypi ~ $ type pidel
bash: type: pidel: Nicht gefunden

Da Sie nun wissen, dass der Befehl pidel bisher noch nicht existiert, können Sie Ihren Befehl erstellen. Definieren Sie dazu zunächst Ihr eigenes Alias :

alias pidel='rm –vi'

Zwischen den Anführungszeichen fügen Sie den Linux‐Befehl ein, der bei der Eingabe des Befehls pidel ausgeführt werden soll. Wie Sie dieser alias‐Anweisung entnehmen können, verhält sich der Befehl pidel bei seinem Aufruf wie rm ‐vi. Sie müssen sich nun aber keine Buchstaben für die verwendeten Optionen mehr merken. Das könnte beispielsweise so aussehen:

pi@raspberrypi ~ $ pidel *.txt
rm: reguläre Datei 'fm.txt' entfernen? j
'fm.txt' entfernt
rm: reguläre Datei 'toc.txt' entfernen? n
pi@raspberrypi ~ $

Sie können auch mehrere Befehle in einer Liste miteinander kombinieren, wenn Sie sie in der alias‐Definition jeweils mit Semikolon trennen:

alias pidel='clear;echo Dieser Befehl entfernt Dateien mit den aktivierten Optionen v und i.;rm –vi'

Ihr Alias bleibt nur bis zum nächsten Neustart Ihres Computers erhalten. Sie können aber auch dafür sorgen, dass es dauerhaft gespeichert wird. Dazu müssen Sie die Alias‐Anweisung lediglich in die Datei .bashrc in Ihrem persönlichen Verzeichnis speichern. Nutzen Sie dazu diesen Befehl:

nano ~/.bashrc

Nano ist ein einfacher Texteditor, der in Anhang A ausführlicher beschrieben wird. Kurz ausgedrückt, können Sie mit ihm aber Ihre Dateien bearbeiten und sie mit der Tastenkombination keycaps+keycaps speichern. Mit keycaps+keycaps beenden Sie Nano.

Sie können Ihr Alias irgendwo in der Datei .bashrc definieren. Um zu verhindern, dass Sie versehentlich irgendwelche wichtigen Angaben in dieser Datei durcheinanderbringen, empfehlen wir Ihnen, Ihre Aliasse direkt am Dateianfang unterzubringen. Dabei müssen Sie für jedes Alias eine eigene Zeile verwenden.

Befehle, die Sie zu .bashrc hinzufügen, werden erst nach einem Neustart Ihres Raspberry Pi wirksam.

Tipp Zuweilen werden Sie einen existierenden Befehl durch ein Alias ersetzen wollen, um Ihre bevorzugten Optionen bei jeder Nutzung des Befehls direkt zu verwenden. Wenn Sie sich das beispielsweise bei ls ansehen, wird hier ein Alias dazu verwendet, um Dateien immer farblich zu klassifizieren.

Ihren Raspberry Pi herunterfahren und neu starten

Meist werden Sie Ihren Raspberry Pi über das Menü herunterfahren. Sie können Ihren Raspberry Pi allerdings auch über die Kommandozeile herunterfahren und sicher ausschalten, wenn Sie diesen Befehl verwenden:

sudo halt

Um Ihren Raspberry Pi wieder einzuschalten, trennen Sie ihn von der Stromversorgung und verbinden ihn anschließend wieder. Das lässt sich am besten dadurch erreichen, dass Sie eine Steckdose mit Schalter verwenden. Dann schalten Sie Ihren Raspberry Pi für ein paar Sekunden ab und versorgen ihn anschließend wieder mit Strom.

Wenn Sie Ihren Raspberry Pi nicht ausschalten, sondern lediglich neu starten wollen, erreichen Sie das, ohne die Stromversorgung unterbrechen zu müssen, mit diesem Befehl:

sudo reboot