| UNIX
ist ein in Großrechnernetzen sehr verbreitetes und sicheres Betriebssystem
für Netzwerke. Daher basieren viele Internet-Server und FTP-Server
auf UNIX. Auch auf dem PC ist UNIX in Form des Betriebssystems LINUX inzwischen
relativ weit verbreitet, weil es eines der wenigen Alternativen zu einem
Microsoft-Betriebssystem darstellt. |
Übersicht:
A.
Allgemeines
B. Kommandos
C. Meta-/Jokerzeichen
D. Zugriffsrechte
E. Shell-Prozeduren
F. Datenübertragung von DOS-UNIX
| Wer sich
diese Einführung lieber offline ansehen möchte, kann sie sich
auch herunterladen. In der Zip-Datei ist je eine
Datei im Word-Format und im WordPerfect-Format enthalten. |
|
| A.
Allgemeines:
Kommandosprachen, Shells:
Es gibt 2 Typen von Kommandosprachen.
Das eine sind die zeilenorientierte Kommandosprachen wie z.B. die Bourne-Shell,
die
C-Shell (an C angelehnt)
und die Korn-Shell. Daneben gibt es grafisch-orientierte Kommandosprache
(Xwindow) wie z.B. HP-VUE (Visuel-User-Environment).
Passwörter:
Passwörter in UNIX
müssen aus mindestens 6 und höchstens 8 Zeichen bestehen. Darin
müssen mindest. 2 Buchstaben und eine Zahl enthalten sein. |
Eigenschaften:
Timesharing, Multi-User-System,
Multitasking
Hierarchisches File-System
Einheitliche Schnittstellen
Mächtige Kommandosprachen,
sog. Shells
Über 250 Dienstprogramme
Implementierung fast ausschließlich
in C
Umfangreiche Vernetzungsmöglichkeiten,
TCP/IP-Protokolle
UNIX kann vom PC bis zum Supercomputer
genutzt werden
UNIX ist auf dem Wege zur 8.
Standardisierung durch X-OPEN (Gremium von UNIX-Anwendern)
|
|
Dateisystem:
UNIX kennt drei verschiedene
Dateitypen:
-
Gewöhnliche Dateien (ordinary
files): Inhalt kann alles sein.
-
Gerätedateien (special
files): Inhalt sind Gerätetreiber.
Verzeichnisdateien/Verzeichnisse:
Verzeichnisstruktur.
Verzeichnisse sind notwendig,
weil Dateien nur in Abhängigkeit zu Verzeichnissen existieren können: |
 |
Das Heimatverzeichnis (Home-Directory)
wird mit dem Einloggen zum Arbeitsverzeichnis. Das UNIX-Dateisystem setzt
sich zusammen aus dem Benutzerdateisystem und den Betriebssystemdaten.
Das ROOT-Directory ist die höchste Ebene. Es wird als Slash ( / )
dargestellt.
-
dev: verwaltet alle Spezialdateien
-
lib: enthält Bibliotheksroutinen
-
bin: enthält Kommandos
-
usr: enthält weitere
Verzeichnisse
-
etc: enthält Systemverwaltungsdateien
-
tmp: temporäre Dateien
-
users: Benutzerverzeichnisse
-
hpOx: Startdatei
|
 |
Das Verzeichnis Users ist
in der Regel nochmals untergliedert in verschiedene Gruppen von Nutzern.
Es könnte z.b. wie in der folgenden Abbildung aussehen.
Man
kann eine Datei mit dem absoluten Namen oder mit einem relativen Namen
bezeichnen. Der absolute Name besteht aus dem Dateinamen und dem Pfad ab
dem ROOT-Verzeichnis. |
 |
