Die Kommandozeile ist dein Freund #3

21.05.2014 Bild

In der guten alten Zeit haben wir nur in der Kommandozeile herumgehackt (Hello C64, hello DOS...). Dann sind wir zu Affen verkommen und haben nur mehr Dinge mit der Maus herum geschoben. In dieser Serie werden wir einem Virtuosen der Kommandozeile über die Schulter blicken und dürfen uns dabei das eine oder andere Schmankerl abschauen.

 

Mit echo kann ein String ausgegeben werden. echo -n verhindert das anschliessende Newline.

echo Hallo
echo -n Dein Prompt:

Definierte Shellvariablen können dabei auch verwendet werden, immer $ davor, wie in

echo Ich bin $USER

Alle definierten Variablen auflisten geht mit set. Variablen zuweisen mit VAR=wert (keine Leerzeichen!).

REMEMBER=this
set
echo I still know $REMEMBER

 

Um mehrere Befehle zu kombinieren können ;&& und || verwendet werden. Dabei führt ; die Befehle nach einander aus, && den nächsten Befehl nur wenn der vorherige erfolgreich war, || nur wenn der vorherige nicht erfolgreich war. Z.B. gibt
MYDIR=/doestnotexist; cd $MYDIR || echo not found

"not found" aus, weil das Verzeichnis in der Shellvariable MYDIR nicht existiert.

ls . && echo fin

gibt das aktuelle Verzeichnis aus und danach "fin". Würde es das angegeben Verzeichnis aber nicht geben, würde echo nicht ausgeführt.

 

Alle Ausgaben können mit > in eine Datei umgeleitet werden, die Fehlerausgaben mit 2>. Dabei kann mit einer Umleitung nach /dev/null die Ausgabe unterdrück werden - z.B

ls /doesnotexis >/tmp/out 2>/dev/null || echo not found

würde direkt keinen Fehler mehr ausgeben, sondern nur über das anschliessende echo. Würde das Verzeichnis existieren, würde die Ausgabe aber in /tmp/out geschrieben. Wird >> statt > verwendet, wird an die Datei angehängt, anstatt sie zu überschreiben.

 

cat datei gibt den Inhalt einer Datei aus.

cat /etc/networks 

Mit < kann eine Datei als Eingabe für einen Befehl verwendet werden, wie in

cat < /etc/networks 

Mit | wird die Ausgabe von einem Befehl zur Eingabe vom nächsten, z.B. ls | cat (wobei es bessere Programme gibt um Ausgaben weiter zu verarbeiten).

ls | cat 

 

Mehr Befehle für deinen neuen Freund findest du hier:

Die Kommandozeile ist dein Freund #1

Die Kommandozeile ist dein Freund #2