Einführung in UNIX (Teil 2)




Vorder- und Hintergrundausführung

1.) Vordergrundausführung

Kommandos können nur nacheinander ausgeführt werden. Man kann nur neue Befehle eingeben, wenn der Eingabeprompt wieder auf den Bildschirm erscheint, d.h. ein Kommando kann nur ausgeführt werden, wenn das vorherige Kommando beendet wurde.

Beispiel:

> sleep 10
> who

Man muß 10 Sekunden warten, bis der Eingabeprompt wieder erscheint und man den Befehl who ausführen kann.

2.) Hintergrundausführung

Man kann mehrere Programme gleichzeitig laufen lassen, wenn man an das Ende des Befehls ein & anhängt:

> Befehl &

Beispiel:

> sleep 10 &
> who

Der Befehl sleep 10 wird nun im Hintergrund ausgeführt werden, so daß der Eingabeprompt direkt wieder auf den Bildschirm erscheint. Der Befehl who kann somit gleichzeitig mit dem Befehl sleep 10 ablaufen.

Hat man das & versehentlich vergessen, so läßt sich der Befehl mit der Tastenkombination Ctrl z stoppen und dann mit bg in den Hintergrund schieben.

Umlenken von Input und Output:

Standardmäßig werden Daten über die Tastatur ein - und am Bildschirm ausgegeben. Man kann aber auch die Ein - und Ausgabe eines Programms in eine Datei oder in ein anderes Programm umleiten.

1.)Eingabe von einer Datei holen

> Befehl < Datei

Beispiel::

> cat < p

Der Befehl cat liest den Inhalt von Datei p ein und gibt ihn auf den Bildschirm.

2.)Ausgabe in eine Datei umleiten

> Befehl > Datei

Beispiele::

> echo a b c > Buchstaben.txt

Die Buchstaben a b c werden nicht auf dem Bildschirm ausgegeben, sondern in die Datei Buchstaben.txt umgeleitet.

> man ls > Hilfe.txt

Der Inhalt des Befehls man ls wird in eine Datei Hilfe.txt umgeleitet. Falls die Datei Hilfe.txt noch nicht existiert, so wird sie erzeugt.
Achtung: Ein bereits vorhandener Dateiinhalt wird ohne Warnung überschrieben!!!
Will man noch etwas zur Datei Hilfe.txt hinzufügen, so benutzt man die Variante

> Befehl >> Datei

Beispiel::

> man cp >> Hilfe.txt

Der Inhalt des Befehls man cp wird der Datei Hilfe.txt hinzugefügt.

3.)Pipe - Mechanismus

Mit dem Pipe-Symbol | können UNIX-Befehle miteinander verknüpft werden.

> Befehl1 | Befehl2 | Befehl3 ...

Die Ausgabe von Befehl1 wird direkt als Eingabe von Befehl2 verwendet usw.

Beispiel::

> ls -l | more

Das ausführliche Inhaltsverzeichnis des aktuellen Verzeichnisses wird seitenweise angezeigt.

Anzeige von laufenden Prozessen

Jedes Programm, das auf einem UNIX-Rechner gestartet wird, bekommt eine Prozeßnummer (PID) zugeordnet, das mit dem Befehl ps angezeigt werden kann.

> ps auxww

Mit auxww werden alle eigenen auf dem Rechner laufenden Prozesse ausgegeben.
Alternative:

> top

ruft eine sich ständig aktualisierende Übersicht über alle auf dem Computer laufenden Prozesse auf.

Prozesse abbrechen

Man kann UNIX-Befehle und Programme mit der Tastenkombination Ctrl c abbrechen. (außer sie werden im Hintergrund ausgeführt).

Prozesse beenden

> kill [-Signal] Prozeßnummer

Die Prozeßnummer eines Programms erhält man über den Befehl ps oder top (s.o.).

Beispiel:

> kill -9 5342

Der Prozeß mit der Nummer 5342 wird sofort beendet.

Man verwendet das Signal -9 immer dann, wenn das Programm durch einen normalen kill-Befehl nicht beendet werden kann.
Es können nur die Prozesse abgeschossen werden, deren Eigentümer man ist!!!

Einfache Shellscripte

Shellvariable

> set Obst = "Apfel"

> echo $Obst

Der string Apfel wird der Shellvariablen Obst zugewiesen. Der Inhalt der Variablen Obst kann mit echo angezeigt werden, d.h. $Obst wird ersetzt durch seinen Wert Apfel.

Kommando read

Das Kommando read liest eine beliebige Zeichenfolge von der Tastatur ein. Diese wird einer Shellvariablen zugewiesen.

> read [variable...]

Schleife mit Schleifenzähler

for Variable [in Argumentenliste]
do
Kommandofolge
done

Beispiel:

for i in 1 2 3 4 5
do
echo "Dies ist der " $i ". Durchgang."
done

Kommando test

> test Ausdruck

Der Befehl test ist ein wichtiges Hilfsmittel, um Bedingungen auszuwerten. Er evaluiiert einen Ausdruck. Wenn dieser den Wert true liefert, so wird test beendet.

Mögliche Bedingungen, die mit test getestet werden kann, sind:

> test -f Datei

Testet ob die Datei vorhanden.

> test -r Datei

Testet ob die Datei vorhanden und lesbar ist.

> test -w Datei

Testet ob die Datei vorhanden und veränderbar ist.

> test -x Datei

Testet ob die Datei vorhanden und ausführbar ist.

> test -s Datei

Testet ob die Datei vorhanden und größer als 0 bytes ist.