| Dateinamen in
UNIX können bis zu 255 Zeichen lang sein. Dabei wird zwischen Groß-
und Kleinschreibung unterschieden. Es sollten möglichst keine Zeichen
der Shell verwendet werden. Werden diese dennoch benutzt, so müssen
sie durch einen Backslash ( \ ) markiert werden.
Micro-Emacs:
Der Micro-Emacs stellt einen
einfachen Texteditor dar. Man ruft in mit dem Befehlme_dateiauf
und verläßt ihn mit F1 mit Speichern und mit F9 ohne
Speichern
Umleitung von Ein- und Ausgaben:
UNIX geht grundsätzlich
davon aus, daß sowohl die Ein- als auch die Ausgabe über den
Bildschirm erfolgen soll. Wenn man dies nicht so will, muß man die
Ein- oder Ausgaben umlenken.
Umleitung der Ausgaben:
Zur Umleitung von Ausgaben
benutzt man das Kommando:kommando_>_dateiDadurch
wird das Ergebnis des Kommandos in eine Datei geschrieben. Ist die Datei
noch nicht vorhanden, wird sie erstellt, sonst wird sie überschrieben.
Durch den Befehl>_Dateikann
man deshalb einen neue, leere Datei erzeugen. Um eine bereits vorhandene
Datei nicht zu überschreiben, sondern die Ausgabe an diese Datei anzuhängen
kann man das Kommando:
kommando_>>_vorhandene datei
benutzen.
Umleitung der Eingaben:
Um Daten zur Ausführung
eines Kommandos aus einer bereits vohandenen Datei zu laden benutzt man
das Kommando:kommando_<_datei
Pipelines:
Man kann auch Verarbeitungsketten,
sogenannte Pipelines bilden.
Kommando1|Kommando2|Kommando3
Programme im Hintergrund:
Mit dem Befehlkommando&kann
man die Bearbeitung des Befehls in den Hintergrund verschicken. Nach bestätigen
des Befehls wird die Prozeßnummer ausgegeben. Dieser Befehl hat allerdings
den Nachteil, daß die Bearbeitung bei Verlassen der Sitzung abgebrochen
wird. Um dies zu vermeiden, kann man den Befehl
noup_kommando&
eingeben. Auch hier bekommt
man die Prozeßnummer zurückgeliefert.
Kommando-Syntax:
Die Syntax eines Kommandos
sieht immer wie folgt aus:
kommando_[parameter]
Die Trennung von Kommando
und Parameter erfolgt durch mind. ein Leerzeichen. Parameter müssen
nicht unbedingt mitgegeben werden. Der Befehl wird mit RETURN abgeschickt.
Der Kommandointerpreter überprüft dann, ob das Kommando vorhanden
ist. Ist dies der Fall, wird das Programm gestartet. Bei
der Kommandoeingabe wird zwischen Groß- und Kleinschreibung unterschieden.Mehrere
Kommandos können entweder untereinander oder in einer Zeile durch
Semikola getrennt werden. |
Kommando-Parameter:
Ein Kommando kann bis zu
drei Arten von Parametern haben:
kommando_-optionen_ausdruck_
Dabei ist auf jeden Fall die
Reihenfolge einzuhalten.Optionen werden immer durch ein Minuszeichen eingeleitet.
Sie bestimmen die Art der Programmausführung. Werden mehrere Optionen
angegeben, werden diese ohne Leerzeichen hintereinander eingegeben.Als
Ausdruck kann ein bestimmter Text mitgegeben werden. Wenn dieser Text Leerzeichen
oder Sonderzeichen enthält, sollte er in Hochkommata (') gesetzt werden,
damit das Leerzeichen oder die Sonderzeichen nicht mitinterpretiert wird.Außerdem
können noch Dateien zum speichern oder lesen bestimmt werden.
Korrekturmöglichkeiten:
-
Backspace-Taste
-
Ctrl + u = Zeile löschen
-
Ctrl + d = Entf.-Taste
-
Ctrl + a = Pos 1-Taste
-
Ctrl + e = Ende-Taste
-
Ctrl + p = Letztes Kommando
wird zurückgeholt, beliebig oft wiederholbar
-
Ctrl + n = Holt das letzte Kommando
zurück
Zusätzliche Tastenkombinationen
-
DEL (Ctrl+c) = Abbrechen von
Kommandos
-
Ctrl + s = Anhalten der Ausgabe
-
Ctrl + q = Weiter mit der Ausgabe
-
Ctrl + d = Ende einer Datei
C. Meta-/Jokerzeichen:
Kommando-
struktur:
|
Bsp.
|
Ergebnis/
Funktion:
|
| ? |
ls_? |
? steht stellvertretend
für genau 1 Zeichen, listet alle Dateien auf, deren Name aus genau
einem Zeichen besteht. |
| |
rm_a? |
Löscht
alle Dateien die aus zwei Zeichen bestehen, wovon der erste Buchstabe ein
"a" ist. |
| * |
|
Ersetzt eine
beliebige Zeichenkette, einschließlich fehlender Zeichen. |
[Liste von
Zeichen] |
ls_[abcd].txt |
Listet alle
Dateien auf, die a.txt, b.txt c.txt oder d.txt heißen.(Zeichen in
der Liste dürfen nicht durch Leerzeichen oder Kommata getrennt werden.) |
[!Liste von
Zeichen] |
ls_[!abcd].txt |
Listet alle
Dateien auf, die nicht a.txt, b.txt, c.txt oder d.txt heißen. |
|
B.
Kommandos:
|
Struktur:
|
Beispiel:
|
Ergebnis/Funktion:
|
| cat_datei |
cat_file1_file2 |
Dateien werden auf dem Bildschirm
aufgelistet. |
| |
cat_f1_f2_>f3 |
Schreibt die Dateien hintereinander
in die Datei "f3". |
| cd_directory |
cd_user |
Wechselt ins Verzeichnis
"User". |
| |
cd_.. |
Wechselt ins nächsthöhere
Verzeichnis. |
| chmod_modus_datei |
chmod_g=rwx_datei |
Berechtigt die Gruppe die
Datei "datei" zu lesen, zu schreiben und auszuführen. |
| |
chmod_777_file1 |
Berechtigt alle mit der
Datei nach Belieben zu verfahren. |
| cp_quelldatei_directory |
cp_a_otto |
Kopiert die Datei "a" in
das Verzeichnis "otto". |
| cp_quelle_ziel |
cp_a_b |
Kopiert die Datei "a" in
die Datei "b". |
| date |
date |
Gibt das aktuelle Datum
und Uhrzeit aus. |
| exit |
exit |
Beendet die UNIX-Sitzung. |
| grep_ausdruck_datei |
grep_Otto_dat1 |
Sucht die Zeichenfolge "Otto"
in der Datei "dat1". Es werden alle Zeilen der Datei ausgegeben, in der
das gesuchte Wort gefunden wurde. |
| |
grep_-c_Otto_dat1 |
-c = count, Zahl der Treffer
wird ausgegeben |
| kill_prozeßnummer |
kill_-g_3103 |
Bricht den Prozeß
mit der Nummer 3103 ab, ohne daß dies abgefangen werden kann. |
| lp_datei |
lp_-d_lp132_file1 |
Druckt Datei file1 auf Drucker
"lp132" aus. |
| |
lp_-d_lp80_file1 |
Druckt Datei "file1" auf
Drucker "lp80" aus. |
| ls_[-opt]_directory |
ls_-a |
Alle Dateien im Arbeitsverzeichnis
werden angezeigt. |
| |
ls_-l |
Alle Dateien im Arbeitsverzeichnis
werden ausführlich angezeigt. |
| man_kommando |
man_grep |
Beschreibung zum Kommando
"grep" wird ausgegeben. |
| mkdir_directory |
mkdir_otto |
Erzeugt ein Verzeichnis
mit dem Namen "otto". |
| |
mkdir_texte_prog |
Erzeugt zwei Verzeichnis
mit den Namen "texte" und "prog". |
| more_dateiname |
more_test |
Der Inhalt der Datei "test"
wird bildschirmseitenweise angezeigt. Durch Betätigen der RETURN-Taste
wird die nächste Zeile angezeigt, bei Betätigen der Leertaste
wirde die nächste Seite angezeigt. Beendet werden kann die Ausgabe
mit "q". |
| mv_quelle_directory |
mv_a_otto |
move: verschiebt die Datei
"a" in das Verzeichnis "otto". |
| mv_alt_neu |
mv_a_n |
Nennt die Datei "a" in "n"
um. |
| passwd |
passwd |
Ändert eigenes Password. |
| ps |
ps_-l |
Informiert über alle
Prozesse ausführlich. |
| |
ps_-e |
Informiert über alle
Prozesse. |
| |
ps_-u_name |
Informiert über die
Prozesse des Users "name". |
| pwd |
pwd |
print working directory:
zeigt absoluten Namen des aktuellen Arbeitsverzeichnisses an. |
| rm |
rm_file1_file2_file3 |
Löscht die Dateien
file1 - file3. |
| |
rm_-i_file1_file2 |
Löscht die Dateien
file1 und file2 mit Nachfragen (interaktiv). |
| rm_datei |
rm_a |
Löscht die Datei "a". |
| rmdir_directory |
rmdir_otto |
Löscht das Verzeichnis
"otto". |
| set |
set |
Anzeigen aller Shell-Variablen. |
| wc_datei |
wc_file1 |
Zählt Zeilen, Wörter
und Zeichen in der Datei "file1". |
| |
wc_-c_file1 |
Zählt nur Zeichen. |
| |
wc_-l_file1 |
Zählt nur Zeilen |
| |
wc_-w_file1 |
Zählt nur Wörter. |
| who |
who |
Listet alle aktuellen Benutzer
auf. |
| whoami |
whoami |
Listet eigene Einlogdaten
auf. |
|
D. Zugriffsrechte:
UNIX muß als Multiusersystem
sicherstellen, daß nicht alle Nutzer auf alle Dateien zugreifen können.
Dazu kann man für jede Datei und für jedes Verzeichnis Nutzungsrechte
vergeben.
Nach
der Eingabe von ls_-l
erhält man eine Liste von Dateien. Am Anfang jeder Zeile steht eine
Buchstaben folge, die folgendermaßen aussehen kann.
drwxrwxrwx...
-rwxr-x---...
Dabei gibt das "d" an, daß
es sich bei der Datei um ein Verzeichnis handelt. "r" steht für Leseberechtigung,
das "w" für die Schreibberechtigung und das "x" für die Berechtigung,
die Datei ausführen zu dürfen.
Weiterhin
stehen die ersten drei Buchstaben für den User selber, die zweiten
drei Buchstaben für die Gruppe, der der User angehört und die
dritten drei Buchstaben für den Rest der Welt.
Zum
Setzen der Berechtigungen benutzt man den Befehlchmod_modus_dateiname:Man
hat zwei Möglichkeiten den Modus anzugeben:
Oktal: Dazu muß
man sich an folgende Tabelle halten:
|
r
|
w
|
x
|
r
|
w
|
x
|
r
|
w
|
x
|
|
4
|
2
|
1
|
4
|
2
|
1
|
4
|
2
|
1
|
| Addition
der gewünschten Werte |
Addition
der gewünschten Werte |
Addition
der gewünschten Werte |
| 7 |
7 |
7 |
Symbolisch:
u : user
g : Gruppe
o : Rest der Welt
a : Alle
= : Zuweisen einer Berechtigung
+ : Hinzufügen einer
Berechtigung
- : Wegnehmen einer Berechtigung
|
| Beispiele: |
Oktal |
| 777 |
Der User, die Gruppe und
der Rest der Welt können lesen, schreiben und ausführen. |
| 740 |
Der User kann
alles, die Gruppe nur lesen und der Rest der Welt kann gar nicht auf die
Datei zugreifen. |
| Beispiele: |
symbolisch |
| chmod_g=rwx_dateiy |
Der Gruppe wird die Lese-,
Schreib- und Ausführungsberechtigung erteilt. |
| chmod_g-wx_dateiy |
Der Gruppe wird die Schreib-
und Ausführungsberechtigung für die Datei "dateiy" entzogen. |
| chmod_u+x |
Der Benutzer gibt sich die
Ausführungsberechtigung. |
| chmod_u=rw,g=r,o-w_z |
Der Benutzer
gibt sich, für die Datei "z", die Schreib- und Leseberechtigung unter
Ausschluß der Ausführungsberechtigung, die Gruppe bekommt nur
eine Leseberechtigung und dem Rest der Welt wird die vorhandene Schreibberechtigung
entzogen. |
|
| E.
Shell-Prozeduren:
Shell-Prozeduren sind mit
Batch-Dateien vergleichbar. Sie enthalten eine Reihe von Befehlen, die
nacheinander abgearbeitet werden. Die Datei wird ausgeführt, indem
ihr Name eingegeben wird. Dies setzt voraus, daß die Datei ausführbar
gemacht wurde.
In
solche Prozeduren können auch Variablen eingebunden werden, die als
Parameter beim Prozeduraufruf mit übergeben werden. Der Parameter1
ist in der Prozedur als Variable $1, der Parameter2 als Variable $2 definiert. |
| Beispiel:
Prozedur TEST: grep_$1_datei1>$2
Aufruf: TEST_otto_datei2 |
Die Prozedur wird mit ihrem
Namen "TEST" aufgerufen. Durch den Parameter1 (otto) wird die Zeichenfolge
mitgegeben, nach der grep suchen soll. Durch den Parameter2 (datei2) wird
die Datei angegeben, in die das Ergebnis von grep
geschrieben werden soll. |
| F. Datenübertragung
DOS-UNIX:
Von UNIX nach DOS:
Zunächst muß
man den Pfad, in den die Dateien kopiert werden sollen auf dem DOS-Rechner
einrichten und in diesen hineinwechseln.
Dann
muß man den notwendigen Netzwerktreiber laden, wenn dieser nicht
automatisch mitgeladen wird. Dies kann z.B. mit dem Befehl c:\pfad\ethdrv
geschehen.
Mit
tn_[Name
des Servers] stellt man
dann die Verbindung zum Host her. Man wird dann nach dem Login und dem
Passwort gefragt. Beides ist wie gewünscht einzugeben.
|
Mit
ftp_[Name
des Servers] ist der Dateitransport
zu beginnen.
Mit
mget_datei(en)
sind die entsprechenden Dateien auf den DOS-Rechner zu übertragen.
Um die entsprechenden Dateien im Dateisystem zu finden, können DOS-Befehle
benutzt werden.
Mit exit ist die Übertragung
zu beenden.
Von DOS zu UNIX:
Die Übertragung von
Dos zu UNIX funktioniert genauso, außer daß für die Übertragung
der Befehl put_datei(en) benutzt
wird.
|