Startseite
    der Anfang
    Wintersemester 2007/08
    Unix Praktikum
    Experimentelle Gestaltung
    Grundlagen analoger Gestaltung
    Mathe für Medieninformatiker 1
    Einführung in die Informatik 1
    Film Ab! Kurs -> individuelle Ergänzung
    Meine Wenigkeit
    Fotoalbum
    Dear Diary
  Archiv
  Gästebuch
  Kontakt
 


http://myblog.de/kopffick

Gratis bloggen bei
myblog.de





Unix Praktikum

UNIX
Vorlesung 4 – Unix Prozesse und Signale


-> Hintergrund: Multitasking
_ Timesharing-System
_ Prozeflhierarchie
_ init als Urprozefl
_ Vererbung von Prozeflattributen
_ Prozeflzust‰nde: running, ready, blocked
_ Zombies


-> Prozesse
Unter UNIX wird für jedes Programm, das ausgeführt wird ein eigener Prozess gestartet, welcher zu allen übrigen Prozessen parallel abläuft. Der Programmcode und die Programmdaten werden im Hauptspeicher geladen und gestartet.
Damit in der Prozessverwaltung kein Chaos entsteht, ist jeder Prozess mit einer eindeutigen PID (Prozess ID) versehen.Wird Z.B. ein Programm zweimal gestartet (gleicher oder verschiedene Benutzer), so handelt sich um 2 verschiedene Prozesse,(mit verschiedenen PID) obwohl beide den gleichen Programmcode ausführen. Ein Prozess bleibt solange bestehen, bis er beendet wird.
Ein Prozess kann einen oder mehrere andere Prozesse starten, die wiederum Kindprozesse erzeugen können usw. Man spricht von Elternprozess und Kindprozessen (oder Vater-Sohn-Prozessen). Die Prozesse bilden eine Prozesshierarchie.
Zu jeder Anmeldung beim Rechner gehören der Login-Prozess (der die Anmeldung bearbeitet) und der
Kommandointerpreter Prozess (Shell). Shell liest die Kommandoeingaben, interpretiert sie und führt sie aus.
Neben der PID zeigt die PPID unter welchem Prozess ein Sohnprozess gestartet wurde. Ob alle dazugehörigen Sohnprozesse beendet werden, wenn der Vaterprozess beendet wird, ist vom System und Typ des Vaterprozesses abhängig (Ausnahme: Prozesse, die mit at, batch oder nohup gestartet werden).

-> Prozesszustände:
Ein Prozess kann mehrere Zustände haben. Die wichtigsten sind:
Aktiv (English running): Der Prozess wird jetzt von den CPU bearbeitet
Bereit (English ready): Er wartet auf die Zuteilung der CPU Zeit.
Blockiert (English blocked): Er wartet auf noch nicht verfügbare Ressourcen oder Ereignisse: Z.B. Benutzer
Eingabe, Daten von Plattenspeicher, Signal von einem anderen Prozess, …)
Suspendiert (English suspended): Der blockierte Prozess wird zusätzlich auf eine Speicherplatte ausgelagert und somit ist der Hauptspeicher für andere Programme frei.
Beendet
Das Betriebsystem ist zuständig für Prozessverwaltung, und kann eine der folgenden Operationen über einem Prozess ausführen:
Einen Prozess generieren (start). Zu jedem Prozess gehört ein Prozesskontrollblock (PCB) und andere
Informationen
Momentaner Prozesszustand
PID, PPID, UID (User Identity), GID (Group Identity)
Priorität des Prozesses
Adresse des Prozesses im Hauptspeicher
Ressourcen, die vom Prozess gebraucht werden
Einen Prozess anhalten (suspend)
Einen Prozess wieder starten (resume)
Prozesspriorität ändern (Prozesse werden nicht gleichwertig bedient. Die Zuteilung von CPU Zeit (Scheduling)
ist abhängig von Priorität. )
Einen Prozess beenden (terminate)
Wenn viele Prozesse gleichzeitig im System laufen, muss jeder Prozess länger warten, bis er wieder bearbeitet wird.
Alle Prozesse derselben Priorität müssen gleich lange warten. Die Priorität kann aber geändert werden, so dass einige
Prozesse häufiger von der CPU bearbeitet werden als andere und somit eine kürzere Laufzeit haben. Die UID (User ID)
bezeichnet den Eigentümer des Prozesses; nur der Eigentümer (oder Systemadministrator als Superuser) kann einen
Prozess manipulieren (z.B. mit dem Shell-Kommando „nice“).

