logo
Artikel Diskussion (0)
bash
(it.linux)
    

Inhalt
             1. Beschreibung
             2. Prompt
             3. Integrierte Bash-Befehle
             4. Variablen
             5. Standardeingabe
             6. Standardausgabe umleiten

1. Beschreibung

2. Prompt

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:
<, >, <<, >>, <&, >|, <←, <>, >&

3. Integrierte Bash-Befehle

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.

  • cd
  • kill
  • fg
  • bg
  • ...

4. Variablen

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.

5. Standardeingabe

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.

6. Standardausgabe umleiten

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:
  • stdout
  • stderr

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:

Auf diesen Artikel verweisen: keine Verweise