Der Prompt mit blinkendem Cursor zeigt an, dass Bash für Eingaben bereit ist.
$ _
Über diesen kann man in Bash-intergrierte Befehle eingeben oder Programme aufrufen.
Die Eingabe erfolgt über die ein Terminal d.h. in letzter Konsequenz über eine Tastatur. Jeder Eingabe ist eine Zeichenfolee, die mit einem newline abgeschlossen wird. Dieser wird auf der Tastatur durch die Enter-Taste gesendet.
Bash zerlegt die Eingabe in sog. tokens - weshalb der Vorgang auch als Tokenization bezeichnet wird. Ein token wird von anderen getrennnt durch sog. Meta-Charakters:
‘ |, &, ;, (, ), <, >, leerzeichen, Tabulator or newline’.
Eine token das nicht von Anführungszeichen umschlossen ist, wird als word bezeichnet. Ein token ohne Anführungszeichen mit einem Meta-Charakter wird als operator bezeichnet. Bei den operatoren wird zwischen control und redirection operators unterschieden.
Control operatoren sind:
newline, |, ||, &, &&, ;, ;;, ;&, ;;&, |&, (, )
Redirection operatoren sind:
<, >, <<, >>, <&, >|, <←, <>, >&
Z.B. ist "cd" (für change directory, d.h. zum Wechsel des Verzeichnisses) ein in Bash integrierter Befehl. Ein Programm ist z.B. ls.
Bash arbeitet mit Variablen, diese können mit dem Opterator "=" zugewiesen werden - beim Abfragen der Variable mus ein $ vor den Namen gesetzt werden. Beim Zuweisen ist wichtig, dass kein Leerzeichen zwischen dem Namen dem Operator und dem Inhalt steht:
Richtig:
$ i="Hund Katze Maus"
$ echo $i
Hund Katze Maus
Falsch:
$ i = "Hund Katze Maus"
i: command not found
$ i= "Hund Katze Maus"
Hund Katze Maus: command not found
$ $i="Hund Katze Maus"
Ruft man nur die Variable mit $NAME ab wird der Inhalt als Eingabe eines Kommandos interpretiert.
i=ls -l
$i
Führt den Befehl ls -l aus. D.h. ist es möglic komplexe Befehle die man häuftig benötigt so abzukürzen.
Die Standardeingabe ist die console. Ruft man z.B. grep ohne Dateinamen auf:
$grep t.st
bekommt man einen blinkenden Cursor ohne Prompt,
Gibt man dann über die console Text ein und schließt diesen mit Return ab, prüft Grep diese Zeilen gegen das vorgegebene Muster (hier die Zeichenfolge t.st.) und wiederholt die Zeilen in denen es vorkommt und markiert das passende Wort rot.
Das ist ein Toast
und kein tost
und kein tost
Ähnlich reagiert das Programm cat dass eine Eingabe nimmt und über die Standardausgabe ausgibt.
$cat
Nimmt alle Eingaben bis zu einem Return und wiederholt sie dann.
Jedes bash-commando produziert Ausgaben. z.B. der Befehl
nutzer@mainframe01:~$ ls
Die Ausgabe:
Desktop Downloads error.log newfile.c Pictures snap test todo world.c
Documents erg grep ordner Public Templates testfile world
Dabei gibt es grundsätzlich zwei Kanäle:
Mit einer Pipe (Zeichen |) kann man grundsätzlich die Standardausgabe eines Kommandos zur Standardeingabe eines Programmes anderen machen:
ls | grep world
Dies Standardaugabe von ls wird als Standardeingabe von grep benutzt welches in dieser Eingabe dann nach der Zeichenfolge world sucht.
Bei netcat funktioniert da nur in der Kombinatin mit &. D.h:
ncat |& grep succeded
Werbung:
|