-> Prozeßerzeugung
_ Vordergrundprozesse: Shell wartet (blockiert)
_ Hintergrundprozesse: Shell wartet nicht

-> Prozeßinfo
Das Betriebssystem führt intern eine Liste aller Prozesse, über die man alle Verwaltungsdaten eines Prozesses erreichen kann. Die wichtigste davon ist die PID, eine Integerzahl, die den Prozeß eindeutig kennzeichnet. Daneben gibt es noch den Status, zugehöriges Terminal, Prozeßnummer des Prozeß-Vaters, Benutzernummer, Priorität uvm.
Mit dem Kommando ps kann man sich Ausschnitte dieser Liste anzeigen lassen. Anders als jobs, ist dieses Kommando nicht Shell-intern. Es liest seine Daten direkt aus dem Datenbereich des Betriebssystems. Das Problem hierbei ist, daß es sehr unterschiedliche Optionen unter verschiedenen UNIX-Derivaten hat. Deshalb wird im folgenden für System-V (HP- und SGI-Rechner) und BSD (bzw. SunOS) getrennt beschrieben.
Gibt man einfach ps ein, so wird nur der Status der Prozesse ausgegeben, die von der Shell, auf der man das ps-Kommando startet, gestartet wurden. Das sind also mindestens die Shell selbst und der ps-Prozess. Man bekommt eine Liste aller seiner Prozesse auf diesem Rechner mit der Option -x (BSD) bzw. -u loginname (SysV).
Normalerweise bekommt man nur eine kurze Ausgabe mit Angaben je Prozeß über PID (Prozeßnummer: dies ist eine Verwaltungsnummer des Betriebssystems. Man braucht diese Nummer z.B. für das kill Kommando), TTY (Terminal von dem aus das Kommando gestartet wurde), Status (nur BSD: z.B. S für Suspended, oder R für Running), TIME (verbrauchte Rechenzeit) und COMMAND (Kommandoname und alle Parameter).
_ ps -a: alle Ñinteressantenì Prozesse (mit TTY)
_ ps -e: alle Prozesse
_ ps -f: zus‰tzliche Info
_ ps -u user: Prozesse von user
juser@vino ps -f
UID PID PPID C STIME TTY TIME CMD
juser 8300 8291 80 03:28:31 pts/1 0:01 bash
juser 8333 8300 19 03:32:25 pts/1 0:00 ps –f

_ top: dynamische ‹bersicht ¸ber aktivste Prozesse

last pid: 18017; load averages: 0.27, 0.30, 0.45 14:05:10
43 processes: 40 sleeping, 2 stopped, 1 on cpu
CPU states: 94.7% idle, 0.6% user, 1.9% kernel, 2.8% iowait, 0.0% swap
Memory: 32M real, 3552K free, 25M swap in use, 232M swap free

PID USERNAME THR PRI NICE SIZE RES STATE TIME CPU COMMAND
18016 juser 1 50 0 1280K 1036K cpu 0:00 3.29% top-5.8
123 root 1 58 0 4012K 1140K sleep 132:29 2.27% amd
18010 juser 1 58 0 2908K 1900K sleep 0:00 1.95% xterm
18011 juser 1 48 0 1836K 1140K sleep 0:00 1.75% bash
17880 root 1 59 0 24M 2212K sleep 0:07 1.11% Xsun
154 root 8 22 0 3304K 1576K sleep 10:44 0.23% nscd
100 root 1 58 0 1972K 332K sleep 3:45 0.05% inetd
138 root 1 58 0 1584K 372K sleep 0:42 0.02% syslogd
2615 root 1 58 0 1376K 236K sleep 1:18 0.00% cron

