| Timm Rose
Linux Shell – Mit der Bash arbeiten geht mit einem Schnelleinstieg auf die Befehle der Shell ein und erklärt sie im Anschluss ausführlicher.
Außerdem ist demnächst ein Cheat Sheet zu den wichtigsten VIM Befehlen und zu den Regulären Ausdrücken (RegularExpression – RegEx) enthalten, das dir die Arbeit mit der Linux Shell erleichtern soll.
$ echo $0
Welche Shell gerade verwendet wird, zeigt dir dieser Befehl
$ ls
Mit dem Befehl ls lässt du den Inhalt des aktuellen Verzeichnisses anzeigen
$ mkdir Documents/project
Erstellt ein Verzeichnis Namens project im Documents-Verzeichnis
$ touch Documents/project/date.js
Erstellt eine Datei Namens date.js unterhalb des eben angelegten Verzeichnisses project
$ vim Documents/project/date.js
Öffnetdie Datei date.js im VIM Editor
date =date +%Y-%m-%d
echo $date
Im Editor-Mode kannst du Code hinzufügen, z.B. das Datum als Bash-Skript
$ cat Documents/project/date.js
Cat zeigt dir den Inhalt der angegebenen Datei an
$ open Documents/project/date.js
Öffnet die ausgewählte Datei im Standard-Editor
$ grep date Documents/project/*
Sucht in allen Dateien (*) nach dem String date
$ find Documents/project/* -iname "at.*"
Mit find können u.A. Dateien gefunden werden. In diesem Beispiel wird in project/ nach dem String at gesucht, das in einem beliebigen Dateinamen mit beliebiger Dateiendung vorkommen kann
$ tail -10 /project/log
Der tail-Befehl zeigt in diesem Fall die letzten 10 Zeilen z.B. einer Log-Datei an.
Möchtest du Ein- und/oder Ausgabe verketten oder umleiten, ist die Funktion der Pipes sehr hilfreich.
Um zum Beispiel den Inhalt der Auflistung des Befehls ls in eine Datei zu schreiben, nutzt du
$ ls >inhalt.txt
Mit dem grep-Befehl
$ grep a <inhalt.txt
kann man die Datei wieder auslesen.
Die Linux Shell ist eigentlich die Bash, für Bourne-again shell. Es gibt noch andere Shells, die Bash ist aber die Standard-Shell auf Linux-Systemen und kann auf macOS und Windows Systemen nachinstalliert werden.
Sie dient als Kommandozeilentool und kann für verschiedene, teilweise in das System tiefgreifende, Operationen verwendet werden, für die keine grafischen Benutzeroberflächen gewünscht sind oder zur Verfügung stehen.
Die bereits im Schnelleinstieg gelisteten Bash-Befehle werden nun mit weiteren praxisrelevanten Beispielen erklärt. Eine sehr ausführliche Referenz-Übersicht findest du unter Shellbefehle.
Der Befehl echo gibt dir Textinhalt auf der Konsole aus. Folgende Beispiele werden häufig verwendet:
$ echo $USER
für den aktuell angemeldeten Benutzer (Groß-/Kleinschreibung beachten)
$ ls
Dieser Befehl listet dir die Verzeichnisse und Dateien auf
$ ls k*
Anzeige aller Dateien die mit einem „k“ beginnen
$ ls -lash
Eine ausführliche Auflistung mit Verzeichnis-/Datei-Attributen
$ mkdir project
Mit mkdir (für make directory) kannst du ein neues Verzeichnis anlegen
$ mkdir project-01 project-02
Du kannst mehrere anlegen, mit Leerzeichen getrennte Benamung
$ mkdir -p project-01/project-11
Hiermit legst du zudem Unterverzeichnisse an.
$ touch Documents/project/date.js
Zum Erstellen neuer Dateien verwendest du touch, hier im Beispiel die Datei date.js in genannten Unterverzeichnissen.
$ vim Documents/project/date.js
Vim ist der Editor der Linux Shell zum Editieren von Dateien, mit der Übersicht der wichtigsten Befehle und etwas Übung gut bedient werden kann.
a | Eingabemodus (rechts vom Cursor) |
ESC | Eingabemodus beenden |
dd | Zeile löschen |
yy | kopiert die ausgewählte Zeile |
U | Zeile wieder herstellen |
:q | schließt das Fenster |
:wq | speichert die Datei und schließt das Fenster |
:q! | schließt das Fenster ohne zu speichern |
/date | sucht nach einem Muster (vorwärts), in dem Fall nach date |
Ausführliche VIM-Referenz
$ cat Documents/project/date.js
Willst du dir den Inhalt der angelegten Datei ansehen, ist cat der perfekte Befehl
$ cat datei-01 datei-02 >project
Es lassen sich auch Textdateien zusammenfassen und in einer dritten Datei (project) ablegen
$ open Documents/project/date.js
Über den Befehl open öffnest du die angegebene Datei in deinem Standard-Editor.
$ grep date Documents/project/*
Eine der wichtigsten Tools das mit der Linux Shell genutzt werden kann ist grep (für general regular expression print), das in dem Fall nach dem String „date“ in allen Dateien des Verzeichnisses project sucht.
$ ls | grep ^p
In diesem Fall auch mit einer Pipe als Filter, zeigt dir der Befehl alle Dateien an, die mit p beginnen. Dazu wird ein einfaches Beispiel einer Suche nach einem RegExp-Muster verwendet.
reg | Text „reg“ |
[reg] | nur eines der Zeichen „reg“ |
[a-z] | ein Zeichen von „a-z“ |
[a-z0-9] | ein Zeichen von a-z oder eine Zahl von 0-9 |
[^reg] | keines der Zeichen „reg“ |
? | das davorstehende Zeichen oder keines |
. | beliebiges Zeichen |
{3} | das davorstehende Muster dreimal |
{2,4} | das davorstehende Muster mind. dreimal, max. viermal |
^[Uh] | zum Zeilenbeginn steht ein U oder ein h |
[0-9]$ | zum Zeilenende steht eine Ziffer von 0-9 |
$ find Documents/project/* -iname "at.*"
Möchtest du im Verzeichnis project alle Dateinamen () nach einem enthaltenen String at durchsuchen, nutzt du find wie oben gezeigt. Der * hinter at. sucht nach allen Dateiendungen.
$ tail -10 /project/log
Dieser Befehl der Linux Shell zeigt die letzten Zeilen einer Datei an. Recht praktisch, wenn in langen Log-Dateien nur die letzten Logs angezeigt werden sollen.
$ tail -f inhalt.txt
Ein sehr interessanter Befehl, der durch -f (follow) die aktuellen Bearbeitungen live aufzeichnet (nach dem Speichern).
© 2021 Digitale Rundschau | Impressum