19. September 2021

| Timm Rose

Linux Shell – Mit der Bash arbeiten

19. September 2021

| Timm Rose

Linux Shell – Mit der Bash arbeiten

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.

Schnelleinstieg

$ 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.

Was ist die Linux Shell?

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.

Linux Shell-Befehle ausführlich erklärt

echo

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

$ 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

$ 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

$ touch Documents/project/date.js

Zum Erstellen neuer Dateien verwendest du touch, hier im Beispiel die Datei date.js in genannten Unterverzeichnissen.

vim

$ 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.

Hier eine Übersicht der wichtigsten Befehle:

aEingabemodus (rechts vom Cursor)
ESCEingabemodus beenden
ddZeile löschen
yykopiert die ausgewählte Zeile
UZeile wieder herstellen
:qschließt das Fenster
:wqspeichert die Datei und schließt das Fenster
:q!schließt das Fenster ohne zu speichern
/datesucht nach einem Muster (vorwärts), in dem Fall nach date

Ausführliche VIM-Referenz

cat

$ 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

$ open Documents/project/date.js

Über den Befehl open öffnest du die angegebene Datei in deinem Standard-Editor.

grep

$ 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.

Hier ein paar wichtige RegExp-Muster:

regText „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

$ 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

$ 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).

Digitale Rundschau Logo

© 2021 Digitale Rundschau | Impressum