-> init als Urprozeß
init ist dafür verantwortlich, das Hochfahren von Unix zu
kontrollieren, nachdem der Kernel gebootet wurde.
Dazu werden normalerweise die systemabh¨angigen
Init-Dateien gelesen: /etc/rc* auf BSD-¨ahnlichen
Systemen und /etc/inittab und die Dateien in
/etc/init.d auf System V.
Neuere Unix-Systeme verwenden andere Mechanismen,
um den Systemstart zu kontrollieren: Solaris und OS X
k¨onnen Startup-Vorg¨ange parallelisieren
Das System wird von init in einen definierten Zustand
gebracht, z.B. Multiuser-Betrieb. In System V- ¨ahnlichen
Systemen kann der Zustand durch den init-Level (z.B. 3 f ¨ ur
Multiuser, 5 f ¨ ur Multiuser+GUI) selektiert werden
Der Init-Prozess stirbt nie. Es ist ein normaler Prozess,
kein Systemprozess innerhalb des Kernels – aber init l ¨ auft
mit den Privilegien des Superusers.
Init ist der erste Prozess in der Unix-Prozesshierarchie und
der “Vorfahr” aller Prozesse, die aktuell auf einem System
laufen.

UID PID PPID CLS PRI STIME TTY TIME CMD
root 0 0 SYS 96 Nov 12 ? 0:02 sched
root 1 0 FSS 49 Nov 12 ? 2:36 /etc/init

-> Zombies
UID PID PPID C STIME TTY TIME CMD
juser 4984 4983 0 Nov 25 pts/4 0:00 bash
juser 4986 4984 0 0:09
_ sind schon tot
_ verbrauchen darum keine Rechenzeit mehr
_ entstehen, wenn der Elternprozefl nicht Ñwartetì (wait)

-> Prozeßkontrolle + Signale
_ INT: Interrupt, ^C
_ QUIT: Abbruch, ^\
_ KILL, 9: Abbruch, nicht zu ignorieren
_ TERM: Default-Signal, geordnetes Beenden
_ STOP, CONT: Prozefl anhalten/fortsetzen
_ ILL, FPE, BUS, SEGV: Programmierfehler o.ä

_ kill: Signal schicken
_ kill [-signal] pid ...
_ Nur für den Eigentümer erfolgreich nutzbar
.
23.2.08 11:52


UNIX
Vorlesung 3 – Unix Grundlagen 2


-> Unix Gruppen
Eine Gruppe ist eine Menge/Zusammenfassung von Benutzern. Durch die Gruppe ergibt sich die Möglichkeit, die Berechtigungen von Dateien so zu wählen, dass ein Team gemeinsam auf Ressourcen zugreifen kann, ohne dass die Daten gleich allen Benutzern öffentlich angeboten werden. Gruppen unterstützen und vereinfachen die Arbeit in einem Team an einem gemeinsamen Projekt. Die Erzeugung und Verwaltung der Gruppen erfolgt dabei nur durch die Systembetreuung.
Die Gruppenzugehörigkeit hat in erster Linie etwas mit der Gewährung und Erlangung von Zugriffsrechten auf Dateien und Verzeichnisse zu tun. UNIX kennt dazu 3 Abstufungen: Den Eigentümer, die Gruppe und den Rest der Welt.

-> Gruppenzugehörigkeit
Es ist die Mitgliedschaft in einer oder mehreren Gruppen möglich. (treimer: stud twincester animexxler)
Deren Zahl ist jedoch begrenzt.  primary group + supplementary group(s) (früher auch newgrp)
Systemgruppen haben keine Mitglieder.
Systemgruppen, Sonderanwendungen, “Einzelkinder” haben ein Mitglied.
Gruppen wie stud haben viele Mitglieder.

-> Ermittlung von Mitgliedschaften – id
Durch den Befehl id werden die Benutzer- und Gruppennummer angezeigt.

z.B.:
uid=12345(janeuser) gid=12000(info)
oder:
uid=12354(joeuser) gid=12000(info) groups=11000(software),11009(soft9)

-> Jane User (janeuser) ist der Gruppe info zugeordnet, Joe User (joeuser) gehört zusätzlich den Gruppen 'software' und 'soft9' an.


-> Unix-Gruppen und Dateien
Welcher Gruppe "gehören" meine Dateien und wie kann ich das beeinflussen ?
Mit dem Kommando ls können Sie sich Informationen über Dateien und Verzeichnisse anzeigen lassen. Mit der Option -l wird die Ausgabe etwas umfangreicher, etwa für das Programm ls selbst:

>> ls -l /vol/gnu/bin/ls
<< -rwxr-xr-x 1 ro src 98304 Jun 22 00:38 /vol/gnu/bin/ls

