|
|
|
Die Shell präsentiert sich in der Defaulteinstellung ziemlich
unspektakulär
|
|
|
Die Shell wartet auf die Eingabe
|
|
|
|
|
|
|
|
Die Hauptaufgabe der Shell ist, andere Programme auszuführen.
~ $ ls
bin/ temp/ todo.txt
~ $ date
Wed Jul 21 23:59:33 CEST 2004
~ $
|
|
|
ganz einfach: Befehl eintippen, Return drücken
|
|
|
|
|
|
Zurück
|
Basics - Befehle beeinflussen: Argumente übergeben
|
Weiter
|
|
~ $ ls
bin/ temp/ todo.txt
~ $ ls -1
bin/
temp/
todo.txt
~ $
|
|
|
Argumente werden durch Leerzeichen getrennt
|
|
|
|
Zurück
|
Basics - Befehle beeinflussen: Argumente übergeben
|
Weiter
|
|
|
|
|
Das Verzeichnis, in dem man sich gerade befindet nennt man
Arbeitsverzeichnis (working directory). Es ist für relative Pfadangaben
wichtig. In ein anderes Verzeichnis wechselt man mit
cd <verzeichnis>.
Die Tilde ("~") ist die Abkürzung für das Homeverzeichnis.
~ $ cd bin
/home/settel/bin
~/bin $ cd /tmp
/tmp $
|
|
|
Der Prompt zeigt an, wo man sich befindet
|
|
|
|
|
|
|
- ">"
Ausgabe in Datei umleiten
|
|
- ">>"
Ausgabe an Datei anhängen
|
~ $ date >liste.txt
~ $ ls >>liste.txt
~ $
|
|
|
- "<"
Datei als Eingabe verwenden
|
~ $ <list.txt sort
bin/
liste.txt
temp/
todo.txt
~ $
|
|
|
|
|
|
|
|
|
|
Vordefinierte Filedeskriptoren:
- 0 = STDIN (Eingabe)
- 1 = STDOUT (Ausgabe)
- 2 = STDERR (Fehlermeldungen)
~ $ find /etc 2>/dev/null
|
|
|
Fehlermeldungen ignorieren
|
~ $ grep "aliases" .bashrc >/dev/null
|
|
|
Ausgabe ignorieren
|
~ $ find -name '*.png' >liste.txt 2>fehler.txt
|
|
|
Ausgabe und Fehler getrennt loggen
|
|
|
|
|
|
|
|
Sonderformen:
- &> datei -- STDOUT und STDERR gleichzeitig umleiten
- >&nr -- auf einen anderen Filedeskriptor umleiten
~ $ wget http://kalug.de/ &>wget.log
~ $ wget http://kalug.de/ >wget.log 2>&1
|
|
|
Alles in eine Datei loggen
|
~ $ ls *.txt blubber.tmp >/dev/null 2>&1
~ $ ls *.txt blubber.tmp 2>&1 >/dev/null
ls: blubber.tmp: No such file or directory
~ $
|
|
|
Die Reihenfolge ist wichtig
|
Anmerkung: 2>&1 lässt STDERR dahin zeigen, wo STDIN derzeit hinzeigt.
Die Deskriptoren bleiben dennoch unabhängig voneinander.
|
|
|
|
|
|
-
";"
nacheinander ausführen
|
~ $ ls ; date
bin/ temp/ todo.txt
Thu Jul 22 23:33:35 CEST 2004
~ $
|
|
|
-
"|" (Pipe)
Ausgabe weiterreichen
|
|
-
"&&"
Fortfahren, wenn erster Befehl erfolgreich
|
~ $ mkdir temp && cd temp
/home/settel/temp
~/temp $
|
|
|
-
"||"
Fortfahren, wenn erster Befehl fehlgeschlagen ist
|
~ $ test -d temp || mkdir temp
~ $
|
|
|
|
|
|
|
|
|
|
Klammern kombinieren mehrere Befehle
|
|
~ $ date; ls | wc -l | mail karl.ranseier@example.com
Sun Jul 25 22:19:41 CEST 2004
~ $
|
|
|
|
|
~ $ (date; ls | wc -l) | mail karl.ranseier@example.com
~ $
|
|
|
|
|
|
|
|
|
-
"&"
Befehl im Hintergrund ausführen
(auch zur Verkünpfung geeignet)
|
~ $ mozilla-firefox &
[1] 11176
~ $
|
|
|
-
^C
Laufendes Programm abbrechen
|
|
-
^Z
Laufendes Programm unterbrechen
|
~ $ sleep 60
^Z
[1]+ Stopped(SIGTSTP) sleep 60
~ $ fg
sleep 60
~ $
|
|
|
|
|
|
|
|
|
-
^Z
Programm in den Hintergrund schieben
|
~ $ updatedb
^Z
[1]+ Stopped(SIGTSTP) updatedb
~ $ bg
[1]+ updatedb &
~ $
|
|
|
-
jobs
Laufende Programme auflisten
|
~ $ jobs
[1]+ Running sleep 60 &
~ $
|
|
|
|
|
~ $ kill %1
[1]+ Terminated sleep 60
~ $
|
|
|
-
disown %1
Job aus der Jobliste entfernen,
Prozess läuft weiter
|
~ $ disown %1
~ $ jobs
~ $
|
|
|
|
|
|
|