Bedingte Anweisung

if Kommandofolge
then Kommandofolge
[elif Kommandofolge]
...
[else Kommandofolge]
fi

Beispiel:

> echo Hallo > Wort
> nedit &

if test -r Wort
then
echo "Datei ist lesbar"
else
echo "Datei ist nicht lesbar"
fi

Definition von Alias

Aliase sind shortcuts für UNIX - Kommandos.

> alias selbst_gewählter_Befehlsname auszuführender_Befehl

Beispiel:

> alias h history

Das Kommando history wird nun durch Eingabe von h ausgeführt.

Interressante Befehle

> touch Datei1 Datei2 ...

Erzeugt leere Dateien.

> who

Gibt eine Liste aller auf dem Rechner eingeloggten Benutzer aus.

> which Programm

Gibt den kompletten Pfad an, in dem das angegebene Programm steht.

> du Verzeichnis

Gibt an, wieviel Speicher ein Verzeichnis einnimmt. Die Ausgabe von du erfolgt in Blöcken von 512 bytes. Mit der Option -k werden 1024 Blöcke verwendet

> mc

Midnight commander (Norton Commander für UNIX)

FTP

FTP: File Transfer Protokoll

> ftp [ftp-Adresse]

Öffnet ftp (gegebenenfalls mit der angegebenen Adresse).

Der remote-PC mit der ftp-Adresse fragt nach login-Namen und Passwort (für den Account auf dem remote-PC) . Falls man auf diesem Computer keinen Account besitzt, so kann man sich in der Regel mit dem anonymous-Account, der auf fast jedem ftp-Server eingerichtet ist, einloggen:

login: anonymous
password: e-mail Adresse

Als Password gibt man seine eigene e-mail-Adresse an.

ftp-Befehle:

> pwd

Arbeitsverzeichnis auf dem remote-PC anzeigen (Pfad).

> cd

Wechselt das Verzeichnis auf dem remote-PC.

> lcd

Lokales (auf dem eigenen Rechner) Verzeichnis wechseln.

> dir  -  ls

Zeigt den Inhalt des Verzeichnisses vom remote-PC an.

> mkdir

Erstellt ein Verzeichnis auf dem remote-PC.

> bin

Für den Empfang von nicht ascii (nur Text) Daten (binary).

> ascii

Für den Empfang von reinen ascii (nur Text) Daten (kann man aber auch empfangen, wenn binary eingestellt ist).

> get Dateiname

Lädt die angegebene Datei auf den eigenen Computer.

> mget Dateinamen

Lädt die angegebene Dateien auf den eigenen Computer es dürfen auch Platzhalter wie * verwendet werden.

> put Dateiname

Kopiert die Datei auf den remote-PC (wenn man dort Schreibrechte hat).

> mput Dateinamen

Kopiert die angebenen Dateien auf den remote-PC – es können wieder Platzhalter verwendet werden.

> hash

Statusbalken für übertragene Bytes.

> prompt

Schaltet die Ja/Nein Abfrage bei m#### Befehlen an oder aus.

> bye

Beendet Sitzung und ftp-programm.

Sonstige Befehle:

> open [ftp-Adresse]

Öffnet die folgende Adresse (nur wenn man noch nicht eingeloggt ist).

> user

Unter anderem Namen anmelden.

> close

Beendet ftp-Sitzung (aber nicht ftp).

> mdir

Gibt die Inhaltsangabe mehrer Verzeichnisse in eine Datei aus

> type

Datenübertragungstyp festlegen.

> delete Dateiname

Löscht die Datei auf dem remote-PC.

> mdelete Dateinamen

Löscht die Dateien auf dem remote-PC.

> rename

Datei umbenennen.

> rmdir

Verzeichnis löschen (beide Befehle sind nur ausführbar, wen man Schreibrechte auf dem remote-PC besitzt).

> !

Zur Shell (Rückkehr mit exit).

> ?

Hilfe.

FTP- Suchmaschine:

Einfache Oberfläche:

http://ftpsearch.ntnu.no/ftpsearch/

Erweiterte Oberfläche:

http://ftpsearch.ntnu.no

WWW-Download-Programm

> snarf Internetadresse und Dateiname

Lädt Dateien sowohl von ftp- als auch www-Servern.

Download über Nacht

> nice   {Enter}
  nohup   {Enter}

nice setzt die angeforderte Rechenkapazität herab.
nohup verhindert, daß das Programm bei logout beendet  wird.

Rechner Fernsteuerung


> telnet Computer-Adresse

Öffnet telnet mit der angegebenen Adresse.

> rlogin Computer-Adresse

Einloggen auf einem Computer (mit der user-id des bisherigen Rechners, man muß also nur ein Password eingeben) !Achtung nicht auf jedem UNIX-Rechner vorhanden!

> rlogin Computer-Adresse -l andererusername

Wie oben, nur dass man sich als ein anderer User einloggt.

> slogin Computer-Adresse

Einloggen auf einem Computer (mit der user-id des bisherigen Rechners) !Achtung nicht auf jedem UNIX-Rechner vorhanden! (slogin ist übrigens wesentlich sicherer als telnet oder rlogin, da die Übertragung zum anderen Rechner verschlüsselt wird).

Umleiten von Bildschirmausgaben

> setenv DISPLAY cipw##:0.0

Leitet den Bildschirminhalt um, falls ihr auf dem angegebenen Rechner eine graphische Benutzteroberfläche laufen habt.


















Last update: 19.Dezember 2000
E-Mail: rcbruens@astro.uni-bonn.de