Die Datei "gehört" also der Gruppe 'src', damit sind die hervorgehobenen Zugriffsrechte verbunden. Sollte für eine Gruppe kein symbolischer Name existieren (das ist i.d.R. dann der Fall, wenn die Gruppe aufgelöst wurde), erscheint stattdessen ein numerischer Bezeichner, z.B.

>> ls -l /homes/joeuser/uralt
<< -rwxr-x--- 1 joeuser 4000 22134 Jan 12 14:18 /homes/joeuser/uralt

Da die Gruppe mit der Nummer 4000 nicht mehr existiert und er jetzt der Gruppe info angehört, möchte Joe User die Zugehörigkeit dieser Datei evtl. ändern. Dazu dient das Kommando chgrp.
Wie funktioniert chgrp ?
chgrp wird als erster Parameter der Name der gewünschten Gruppe übergeben gefolgt von einem oder mehreren Datei-Namen, z.B.:
>> chgrp info /homes/joeuser/uralt
Mit ls läßt sich die Änderung kontrollieren:
>> ls -l /homes/joeuser/uralt
<< -rwxr-x--- 1 joeuser info 22134 Jan 12 14:18 /homes/joeuser/uralt

Wenn Sie *alle* Dateien und Verzeichnisse unterhalb Ihres Home-Directories - unabhängig von der bisherigen Zuordnung - einer bestimmten Gruppe (i.d.R. der, der sie primär angehören) zuordnen wollen, können Sie das wie folgt erreichen: Wechseln Sie mit cd in Ihr Home-Directory (pwd zur Kontrolle):
>> cd
>> pwd
<< /homes/joeuser
Rufen Sie chgrp mit der Option -R für rekursiven Durchlauf auf:
>> chgrp -R info .

-> Ziel muss primary oder supplementary group sein! (nicht zugänglich: chown)
(Mit dem Befehl chown kann der Systemverwalter eine oder mehrere Dateien einem anderen User übereignen, d.h. der andere User wird zum Eigentümer der Datei(en). Dieser Befehl kann nur vom Systemverwalter benutzt werden, es ist also nicht möglich, dass ein Normaluser seine eigenen Dateien einem anderen User übereignet.
chown Username Datei(en)
Optional kann dem Usernamen auch mit Punkt(.) oder Doppelpunkt( getrennt ein Gruppennamen folgen, dann erledigt chown gleich noch die Gruppenzugehörigkeit der Datei(en). Statt User- und Gruppennamen können auch User- und GruppenID benutzt werden. chown kennt den Parameter -R, mir dem ganze Unterverzeichnisbäume mit allen Dateien und Verzeichnissen darin rekursiv bearbeitet werden. Der Befehl
chown -R hans:users /home/hans
würde also das Unterverzeichnis /home/hans und alle darin enthaltenen Dateien und Verzeichnisse dem User Hans und der Gruppe users zuordnen.)

-> Zugriffsrechte ändern mit chmod
Die Rechte von Dateien oder Verzeichnissen können mit dem Kommando chmod (change mode) verändert werden. Beispiel:

chmod 754 meinskript
(-> chmod [-R] [--recursive] mode file ...]
Mit diesem Befehl erhält die Datei meinskript die Rechte rwxr-xr--. Das bedeutet, dass der Eigentümer die Datei lesen, schreiben und ausführen darf. Die Mitglieder der besitzenden Gruppe dürfen die Datei einsehen und starten, der Rest der Welt darf die Datei nur lesen.
-> Die Veränderung der Berechtigungen auf Dateien und Verzeichnisse ist nur für den Eigentümer ausführbar.
-> chmod anwenden:

-Wer? user, group, other, all
-Wie? +, -, =
-Was? r,w,x wie gehabt, X,s,t speziell, u,g,o wie anderes Feld

juser@vino ls -l
-rw-r--r-- 1 juser stud 2350 Oct 28 21:08 geheimesProgramm
juser@vino chmod u-w,u+x,go= geheimesProgramm
juser@vino ls -l
-r-x------ 1 juser stud 2350 Oct 28 21:08 geheimesProgramm
23.2.08 11:50


Wichtige Befehle:

->Dateinamen auflisten: ls

Der Befehl ls (list) zeigt den Inhalt eines Verzeichnisses an. Es können Optionen folgen, die mit einem Bindestrich beginnen und dann die anzuzeigenden Datein. Werden keine Angaben zu den Dateien gemacht, werden alle Dateien des aktuellen Verzeichnisses angezeigt.
Wird als Parameter der Name eines Verzeichnisses eingegeben, zeigt ls den kompletten Inhalt des angegebenen Verzeichnisses. Dies kann leicht irritierend sein, wenn man nur nähere Informationen zu einem Verzeichnis haben wollte. Mit der Option -d (d wie directory) kann man diesen Effekt unterbinden. Dann wird nur das Verzeichnis angezeigt und nicht hineingeschaut.
Beispielsweise legt man ein Verzeichnis spielwiese an und lässt es sich hinterher mit ls spielwiese anzeigen, um zu sehen, ob es noch da ist. Man sieht - nichts. Der Grund liegt darin, dass ls das Verzeichnis spielwiese nicht selbst anzeigt, sondern seinen Inhalt. Da dieser bisher leer ist, wird die leere Liste angezeigt. Es sieht also so aus, als wäre spielwiese verschwunden. Mit ls -ld spielwiese kann man sie wiederum sehen. Einige Optionen werden häufiger gebraucht. Die Langform mit -l zeigt alle Informationen zu den Dateien, die man sich wünschen kann. Von rechts nach links erkennt man den Dateinamen, es folgen der Zeitpunkt der Erstellung und die Größe der Datei. Das erste Zeichen der Zeile zeigt ein d für Verzeichnisse und ein Minuszeichen für eine normale Datei.

-l
Gibt ein langes Listing aus, mit Zugriffsrechten, Anzahl der Hardlinks, Eigentümer, Gruppe, Größe, Datum der letzten Veränderung und Dateiname.
-a
Zeigt alle Dateien an, auch die, deren Namen mit einem Punkt beginnen.
-d
Zeigt Verzeichnisse wie normale Dateien anstelle ihres Inhalts.
-i
Zeigt die Nummer der I-Node zu jeder Datei
-n
Gibt die Benutzer und Gruppen mit ihren ID's anstelle der Namen aus
-R
Zeigt rekursiv den Inhalt aller Unterverzeichnisse
-S
Sortiert nach Größe
-t
Sortiert nach Zeit (letzte Veränderung) anstelle des Namens
-u
Sortiert nach letzter Zugriffszeit anstelle der Änderungszeit (zusammen mit Option -t)
-c
Sortiert die Dateien nach der Zeit der letzten Statusveränderung
Wenn mehrere Optionen gesetzt werden sollen, so genügt ein Bindestrich, gefolgt von den Optionsbuchstaben also etwa
ls -litu
um ein langes Listing mit den I-Node-Nummern zu bekommen, das nach dem Datum des letzten Zugriffs sortiert ist.
--


-> Verzeichnisbefehle: mkdir, rmdir, cd und pwd

Um Dateien zu ordnen und zu gruppieren, legt man Verzeichnisse an. Der Befehl zum Erzeugen von Verzeichnissen lautet mkdir.Die Abkürzung md für mkdir gibt es unter UNIX nicht. Wer sie vermisst, kann sie sich aber als alias (siehe S. alias) definieren.
Der Anwender befindet sich immer in einem Verzeichnis. Mit cd wechselt er das Verzeichnis. In diesem arbeitet er ab sofort, darum spricht man auch von seinem Arbeitsverzeichnis. cd ohne Parameter wechselt in das Heimatverzeichnis. Das Heimatverzeichnis ist das Verzeichnis, in dem sich der Anwender nach dem Anmelden zunächst befindet.
Um zu ermitteln, in welchem Verzeichnis man sich aktuell befindet, verwendet man den Befehl pwd (print work directory).
Um ein Verzeichnis wieder verschwinden zu lassen, verwendet man rmdir (remove directory). Allerdings kann man mit rmdir nur leere Verzeichnisse löschen und auch nur solche, die derzeit nicht verwendet werden. In Verwendung sind auch Verzeichnisse, in denen noch eine Sitzung von einem anderen Terminal stattfindet. Man darf nämlich nicht einfach jemand anderem das Verzeichnis unter den Füßen wegziehen.


--

-> Dateien löschen: rm

Der Befehl rm löscht Dateien. Dies geschieht unwiderruflich, und darum ist es ganz gut, dass es die Option -i gibt. Dann fragt rm bei jeder einzelnen Datei nach, ob sie wirklich entfernt werden soll.
Will man einen kompletten Verzeichnisbaum löschen, verwendet man die Option -r. Damit geht rm rekursiv den gesamten Baum durch und entfernt alle enthaltenen Dateien und Verzeichnisse.
--

-> Dateien verschieben oder umbenennen: mv

Mit dem Befehl mv kann man einer Datei einen anderen Namen geben oder mehrere Dateien in ein anderes Verzeichnis schieben. In den meisten Fällen fasst mv die Dateien selbst gar nicht an, sondern verändert nur die Einträge in den Verzeichnissen. Darum wird das Verschieben selbst großer Dateien erstaunlich schnell erledigt. Eine Ausnahme gilt nur, wenn Ursprung und Ziel auf verschiedenen Dateisystemen liegen, beispielsweise auf verschiedenen Festplatten. Dann wird zunächst kopiert, dann wird das Original gelöscht, und zu guter Letzt werden die Eigenschaften der Originale übernommen.

--

-> Dateien kopieren: cp

Der Befehl cp kopiert Dateien an genau ein Ziel. Wird nur eine Datei kopiert, kann das Ziel ein Dateiname sein. Dann wird von der Quelldatei eine Kopie angefertigt und diese unter dem Zielnamen abgestellt. Werden dagegen mehrere Dateien kopiert, muss das Ziel ein Verzeichnis sein, da ja nicht alle Quelldateien den gleichen Namen bekommen können. Die Kopien finden sich nach der Ausführung unter ihrem bisherigen Namen im angegebenen Zielverzeichnis. Soll das Ziel das aktuelle Verzeichnis sein, muss der Punkt dafür angegeben werden.
Um mehrere Dateien zu erfassen, kann man sie aufzählen oder durch einen Stern auswählen. Wichtig ist, dass der zuletzt angegebene Name von cp immer als Ziel interpretiert wird. Ein Verzeichnis als Quelle wird von cp einfach übergangen.
cp erzeugt beim Kopieren immer eine neue Datei. Darum hat eine Dateikopie auch immer den Zeitpunkt des Kopierens als Änderungsdatum, und nicht das Datum der Datei, von der sie kopiert wird. Auch der Eigentümer der neu entstandenen Datei ist immer der Anwender, der den Befehl aufgerufen hat. Dieses Verhalten kann mit der Option -p unterbunden werden, die aber nicht in allen UNIX-Versionen vorhanden ist.
Auch die Möglichkeit, mit der Option -r komplette Verzeichnisbäume zu kopieren, ist nicht auf allen Systemen verfügbar. Darum wird das Kopieren kompletter Verzeichnisbäume unter Beibehaltung aller Eigenschaften auf älteren Systemen normalerweise mit dem Kommando tar realisiert, das an anderer Stelle betrachtet wird (siehe S. tarcopy).
Welche Möglichkeiten cp auf Ihrem System sonst noch bietet, erfahren Sie wieder mit man cp.

--


man

Dies ist einer der wichtigsten Befehle. Er gibt das Benützer-Handbuch für den gewählten Befehl aus: man [option] befehl


_ man
_ man -s

_ Verweise mit z.B. man(1)
_ man [-a] -M
_ man -k , apropos



--


Pfadnamen

Um eine Datei zu finden, brauchen wir nur den Pfadname einzugeben.

Es gibt 2 Typen von Pfadnamen:
-> absolut, beginnt mit dem Root-Verzeichniss „ / “
-> relativ, beginnt mit akt. Arbeitsverzeichnis

Mit dem Kommando „pwd“ wird das akt. Arbeitsverzeichnis angezeigt.


Bsp.: Akt. Arb-Ver sei: /usr/becker (als Hilfe siehe Abb.Baumstruktur)


/usr/becker/projekt1/spiel1 absoluter Pfadname
projekt2/spiel4 relativer Pfadname
/usr/graf/projekt3/spiel7 absoluter Pfadname
.. /graf/projekt4/spiel8 relativer Pfadname

Steht am Anfang mit 2 Punkten, beginnt der Zugriff bei dem übergeordneten Verzeichnis.


z.B.:
/name1/name2/name3 absoluter Pfadname
name4 relativer Pfadname
name5/name6 relativer Pfadname
../name7 relativer Pfadname


Um ein File innerhalb des Filesystems anzusprechen, müssen wir als Adresse den Pfadnamen angeben. Beispiel:

/homes2/konto_name/u1/01_nachname.dwg.

Diese Art der Adressierung nennt man absolute Adressierung. Im Gegensatz dazu beginnt die relative Adressierung nicht mit dem Zeichen ,,/" für das root-directory, sondern mit einem relativen Pfadbezeichner. Als solche kennen wir den ,,.", er steht für das aktuelle Directory und den ,,..", welcher für das übergeordnete Directory steht. Beginnt ein Pfadname mit einem Buchstaben, also ohne Spezialzeichen, so ist der Pfadname relativ. Innerhalb eines Directories müssen die File-Namen eindeutig sein. Pfadnamen können aus folgenden Zeichen gebildet werden: [A-Z] [a-z] [0-9] [_] [.] [,].



--

Eine eingegebene Kommandozeile enthält außer einem Kommando häufig noch eine Reihe von Optionen und Argumenten. Optionen dienen zur Modifikation des Kommandos, ihnen wird ein Minuszeichen (-) voran gestellt.
Die allgemeine Syntax für Unix-Kommandos lautet:

Kommando [-Optionen] Argumente
23.2.08 11:48


UNIX
Vorlesung 2 – Unix Grundlagen


UNIX --> Multiuser-Multitasking-Betriebssystem (-Familie) (-> Besser entwickeltes Dateisystem als bei Windows)

-> Geschichte von UNIX:
Frühere Unix-Systeme: System V v.s. BSD
-> Standarisierung = POSIX
-> Linux, Solaris, Mac gehören zu Unix Systemen
--

Unix Dateisysteme:
-> Dateien und Verzeichnisse: die wichtigsten Befehle:
~> cd – change directory
~> pwd – print working directory
~> ls – list
~> mkdir – make directory
~> rmdir – remove directory
~> mv – move (verschieben, umbenennen)
~> cp – copy
~> rm – remove

Dateien:
-> unstrukturierte Folge von bytes -> Texte, Bilder etc sind gleichwertig
-> Dateinamen nahezubeliebig:
- max. 255 Zeichen
- Groß-/Kleinschreibung relevant
- Einziges Sonderzeichen und im Namen nicht verwendbar: „/“ (-> Wird als Verzeichnistrenner interpretiert)

--

Rechtestrukturen im Dateisystem:

user group other
d rwx r-x r-x 2 treimer stud 2048 Oct 29 10:08 KimistneKuh



Zugriffsrechte Eigentümer Größe Dateiname

Dateityp Linkzähler Gruppe Datumsstempel


-> Durch ls –l werden Dateien mit diesen ganzen Informationen aufgelistet.
~> Das Datum bezieht sich auf die letze Modifikation; wenn keine Uhrzeit angegeben ist, ist die Datei älter als sechs Monate. Das Jahr wird dann angegeben.

-> Grundrechte:
- lesen : read – r
- -> Dateien dürfen mit allen Befehlen bearbeitet werden, welche den Inhalt der Datei unverändert lassen (Inhalt anzeigen, kopieren, ...) Bei Directories bedeutet das read-Recht, dass der Inhalt von Directories angezeigt werden darf.

- schreiben: write – w
- -> Der Inhalt von Dateien darf verändert werden. Um Dateien allerdings zu löschen, ist nicht das Schreibrecht für die entsprechende Datei maßgeblich, sondern das Schreibrecht für das die Datei enthaltende Directory. Wer also das Schreibrecht für ein Verzeichnis besitzt, darf auch darin enthaltene Read-Only-Dateien löschen. Es dürfen dann in diesem Verzeichnis auch neue Dateien und Verzeichnisse angelegt werden. Umgekehrt darf man Dateien, selbst wenn man das Schreibrecht für diese besitzt, nicht löschen, wenn man das Schreibrecht für das entsprechende Directory nicht besitzt. Es ist also üblich ganze Directories anstatt einzelner Dateien zu schützen.

- ausführen: execute – x
- -> Wenn man auf Dateien dieses Recht besitzt, so darf mam die Datei als Befehl ausführen. Unterschied zu Windows-Betriebssystemen: dort wird die Ausführbarkeit einer Datei an der Endung (drei Stellen nach dem Punkt) festgemacht. Dies ist unter UNIX nicht so. Entscheidend ist allein das execute Recht.
Das execute Recht bei einem Directory bewirkt, dass auf Dateien in diesem Directory zugegriffen werden darf und dass man das Directory mit cd zum aktuellen arbeitsverzeichnis machen darf, also in das Verzeichnis hineinwechseln darf.

-> Diese drei Grundrechte gelten jeweils für drei Benutzerklassen:
- Eigentümer: user – u
- Mitglieder der Gruppe des Eigentümers: group – g
- Alle anderen Useraccounts: other – o


Beispiele:
rwx --- --- -> Eigentümer darf alles
rwx --- --- -> Eigentümer und Gruppe dürfen alles
rw- r—r-- -> alle dürfen lesen, Eigentümer darf auch
schreiben
rwx r-x r-x -> alle dürfen lesen und ausführen, Eigentümer darf
auch schreiben
23.2.08 11:45


Soo, kommen wir zu Unix.
Erstmal zusammenfassend am Anfang, damit man überhaupt weiß, worum's geht, wenn man keine Ahnung hat, was Unix ist:
Unix ist ein Betriebssystem wie Windows, nur viel geiler (munkelt man unter Informatikern..)
Nein, im Ernst, Informatiker stehen total auf Unix x_x
Auf jeden Fall wird bei diesem Betriebsystem alles über Tastaturbefehle gesteuert und nicht über die Maus. Kann man soweit ich weiß größtenteils auch, aber es spart Zeit das nicht zu tun und sich stattdessen die kurzen Befehle zu merken.
Und Informatiker sind faul. Vielleicht erklärt dieser Umstand letzendlich ihre große Liebe zu Unix. xD




UNIX
Vorlesung 1 – E-Mail



Aufbau wie beim herkömmlichen Brief:

- BRIEFKOPF
-> Header beinhaltet:
To: für primäre Adressaten
Subject: für den Betreff
Cc: für zusätzliche Adressaten
Bcc: für zusätzliche – nicht für andere sichtbare! - Adressaten

- TEXT


-> Electronic mail ist
+ bequem + schnell
- unsicher
-> -Authentizität des Absenders/des Empfängers (Name kann immer gefaked sein)
-Integrität der Nachricht (Fälschungs- und Datensicherheit ist nicht gewährleistet)
-Vertraulichkeit der Nachricht (größere Anonymität durch E-Mail)
-keine 100%ige Bestätigung, dass die Nachricht auch wirklich ankommt
-das Absenden ist endgültig

Adressenaufbau:
User@FQDN ( Fully Qualified Domain Name)


E-Mail Konventionen:
~aussagekräftige Subjects benutzen, um sofortigen Aufschluss über den Inhalt zu geben
~auf Rechtschreibung achten
~Zeilen <72 Zeichen
~Signaturen max. 4 Zeilen (wenn überhaupt)
~keine HTML-Mails!
~möglichst keine Attachments mit unüblichen Formaten (z.B. MS Word)

->Richtiges Zitieren:
~Original wird in die Antwort übernommen
~eingerückt mit >
~sinnvoll einkürzen!
~Auslassungen gegebenfalls mit [...] kennzeichnen
~eigene Nachricht passend zwischen die Zitate plazieren
~KEIN TOFU ( Text Oben Fullquote Unten)


-> Die Mails landen auf dem Unix Rechner in der Uni unter: /homes/treimer/mail
~> Weiterleitung der Mails funktioniert unter: $HOME/ .forward (/homes/treimer/ .forward)
-> In dieser Datei die Mailadressen eintragen (durch Komma getrennt, oder neue Zeile), an
die die Weiterleitung erfolgen soll
-> Wenn man noch eine lokale Kopie auf den Unix Rechner von der Weiterleitung erstellen
will, gibt man in einer neuen Zeile einfach \treimer an.

Sonst noch:
-> Keine Kettenbriefe, kein Spam, bla bla
23.2.08 11:43





Verantwortlich für die Inhalte ist der Autor. Dein kostenloses Blog bei myblog.de! Datenschutzerklärung
Werbung