Unix – Einsteigerlehrgang
Benutzerhinweis: zum Suchen bitte strg+F nutzen.
Unix-Shell
Shells bieten normalerweise folgende Dienste an:
interne Kommandos
Ausführen von Programmen (externe Kommandos)
Ablaufkontrolle
typische interne Kommandos:
Prozesskontrolle
Verzeichniswechsel
Variablenhandling
Ein-/Ausgabe
Ablaufkontrolle meist durch
bedingte Ausführung
verschiedene Schleifen
Vortragender: Boris Höffgen Datum: September 2003 Folie 35
UNIX Terminal
Unix-Kommandos
Kommandos sind meist Abkürzungen englischer Worte:
ls list Verzeichnis anzeigen
cp copy Datei kopieren
mv move Datei unbenennen
rm remove Datei löschen
mkdir make directory Verzeichnis anlegen
rmdir remove directory Verzeichnis löschen
cd change directory Verzeichnis wechseln
wo sinnvoll sind mehrere Argumente möglich
z.B.: rm abc def ghi löscht alle drei Dateien
meist gibt es eine Vielzahl von Schaltern
z.B.: rm -f xyz löscht ohne Nachfrage
Details in den jeweiligen Manual-Pages
Vortragender: Boris Höffgen Datum: September 2003 Folie 36
UNIX Terminal
Unix-Kommandos: Manual Pages
Bieten Informationen und Infos zu (fast) allen Programmen an
Sehr umfangreich
Grundsätzlich in Englisch
Syntax: man [Optionen] [Programmname]
Beispiel: man –help
Ausgabe:
usage: man [-c|-f|-k|-w|-tZT device] [-adlhu7V] [-Mpath] [-Ppager] [-Slist]
[-msystem] [-pstring] [-Llocale] [-eextension] [section] page …
-a, –all Zeige alle passenden Manual-Seiten an.
-d, –debug Erzeuge Debugging-Ausgaben.
-e, –extension Schränke Suche auf Dateierweiterung `extension’ ein.
-f, –whatis Gleichwertig zu einem Aufruf von whatis.
-k, –apropos Gleichwertig zu einem Aufruf von apropos.
-w, –where, –location Zeige physikalische Position der Manual-Seiten an.
-l, –local-file Interpretiere `page’ Argumente als lokale Dateinamen.
… (u.v.m.)
Option –help bietet kurze Info zur Benutzung von Programmen.
Vortragender: Boris Höffgen Datum: September 2003 Folie 37
UNIX Terminal
Unix-Kommandos: Manual Pages
Beispiel: man ls
Ausgabe:
NAME
ls – list directory contents
SYNOPSIS
ls [OPTION]… [FILE]…
DESCRIPTION
List information about the FILEs (the current directory by default). Sort entries alphabetically
if none of -cftuSUX nor –sort.
-a, –all
do not hide entries starting with .
-A, –almost-all
do not list implied . and ..
-b, –escape
print octal escapes for nongraphic characters
–block-size=SIZE
use SIZE-byte blocks
-B, –ignore-backups
do not list implied entries ending with ~
-c sort by change time; with -l: show ctime
-C list entries by columns
Vortragender: Boris Höffgen Datum: September 2003 Folie 38
UNIX Terminal
Unix-Kommandos: apropos
Dieser Befehl gibt Hinweise und Programme zum angegebenen
Stichwort
Syntax: apropos [Optionen] [Stichwort]
Beispiel: apropos filesystem
fs (5) – Linux Filesystem Arten: minix, ext, ext2, xia, msdos, umsdos, vfat, proc,
nfs, iso9660, hpfs, sysv, smb, ncpfs
setup (2) – setzt Gerä te und Dateisysteme auf und mountet das Root-Filesystem
Unix-Kommandos: apropos
Dieser Befehl gibt ausführliche Hinweise zum angegebenen Programm
Syntax: info [Programm]
Vortragender: Boris Höffgen Datum: September 2003 Folie 39
UNIX Terminal
Unix-Kommandos:
ls (list directory contents)
Syntax: ls [Optionen] [Pfad]
Wichtige Schalter:
-a all listet alle Dateien und Verzeichnisse auf, auch Punkt-Dateien
-l long listet im Langformat mit Rechten, Benutzer, Größe, Datum auf
-R Recursive listet auch alle Unterverzeichnisse auf – Rekursiv
-i inode zeigt zusätzlich zu jedem Eintrag auch das inode an
cp (copy) Kopieren
Syntax: cp [Optionen] [Quelle] [Ziel]
Wichtige Schalter:
-R Recursive kopiert alle Verzeichnisse und Unterverzeichnisse mit beinhalteten
Dateien
Vortragender: Boris Höffgen Datum: September 2003 Folie 40
Unix Terminal
mv (move) Verschieben
Syntax: mv [Optionen] [Quelle] [Ziel]
Wichtige Schalter:
-R Recursive verschiebt alle Verzeichnisse und Unterverzeichnisse mit beinhalteten
Dateien
rm (remove) Datei löschen
Syntax: rm [Optionen] [Datei/Verzeichnis]
Wichtige Schalter:
-R Recursive löscht alle Verzeichnisse und Unterverzeichnisse mit beinhalteten
Dateien (Vorsicht!!!)
Vortragender: Boris Höffgen Datum: September 2003 Folie 41
Unix Terminal
mkdir (make directory) Verzeichnis anlegen
Syntax: mkdir [Optionen] [Verzeichnis]
rmdir (remove directory) Verzeichnis löschen
Syntax: rmdir [Optionen] [Verzeichnis]
cd (change directory) Verzeichnis wechseln
Syntax: cd [Optionen] [Verzeichnis]
Vortragender: Boris Höffgen Datum: September 2003 Folie 42
Unix Terminal
Navigation im UNIX Dateisystem
Inhaltsangabe eines Verzeichnisses (Katalog)
Beispiel: ls -al
gennat wra05 ~/unix>ls -la
total 8
drwxr-xr-x 3 gennat users 512 Feb 16 14:11 .
drwx—— 26 gennat users 1536 Feb 17 10:20 ..
-rw-r–r– 1 gennat users 6 Feb 16 13:50 hallo_welt
-rwxrwxrwx 1 gennat users 1 Feb 16 14:11 kopierte_datei
-rw——- 1 gennat users 1 Feb 16 14:06 neue_datei
d–x—— 2 gennat users 512 Feb 16 13:55 nichtlesen
Was ist zu beachten:
. und .. Dateien sind Verknüpfungen zum gleichen (.) und eine Ebene höher
gelegenen Verzeichnis.
Steht an der ersten Stelle ein d, handelt es sich um ein Verzeichnis.
Steht an der ersten Stelle ein -, handelt es sich um eine Datei.
Vortragender: Boris Höffgen Datum: September 2003 Folie 43
Unix Terminal
Relative/Absolute Adressierung
pwd (print name of current/working directory)
pwd gibt den Namen des aktuellen Verzeichnisses aus
Beispiel: pwd
gennat wra05 ~/unix>pwd
/people1/gennat/unix
Was ist zu beachten:
Der komplette Pfad ist von der Wurzel angegeben, d.h.
absolute Adressierung.
Hier ist keine relative Angabe wie bei o.g. ls zu sehen.
Vortragender: Boris Höffgen Datum: September 2003 Folie 44
Unix Terminal
Zur Navigation, d.h. Anlegen und löschen von Dateien und
Verzeichnissen gibt es demnach zwei Möglichkeiten:
Absolute Adressierung (wird selten angewandt)
RelativeAdressierung (übliche Methode)
Beispiele:
gennat wra05 ~/unix>pwd
/people1/gennat/unix
Zum Wechseln in das Verzeichnis /people1/gennat/unix gibt es demnach folgende
Möglichkeiten:
gennat wra05 ~/unix>cd ..
gennat wra05 ~/>
oder
gennat wra05 ~/unix>cd /people1/gennat
gennat wra05 ~/>
Wichtig:
Die gezeigten Möglichkeiten der Adressierung gelten für ALLE Datei und
Verzeichnisangaben
Vortragender: Boris Höffgen Datum: September 2003 Folie 45
Unix Terminal
Administration des eigenen Home-Verzeichnisses
Im HRZ gelten 10 MB (30 MB für Namensaccounts) als Höchstgrenze
für das eigene Homeverzeichnis.
du (disk usage) zeigt die Verteilung des belegten Plattenplatzes auf die Verzeichnisse
Syntax: du [Optionen]
Wichtige Schalter:
-k kilobyte zeigt den Platz in kB an
-m megabyte zeigt den Platz in MB an
Vortragender: Boris Höffgen Datum: September 2003 Folie 46
Unix Terminal
Administration des eigenen Home-Verzeichnisses
Ob überhaupt noch Platz auf einer Platte ist, kann folgendermaßen
ermittelt werden:
df (disk free) zeigt den freien Festplattenplatz
Syntax: df [Optionen]
Wichtige Schalter:
-k kilobyte zeigt den Platz in kB an
-m megabyte zeigt den Platz in MB an
-t type zeigt den Typ des Filesystems an
Beispiel:
gennat wra05 ~>df -k
Filesystem Type kbytes use avail %use Mounted on
/dev/root xfs 4028084 1996896 2031188 50 /
/dev/dsk/dks0d2s7 xfs 2093400 251216 1842184 13 /tmp
wrfs4:/student nfs 17781760 13376496 4405264 76 /student
wrfs10:/ex/app1 nfs 8885504 4476328 4409176 51 /usr/applications
wrfs4:/people1 nfs 20321248 18070592 2250656 89 /people1
wrfs10:/ex/loc1 nfs 8884832 2440792 6444040 28 /usr/local
Vortragender: Boris Höffgen Datum: September 2003 Folie 47
Unix Terminal
Administration des eigenen Home-Verzeichnisses
Wichtige Abkürzungen:
~ (Tilde) ist ein Synonym für das eigene Heimatverzeichnis
mit cd (ohne Pfadangabe!) gelangt man direkt ins eigene Heimatverzeichnis
Temporär kann jeder Benutzer Daten auf /tmp (oder auf Engineering
Servern auf /scratch) (zwischen-)speichern.
Allerdings können alle anderen Benutzer diese Daten auch lesen, wenn
man nicht Vorkehrungen trifft …
Vortragender: Boris Höffgen Datum: September 2003 Folie 48
Unix Terminal
Rechteverwaltung
Wer bin ich?
gennat@wra01:~$ id
uid=3483(gennat) gid=300(users)
Ich bin der Benutzer mit der User ID (UID) 3483. Der Name dieses Benutzers ist gennat.
Ich bin Mitglied in den Benutzergruppen mit den Gruppen IDs (GID) 300 (users).
Wem gehört eine Datei?
gennat@wra01:~/unix$ ls -l hallo_welt
total 1
-rw-r–r– 1 gennat users 6 Feb 16 13:50 hallo_welt
Diese Datei gehört dem Benutzer mit dem Namen gennat und sie gehört zu der Gruppe users. Das kann
man auch numerisch anzeigen lassen:
gennat@wra01:~/unix$ ls -ln
total 1
-rw-r–r– 1 3483 300 6 Feb 16 13:50 hallo_welt
Vortragender: Boris Höffgen Datum: September 2003 Folie 49
Unix Terminal
Was bedeuten die Zugriffsrechte?
- Normale Datei, Mode hat Dateibedeutung
d Verzeichnis, Mode hat Verzeichnisbedeutung
l Querverweis (link) auf eine andere Datei, Mode ist bedeutungslos
UNIX kennt 3 Zugriffsrechte mit den Buchstaben
r Rechte, den Inhalt der Datei zu lesen Recht, die Namen im Verz. zu sehen.
w Recht, den Inhalt der Datei zu ändern / Recht, Einträge im Verzeichnis oder die Laenge der Datei zu
ändern, also zu erzeugen oder zu löschen.
x Recht, die Datei auszuführen / Recht, Dateien im Verzeichnis zu verwenden Recht, das Verzeichnis
zu betreten.
Welche Rechtegruppe trifft auf mich zu?
Jede Datei hat drei Rechtegruppen rwx, also rwxrwxrwx.
Die erste Rechtegruppe beschreibt die Rechte des Dateieigentuemers (owner).
Die zweite Rechtegruppe beschreibt die Rechte der Dateigruppe (group).
Die dritte Rechtegruppe beschreibt die Rechte fuer den Rest der Welt.
Vortragender: Boris Höffgen Datum: September 2003 Folie 50
Unix Terminal
Beispiel:
gennat@wra01:~$ id
uid=3483(gennat) gid=300(users)
gennat, Mitglied der Gruppe users, greift auf das Verzeichnis ~/users/nichtlesen zu:
gennat@wra01:~$ cd unix/nichtlesen/
gennat@wra01:~/unix/nichtlesen$ ls -l
Cannot access directory .: Permission denied
Zwei Beobachtungen:
1.gennat durfte das Verzeichnis betreten.
2.Er durfte den Inhalt des Verzeichnisses nicht ansehen.
Vortragender: Boris Höffgen Datum: September 2003 Folie 51
Unix Terminal
Warum?
gennat@wra01:~/unix$ ls -l
total 2
-rw-r–r– 1 gennat users 6 Feb 16 13:50 hallo_welt
d–x—— 2 gennat users 512 Feb 16 13:55 nichtlesen
UNIX vergleicht: Stimmen UID des Anwenders und UID der Datei überein? Wenn ja, gilt die erste
Rechtegruppe rwx.
Wenn nicht, vergleicht UNIX die GIDs aller Gruppen, in denen der Anwender Mitglied ist mit der GID
der Datei. Stimmt eine GID mit der GID der Datei ueberein, gelten die Rechte der zweiten
Rechtegruppe rwx.
Ansonsten gelten die Rechte der dritten Rechtegruppe rwx.
Erklärung des Beispiels oben:
Der Zugreifer hat die gleiche UID wie das Verzeichnis, auf das zugegriffen wird. Daher gelten die Rechte
der ersten Gruppe.
Aber das Verzeichnis hat die Rechte –x, das bedeutet, es kann dort hinein gewechselt werden (cd). Weil
keine Leserechte vorhanden sind, werden alle Leseversuche zurückgewiesen.
Vortragender: Boris Höffgen Datum: September 2003 Folie 52
Unix Terminal
Wir beobachten:
Das x-Recht erlaubt es, das Verzeichnis ~/unix/nichtlesen zu betreten.
Wir beobachten auch: Ein ls -l scheitert, denn zum Ansehen der Namen im Verzeichnis bräuchte der
Benutzer das r-Recht am Verzeichnis.
Wem gehört eine Datei nach dem Anlegen?
Demjenigen, der sie anlegt und der Gruppe des Verzeichnisses, in dem sie angelegt wird.
Beispiel: Ich bin gennat und bin im Verzeichnis unix. Mit dem Kommando
mkfile 1 neue_datei
lege ich eine neue Datei an. Wem gehört die Datei und welcher Gruppe gehört die Datei?
gennat@wra01:~/unix$ ls -l neue_datei
-rw——- 1 gennat users 1 Feb 16 14:06 neue_datei
Die Datei gehört gennat, weil gennat den mkfile aufgerufen hat, was die Datei angelegt hat.
Mit anderen Worten: Neue Daten gehören demjenigen, der sie erzeugt und gehören zu dem Projekt/der
Arbeitsgruppe, in deren Verzeichnis sie abgelegt werden.
Vortragender: Boris Höffgen Datum: September 2003 Folie 53
Unix Terminal
Grundsätzlich gilt:
Neue Dateien haben nach dem Anlegen die Rechte rw-r–r–.
Neue Verzeichnisse haben nach dem Anlegen die Rechte rwx-r-xr-x.
Aber das oben gezeigte Beispiel ist direkt eine Ausnahme:
Kopiert man aber diese Datei mittels cat neue_datei > kopierte_datei, sieht man den oben genannten
Grundsatz.
gennat@wra01:~/unix$ ls -l
total 4
-rw-r–r– 1 gennat users 6 Feb 16 13:50 hallo_welt
-rw-r–r– 1 gennat users 1 Feb 16 14:11 kopierte_datei
-rw——- 1 gennat users 1 Feb 16 14:06 neue_datei
d–x—— 2 gennat users 512 Feb 16 13:55 nichtlesen
Ändern von Dateiattributen
Man kann den Mode und die Gruppe einer Datei nachträglich ändern. Man kann den Eigentümer eine
Datei nachträglich nicht einfach ändern, sondern nur mit einem Trick.
Vortragender: Boris Höffgen Datum: September 2003 Folie 54
Unix Terminal
Die Gruppenzugehörigkeit einer Datei kann mit dem Kommando
chgrp gruppenname datei1 datei2 datei3 …
geändert werden. Man kann eine Datei nur Gruppen zuordnen, in denen man Mitglied ist.
gennat@wra01:~/unix$ chgrp sys kopierte_datei
you are not a member of group sys
Das Beispiel zeigt, dass man Dateien in Verzeichnisse anderer Projekte kopieren kann, wenn die Rechte
dies erlauben. Ich kann aber eine Datei nicht nachträglich fremden Projekten zuordnen. Die
Gruppenzugehörigkeit kann nur durch den Eigentümer einer Datei (oder den Systemverwalter)
geaendert werden.
Die Rechte einer Datei können mit dem Kommando chmod angepasst werden. Die Anpassung kann nur
durch den Eigentümer (oder den Systemverwalter) vorgenommen werden.
Vortragender: Boris Höffgen Datum: September 2003 Folie 55
Unix Terminal
Die Zuweisung von Rechten kann numerisch erfolgen:
r == 4 644 entspricht also rw-r–r–
w == 2 755 entspricht also rwxr-xr-x
x == 1 700 entspricht also rwx——
Die Zuweisung von Rechten kann symbolisch erfolgen
u Userrechte beeinflussen
g Gruppenrechte beeinflussen
o Other (Rest der Welt) Rechte beeinflussen
+ Rechte hinzufuegen
- Rechte nehmen
= Rechte wie angegeben setzen
r R-Recht
w W-Recht
x X-Recht
Vortragender: Boris Höffgen Datum: September 2003 Folie 56
Unix Terminal
Also: chmod g+w datei gibt der Datei datei das w-Recht für die Gruppe.
chmod o-x datei nimmt der Datei datei das x-Recht für den Rest der Welt.
chmod ug+rwx datei gibt der Datei datei Rechte rwx für den User und die Gruppe.
Der Eigentümer eine Datei kann den Eigentümer eine Datei ändern, aber nur auf sich selbst (also
gar nicht).
gennat@wra01:~/unix$ chown hoeffgen kopierte_datei
kopierte_datei – Operation not permitted
gennat@wra01:~/unix$ chown gennat kopierte_datei
gennat@wra01:~/unix$ ls -l kopierte_datei
-rwxrwxrwx 1 gennat users 1 Feb 16 14:11 kopierte_datei
Vortragender: Boris Höffgen Datum: September 2003 Folie 57
Unix Terminal
Man kann also nicht Eigentümer einer fremden Datei werden und man kann Dateien selbst nicht
verschenken. Man kann jedoch Eigentümer einer Kopie einer fremden Datei werden.
In der Manual-Page zu chown steht:
However, if the variable restricted_chown is enabled (see intro(2) an
systune(1M)) then only the superuser can change the owner of the
file, because if users were able to give files away, they could
defeat the file space accounting procedures. The owner of the file
may change the group ownership only to those groups of which he is
a member.
Programmieren
Shell Scripts
weitere Shell Komandos
Shell Variablen
cc (c Compiler)
c++ (c++ Compiler)
perl (Perl V 5.001 ist installiert)
u.v.a.
Vortragender: Boris Höffgen Datum: September 2003 Folie 5
Inhalt
Drucken
Drucken im HRZ
Layout
latex (siehe Kurs der letzten drei Wochen oder Skripte in der Benutzerberatung)
html (siehe Kurs nä chste Woche oder www.netzwelt.com/selfhtml oder Skripte)
Konvertierungen
convert
sog. 2 tools: z.B. pdf2ps, ps2ascii, html2ps
Details
zur Einwahl in die Uni Wuppertal oder anderen ISP mit Modem
zur Shell
zu Programmen
Vortragender: Boris Höffgen Datum: September 2003 Folie 6
Unix Terminal
Rechteverwaltung
Was bedeuten die Zugriffsrechte?
- Normale Datei, Mode hat Dateibedeutung
d Verzeichnis, Mode hat Verzeichnisbedeutung
l Querverweis (link) auf eine andere Datei, Mode ist bedeutungslos
UNIX kennt 3 Zugriffsrechte mit den Buchstaben
r Rechte, den Inhalt der Datei zu lesen Recht, die Namen im Verz. zu sehen.
w Recht, den Inhalt der Datei zu ä ndern / Recht, Einträ ge im Verzeichnis oder die Laenge
der Datei zu ä ndern, also zu erzeugen oder zu löschen.
x Recht, die Datei auszuführen / Recht, Dateien im Verzeichnis zu verwenden Recht, das
Verzeichnis zu betreten.
Die erste Rechtegruppe beschreibt die Rechte des Dateieigentuemers (owner).
Die zweite Rechtegruppe beschreibt die Rechte der Dateigruppe (group).
Die dritte Rechtegruppe beschreibt die Rechte fuer den Rest der Welt.
Vortragender: Boris Höffgen Datum: September 2003 Folie 7
Unix Terminal
Rechteverwaltung
chmod (change file access permissions) ä ndere Zugriffsrechte
Syntax: chmod [Optionen]… Mode … Datei…
Wichtige Modi:
Numerisch
4 = lesen, 2 = schreiben, 1 = ausführen
In drei Oktalzahlen angegeben
Symbolisch
u = user, g = gruppe, o = other
Verknüpfung – + =
Rechte: r w x
Vortragender: Boris Höffgen Datum: September 2003 Folie 8
Unix Terminal
Umleitungen zu Dateien oder Programmen
Einleitung
Datenströme (Streams): Alle Datei Ein- und Ausgaben sind Datenströme, auch die
Tastatur und der Monitor stellen solche dar.
3 Streams sind grundsä tzlich geöffnet: standard input, standard output und
standard error.
Man kann Datenströme entsprechend umleiten.
Hierfür wird der Umleitungsoperator benutzt (>).
Beispiel:
gennat wra01 ~/unix>ls -al > verzeichnis_inhalt
Hiermit wurde die Standardausgabe in eine Datei umgeleitet.
Vortragender: Boris Höffgen Datum: September 2003 Folie 9
Unix Terminal
Das Inhaltsverzeichnis sieht nun folgendermaßen aus:
gennat wra01 ~/unix>ls -al
total 11
drwx—— 3 gennat users 512 Feb 19 14:26 .
drwx—— 27 gennat users 1536 Feb 19 10:49 ..
-rw-r–r– 1 gennat users 6 Feb 19 10:41 hallo_du
-rw-r–r– 1 gennat users 6 Feb 16 13:50 hallo_welt
-rwxr–r– 1 gennat users 1 Feb 16 14:11 kopierte_datei
-rw——- 1 gennat users 1 Feb 16 14:06 neue_datei
drwx—— 2 gennat users 512 Feb 16 13:55 nichtlesen
-rw-r–r– 1 gennat users 529 Feb 19 14:26 verzeichnis_inhalt
gennat wra01 ~/unix>cat verzeichnis_inhalt
total 9
drwx—— 3 gennat users 512 Feb 19 14:26 .
drwx—— 27 gennat users 1536 Feb 19 10:49 ..
-rw-r–r– 1 gennat users 6 Feb 19 10:41 hallo_du
-rw-r–r– 1 gennat users 6 Feb 16 13:50 hallo_welt
-rwxr–r– 1 gennat users 1 Feb 16 14:11 kopierte_datei
-rw——- 1 gennat users 1 Feb 16 14:06 neue_datei
drwx—— 2 gennat users 512 Feb 16 13:55 nichtlesen
-rw-r–r– 1 gennat users 0 Feb 19 14:26 verzeichnis_inhalt
Der Befehl cat gibt den Dateiinhalt auf dem Bildschirm aus.
Syntax: cat [Datei]
Vortragender: Boris Höffgen Datum: September 2003 Folie 10
Unix Terminal
Weitere Umleitungsmöglichkeiten:
Umleitung der Standard Fehlerausgabe: 2>
Umleitung der normalen und Fehlerausgabe: &>
Anhä ngen an eine vorhandene Datei:
Mit >> kann man die Daten eines Streams an eine vorhandene Datei anhä ngen
Beispiel:
Alle Textdateien in einem Verzeichnis in eine Datei schreiben:
cat *.txt >> komplett
Auch hier gilt:
Anhä ngen der Standard Fehlerausgabe an eine Datei: 2>>
Anhä ngen der normalen und Fehlerausgabe an eine Datei: &>>
Vortragender: Boris Höffgen Datum: September 2003 Folie 11
Unix Terminal
Eingabeumleitung:
Was mit der Ausgabe möglich ist, sollte auch für Eingaben zutreffen.
Man benutze < Beispiel:
Ein Programm, was von der Standardeingabe liest, ist read_stdin.pl
Syntax: read_stdin.pl [pattern]
Es gibt alle Zeilen aus, in denen [pattern] vorkommt
./read_stdin.pl hallo < verzeichnis_inhalt
Weiteres Beispiel: cat < [Datei]
Weiterhin gibt es noch:
Shellscript-Dokumente: <<
Benutzung des selben für ein Komando als Standardeingabe
Verdoppelung von Streams: <& und >&
Vortragender: Boris Höffgen Datum: September 2003 Folie 12
Unix Terminal
Unerwünschte Ausgaben verwerfen:
Wenn man z.B. die Fehlerausgabe nicht will, kann man sie in einer
Senke verschwinden lassen
Ultimative Senke in UNIX ist /dev/null
Beispiel:
ls -Ral 2> /dev/null oder
mv a.txt /dev/null
Womit ist der 2 Ausdruck identisch?
Vortragender: Boris Höffgen Datum: September 2003 Folie 13
Unix Terminal
Pipelines
Eingabeumleitung nicht an Streams oder Dateien, sondern an
Programme, nennt sich pipelining.
Der Pipelineoperator ist | (Pipe).
Beispiel:
ls -al | grep [pattern]
Dies gibt, wie im vorigen Beispiel, alle Zeilen aus, in denen [pattern] vorkommt
Zu grep (search a file for a pattern) durchsucht Dateien nach
Ausdrücken
Syntax: grep [Optionen] [pattern] [Datei]
wobei Datei auch durch einen Eingabestream ersetzt werden kann.
Vortragender: Boris Höffgen Datum: September 2003 Folie 14
Unix Terminal
Pipelines
Durchsuchen eines Verzeichnisses und deren Unterverzeichnisse
nach einer bestimmten Datei:
ls -R | grep [pattern]
Allerdings hilft dieses Beispiel nicht viel, da hier keine Pfadangaben mitgeliefert
werden.
find * | grep [pattern]
Ist besser, da find alle Dateien und Unterdateien mit Pfadfangaben ausgibt.
Find gibt aber viele Fehler aus, falls Verzeichnisse nicht lesbar sind, das kann man
so umgehen:
find * | grep [pattern] 2> /dev/null
Vortragender: Boris Höffgen Datum: September 2003 Folie 15
Unix Terminal
Pipelines
Durchsuchen eines Verzeichnisses und deren Unterverzeichnisse
nach einer Datei, die ein bestimmten Ausdruck enthä lt :
Mit grep kann man im aktuellen Verzeichnis auch Dateien nach pattern
durchsuchen.
grep [pattern][datei]
Das hilft aber nicht viel, wenn man rekursiv einen ganzen Verzeichnisbaum
durchleuchten will. Hierfür kann man zusä tzlich xargs verwenden.
xargs (build and execute command lines from standard input)
Syntax: xargs [options] [ command [initial-arguments] ]
Wichtige Schalter:
-i[replstr] Ersetzungsausdruck wird direkt nach dem Schalter i angegeben
Vortragender: Boris Höffgen Datum: September 2003 Folie 16
Unix Terminal
Pipelines
Beispiel zu xargs
find * | xargs -iRepl grep [pattern] Repl Repl 2> /dev/null
Hier fä ngt Unix an, Spaß zu machen :-)
Der Ausdruck Repl kann auch ein beliebig anderer sein. Das doppelte Vorkommen
am Ende dient dazu, nicht nur die gefundene Zeile durch grep auszugeben,
sondern auch den Pfad und Dateinamen, in dem gefunden worden ist.
Vortragender: Boris Höffgen Datum: September 2003 Folie 17
Unix Terminal
Tastatur besser nutzen
Grundlagen: die bash bietet eine Reihe von Unterstützungen zum
Arbeiten an der Tastatur. Folgende MUSS man beherschen:
[TAB] Ergä nzung der bisherigen Eingabe zu einem eindeutigen Programm oder
Datei, falls doppeldeutig, Ergä nzung soweit, wie Eindeutigkeit besteht.
[Cursor hoch] und [Cursor runter] Blä ttern in der Bash History
[Strg] + D End Of File (EOF) generieren, falls ein Kommando dies wünscht
Aus der Prozeßsteuerung kommt dazu noch:
[Strg] + C laufenden Prozeß beenden
[Strg] + Z laufenden Prozeß stoppen -> mit bg kann man diesen im Hintergrund
weiterlaufen lassen
Vortragender: Boris Höffgen Datum: September 2003 Folie 18
Unix Terminal
Tastatur besser nutzen
Für die man Benutzung (Manual Pages):
q: für Quit -> Verlassen
/Suche: dient zur Suche nach ”Suche”
Für die info Benutzung:
[Strg] + x und [Strg] + c : Verlassen (das gleiche gilt auch für emacs)
Vortragender: Boris Höffgen Datum: September 2003 Folie 19
Unix Terminal
Tastatur besser nutzen
Mehr ins Detail gehen folgende Tastatur Kombinationen
[STRG] + a : zum Anfang der Kommandozeile
[STRG] + e : zum Ende der Kommandozeile
[ALT] + f : ein Wort vorwä rts
[ALT] + b : ein Wort rückwä rts
[STRG] + k : bis zum Zeilenende ausschneiden
[STRG] + u : vom Zeilenanfang bis zum Cursor ausschneiden
[STRG] + y : Einfügen
Vortragender: Boris Höffgen Datum: September 2003 Folie 20
Unix Terminal
Tastatur besser nutzen
History benutzen
[STRG] + r : inkrementelles Suchen rückwä rts
Und jetzt die Maus sinnvoll einsetzen
Mit der linken Maustaste einen Text markieren
Mit der mittleren Maustaste den Text einfügen
Vortragender: Boris Höffgen Datum: September 2003 Folie 21
X Terminal
Grundlagen
Grafische Ausgabe erfolg auf X Terminals
Im Prinzip ist es genauso aufgebaut, wie Textausgabe
Jeder Rechner mit Grafikausgabe hat einen eigenen X Server
Der X Server lehnt Grafikausgaben von fremden Rechnern ab, es sei denn …
Grafikausgabe erlauben
Mit dem Befehl xhost kann man Ausgaben von fremden Rechnern erlauben
Syntax: xhost [+/-] [Rechnername]
Beispiel:
xhost +wra01 (Ausgabe von der wra01 erlauben)
xhost +wra01 (Ausgabe von allen Rechnern erlauben)
xhost +wra01 (Ausgabeerlaubnis allen Rechnern entziehen)
Vortragender: Boris Höffgen Datum: September 2003 Folie 22
X Terminal
Grafikausgabe auf anderen Rechner umlenken
Mit der Bash erfolgt das setzen des Ausgabedisplays folgendermaßen:
export DISPLAY=topspin.uni-wuppertal.de:0
export schreibt in die Shell Umgebungsvariablen das DISPLAY entsprechend um.
Am Ende steht :0, was das erste Display auf dem entsprechenden Rechner ist.
Andere Werte nur sinnvoll bei Rechnern mit mehreren Bildschirmen, o.ä .
Mit der tcsh erfolgt das setzen des Ausgabedisplays folgendermaßen:
setenv DISPLAY=topspin.uni-wuppertal.de:0
Zu den Befehlen setenv und export wird am Ende zu den ”Shell Details” noch
mehr gesagt.
Vortragender: Boris Höffgen Datum: September 2003 Folie 23
X Terminal
Window Manager
Grundsä tzlich administriert ein Window Manager die grafische Ausgabe.
Aufgaben eines Window Manager:
Fenster anbieten, skalieren, öffnen, schließen
Menüleisten anbieten
Evtl. mehrere virtuelle Bildschirme administrieren
Layout der Fenster und Menüs administrieren
u.v.m.
Um an den Rechnern des HRZ mit dem hier gezeigten Window Manager zu
arbeiten, folgendes in einer Shell ausführen:
getkde
Achtung: Dieses Skript ist noch im Beta Stadium.
Vortragender: Boris Höffgen Datum: September 2003 Folie 24
Prozeßsteuerung
Grundlagen
Jeder UNIX Rechner startet zuerst den Prozeß 0 (init, der sog. Kernel wird hier
ausgeführt), der wiederum viele Kinderproßesse aufruft. Diese Prozesse
können normale Benutzer nicht beenden.
Jeder Benutzer kann auch beliebig viele Prozesse aufrufen, die entsprechend nach
dem maßgeblichen Multitasking Richtlinien in einem Zeitscheiben Verfahren
CPU-Zeit bekommen und abgearbeitet werden.
Wenn es aussieht, dass ein Rechner hä ngt, liegt das meist an einem Prozeß, der
zu viel CPU-Zeit beansprucht.
Jeder Benutzer kann seine eigenen Prozesse administrieren. Rechte sind hier
ä hnlich den der Datei Rechte (d.h. Man kann nicht die Prozesse von anderen
Benutzern beenden).
Der Superuser (Systemadministrator) darf wieder mal alles.
Vortragender: Boris Höffgen Datum: September 2003 Folie 25
Prozeßsteuerung
Grundlagen
Wichtige Stichworte:
Es gibt: Kernel Prozesse, Benutzer Prozesse
Man kann nur die eigenen Prozesse administrieren.
Prozesse anderer sind für normale Benutzer unantastbar.
Der Superuser (Systemadministrator) hat weitergehende Prozesse.
Vortragender: Boris Höffgen Datum: September 2003 Folie 26
Prozeßsteuerung
Programme zur Prozeßsteuerung
ps (process status) zeigt die Prozesse mit ihrem Status an
Syntax: ps [Optionen]
Wichtige Schalter:
-a zeigt die Prozesse aller User
-u zeigt die Besitzer der Prozesse
-x zeigt Prozesse, die von keinem Terminal kontrol liert werden -
f zeigt zusä tzliche Informationen an
top (display top CPU processes) Prozeßtabelle anzeigen
Syntax: top [Optionen]
Wichtige Schalter:
-d [Sek] Zeit zwischen Bildschirmerneuerungen
-b Batchmodus für Ausgabe nach Standardoutput
Vortragender: Boris Höffgen Datum: September 2003 Folie 27
Prozeßsteuerung
Programme zur Prozeßsteuerung
kill (terminate a process) beendet einen Prozess
Syntax: kill [Optionen] [Prozess ID]
Wichtige Schalter:
-9 beendet einen Prozeß direkt
Die 9 ist eine Signalnummer. Folgende Signale gibt es:
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN
22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM
27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS
Normalerweise gibt man nur kill [PID] an, damit bittet man einen Prozeß höflich,
sich zu beenden. Wenn das entsprechende Programm vernünftig geschrieben
ist, speichert es Daten und beendet sich dann.
-9 nur im Notfall benutzen!
Vortragender: Boris Höffgen Datum: September 2003 Folie 28
Prozeßsteuerung
Vordergrund / Hintergrund
Man kann Programme von der Shell aus auch im Hintergrund starten, d.h. man
kann an dem Terminal weiterarbeiten, wä hrend das Programm im
Hintergrund abgearbeitet wird.
Dazu muß man das Programm mit einem & starten:
Beispiel:
find * > ~/unix/alle_dateien 2> /dev/null &
Oder man kann das Programm mit [STRG] + z stoppen. Dann ist der
entsprechende Prozeß angehalten.
Mit bg wird der Prozeß im Hintergrund weiter abgearbeitet.
Mit fg wird der Prozeß im Vordergrund weiter abgearbeitet.
Mit kill [PID des Prozesses] wird der Prozeß beendet.
Vortragender: Boris Höffgen Datum: September 2003 Folie 29
Prozeßsteuerung
Programme über das Ausloggen hinaus laufen lassen
Normalerweise werden alle Prozesse eines Benutzers mit dem Ausloggen
beendet.
Wenn man Programme über dem Ausloggen hinaus noch ausgeführt werden sollen,
muß man diese mit einem entsprechenden Kommando starten:
nohup (run a command immune to hangups and quits) lä ßt ein
Programm die Signale SIGHUP SIGINT SIGQUIT und SIGTERM
ignorieren
Syntax: nohup [Kommando mit allen Optionen]
Vortragender: Boris Höffgen Datum: September 2003 Folie 30
Programme
Grundlagen Netzwerk der Uni Wuppertal
Namenskonventionen
Benutzername, Account
meier , meier2 , wa0010
wird vom Systemadministrator vergeben.
Rechnername, host name
wres3, wrds10, wminf1
werden an der BUGH vom HRZ vergeben
Vortragender: Boris Höffgen Datum: September 2003 Folie 31
Programme
Aufbau:
1. “Wuppertal”
2. Fachbereich/zentrale Einrichtung
r HRZ
c Chemie
b Bautechnik
e Elektrotechnik
m Mathematik
p Physik
t Maschinentechnik
s Sicherheitstechnik
y Erziehungswissenschaften
3. Rest: individuelle Kennung
(Wird nicht mehr so streng gehandhabt!)
Vortragender: Boris Höffgen Datum: September 2003 Folie 32
Programme
Domä ne, Subdomä ne, domain
uni-wuppertal.de
urz.uni-wuppertal.de
chemie.uni-wuppertal.de
Kompletter Rechnername, Knotenname
wres1.urz.uni-wuppertal.de
wmwap1.math.uni-wuppertal.de
Benutzer an einem Rechner
meier@wres3.urz.uni-wuppertal.de
peter.endebrock@rrzn.uni-hannover.de
monika@scientific.de
Falls im gleichen Subnetz:
meier@wres3
Vortragender: Boris Höffgen Datum: September 2003 Folie 33
Programme
Internet-Adressen (IP-ID) Weltweit eindeutig!
132.195 = Uni-Wuppertal.DE
Knotenadressen:
132.195.20.215 = wres1.urz.uni-wuppertal.de
132.195.20.211 = wres2.urz.uni-wuppertal.de
132.195.20.212 = wres3.urz.uni-wuppertal.de
132.195.20.231 = wrstud.urz.uni-wuppertal.de
132.195.7.31 = wminf1.math.uni-wuppertal.de
132.195.12.15 = wtin1.mtech.uni-wuppertal.de
132.195.83.1 = went1.elektro.uni-wuppertal.de
Zuordnung erfolgt über
1. Lokaler Rechner (/etc/hosts)
2. Name-Server (NIS, SGI: nameserv)
Rein tabellarisch (kein eindeutiger Algorithmus)
Vortragender: Boris Höffgen Datum: September 2003 Folie 34
Programme
Netz-Benutzung ohne es zu merken … Drucken
NFS (network file system)
mount … (UNIX: nur für root!)
idmnt … (MS-DOS)
X Windows “netztransparent”
Vortragender: Boris Höffgen Datum: September 2003 Folie 35
Programme
ausdrückliche Netz-Benutzung
telnet
ssh
ftp
xftp
Browser
netscape
lynx
KDE Konqueror
Mail
mail
kmail
Vortragender: Boris Höffgen Datum: September 2003 Folie 36
Programme
ftp – Internet file transfer program
Syntax: ftp [Optionen] Rechnername
Normalerweise keine Optionen notwendig.
Login wie ‘normal’, z.B. bei telnet.
Wichtige Kommandos im ftp:
cd – change directory auf entfernten Rechner
lcd – change directory auf lokalem Rechner
put [Datei] / mput [Dat*] – Daten zum entfernten Rechner übertragen
get [Datei] / mget [Dat*] – Daten vom entfernten Rechner holen
bin / asc – in binä ren / textbasierten Modus umschalten
Nä heres verrä t die Manual Page man ftp
xftp ist ein grafisches Äquivalent zu ftp
Vortragender: Boris Höffgen Datum: September 2003 Folie 37
Programme
telnet – user interface to the TELNET protocol
Syntax: telnet [Optionen] Rechnername [Port]
Normalerweise keine Optionen notwendig.
Universell einsetzbar, sogar unter Windows in der Standardkonfiguration
vorhanden.
Unsicher, da keine Verschlüsselung der Übertragung vorgenommen wird.
ssh – secure shell client (remote login program)
Syntax: ssh [Optionen] Rechnername
Wichtige Schalter:
-l Login Name
Nicht überall installiert (z.B. auf HRZ Rechnern), daher noch keine weite
Verbreitung.
Sicher bis sehr sicher, da Verschlüsselung.
Programme
Browser
netscape
Starten Sie netscape bitte folgendermaßen: netscape &
Falls ein lock-File noch existiert, bitte folgendermaßen löschen:
rm ~/.netscape/lock
lynx
Ein textbasierter Browser. Sehr schnell, aber ohne Grafik.
Etwas Gewöhnungsbedürftig, es lohnt sich aber.
KDE Konqueror
Einer der neuesten Browser, die es gibt (erschien mit KDE 2.0).
Dürfte in Zukunft ernste Konkurrenz zu den Platzhirschen werden.
Mail
mail
kmail
Vortragender: Boris Höffgen Datum: September 2003 Folie 39
Programme
Mail
Netscape bietet auch eine Email Verwaltung an, aber hier möchte ich auch andere
Programme vorstellen:
kmail
Auch aus der KDE Familie
Kann mehrere POP-Server abfragen. Sehr flexibel.
elm
Unter Benutzerfreundlichkeit versteht man was anderes. Keine Grafikausgabe!
Wer aber aus dem Urlaub vielleicht Mails checken will, wird froh sein, daß das
Datenvolumen klein ist (habe ich 1998 (!) von Lanzarote aus gemacht!).
mail
mails von der Komandozeile bietet das schlichte mail
Syntax: mail empfaenger@dermail.de -s Subjekt < text_der_mail
Nä heres, wie immer, in der entsprechenden Manual Page.
Vortragender: Boris Höffgen Datum: September 2003 Folie 40
Programme
FS Expl*rer
Schauen Sie sich einfach mal folgende Programme an:
Midnight Commander
Starten mit: mc
KDE Konqueror
Starten mit: konqueror &
Auf Rechnern mit installiertem KDE 2.0.
Unix Cockpit
Starten mit: uc &
Vortragender: Boris Höffgen Datum: September 2003 Folie 41
Editoren
Schauen Sie sich mal folgende Editoren an:
(werden mit den gleichen Namen aus der Shell gestartet)
joe
jot
vi (kommen Sie hier wieder ohne fremde Hilfe heraus)
Und benutzen dann folgendes Programm zum editieren:
emacs / xemacs
+ sehr gutes und ’steinaltes’ Programm, mittlerweile in der Version 20 (!)
+ Syntax Highlighting und andere Features
+ wenn man lisp kann, kann man emacs auch zum Schachspielen programmieren
- wer kann schon lisp?
Grafikprogramme
gimp
gnuplot
ghostview
Vortragender: Boris Höffgen Datum: September 2003 Folie 42
Programme
Emacs – wichtige Hotkeys
Erklä rung C_x bedeutet |Strg| und gleichzeitig x
Erklä rung M_x bedeutet |Alt| und gleichzeitig x oder [Esc] und danach x
C_x C_c – beendet Emacs (wenn nichts mehr zu speichern ist)
C_x C_f – öffnet File
C_x C_s – speichert File
C_x C_w – schreibt Buffer in neues File (Eingabe des Namens)
C_x k – schließt Buffer
C_x b – wechselt Buffer
M_x apropos – ä hnliche Hilfe wie in der Shell
M_x line-number-mode – Zeigt Zeilennummern an
C_(Leertaste) – Anfangsmarkierung
C_x C_x – Endmarkierung
C_w – Markierung ausschneiden
C_y – aus Zwischenspeicher wieder einfügen
Vortragender: Boris Höffgen Datum: September 2003 Folie 43
Programme
Grafikprogramme
gimp
umfangreiches Zeichenprogramm
gnuplot
Erstellt Grafiken aus mathematischen Funktionen
ghostview
Zeigt ps Files an -> what you see is what you get
Vortragender: Boris Höffgen Datum: September 2003 Folie 44
Programmieren
UNIX und die Programmiersprache C sind ja zeitgleich und
miteinander entwickelt worden, daher bietet sich UNIX natürlich
zum programmieren an.
Zuerst werden wir aber Shell Scripts behandeln.
Vortragender: Boris Höffgen Datum: September 2003 Folie 45
Programmieren
zuerst weitere Shell Komandos
ln (link files) Dateien verbinden
Syntax: ln [ -sif ] file1 [file2 ...] target
Wichtige Schalter:
-s Symbolischer Link
ln -s Quelle Ziel legt eine ’symbolische Verbindung’ zu dem Ziel an
ln Quelle Ziel legt eine ‘harte Verbindung’ zu dem Ziel an, löscht man den
Link, löscht man auch die Originaldatei. Hard Links können nicht über
Partitionsgrenzen hinaus gesetzt werden.
echo (display a line of text) gibt Text auf der Standardausgabe aus
Syntax: echo [Text]
Vortragender: Boris Höffgen Datum: September 2003 Folie 46
Programmieren
export – Schreibt angegebene Werte in die Umgebung der Shell (bash)
Syntax: export [-fn] [name[=word]]
setenv – ä ndere eine Umgebungsvariable oder füge eine hinzu
(tcsh)
Syntax: setenv name word
set – gibt alle gesetzten Umgebungsvariablen aus
Benutzung: set | grep [Gesucht]
Vortragender: Boris Höffgen Datum: September 2003 Folie 47
Programmieren
Wild Cards
Entsprechende Zeichen werden durch die Shell expandiert, d.h. mit vorhandenen
Programmen und Einträ gen im Verzeichnis verglichen und ersetzt. Folgende
Substitutionen sind möglich:
* beliebige Zeichenfolge (auch leer)
? einzelnes Zeichen
[abc] bestimmte Zeichen (hier: a, b, c)
[a-c] bestimmte Zeichen (hier: a, b, c)
[!a-c] bestimmte Zeichen nicht (hier: a, b, c)
Nur Bourne Shell (sh)!
Achtung! .-Dateien z.B. .login werden nicht mit erfaßt.
Fazit: Die Zeichen * ? [ ] / sollten nicht in Dateinamen verwendet werden!
Vortragender: Boris Höffgen Datum: September 2003 Folie 48
Programmieren
Shell Variablen
In Shells können Variablen definiert werden:
Name=[Wert]
In Ausdrücken wird vor dem Variablennamen ein $ gestellt:
echo $Name
Strukturen
Außerdem kann man noch Schleifen und Kontrollstrukturen
if Liste then Liste [elif Liste then Liste ...] [else Liste] fi
for Name [in Wort] do Liste done
while Liste do Liste done
Eine gute Anleitung zu den o.g. Strukturen findet man unter
http://www.linux-ag.de/linux/LHB/
(Linuxhandbuch der Linux AG)
Vortragender: Boris Höffgen Datum: September 2003 Folie 49
Programmieren
Shell Scripts
Ein Shellscript ist eine Textdatei, die Befehle für die Shell enthä lt. Um ein Shellscript zu
erstellen, gibt man mit einem Editor (z.B. dem vi) eine Befehlsfolge ein und speichert
diese in einer Datei ab.
Befehle können sich über mehrere Zeilen erstrecken. Mehrere Befehle in einer Zeile
werden durch das Zeichen ; getrennt.
Mit dem Befehl chmod +x dateiname
teilt man dem System mit, daß es sich bei dateiname um eine ausführbare Datei
handelt.
Man startet das in der Datei dateiname abgelegte Script in einer eigenen Subshell.
Um Verwechslungen zu vermeiden, wird in der ersten Zeile von Shellscripten durch einen
speziellen Kommentar vermerkt, daß der folgende Inhalt durch die Bourne-Shell /
bin/sh abzuarbeiten ist.
Beispiel:
#!/bin/sh
# Kommentare werden durch dieses Zeichen kenntlich gemacht
echo Dateiverzeichnis von $(pwd): # Fortsetzungszeile
ls -la
Vortragender: Boris Höffgen Datum: September 2003 Folie 50
Programmieren
cc (c Compiler)
Syntax: cc [Optionen] programm.c [-o programm]
Wichtige Schalter
-o spezifiziert die Ausgabedatei (sonst a.out)
-lm linkt die mathematische Bibliothek (wenn #include
Programmieren
PERL
Im Gegensatz zu C wird Perl erst zur Laufzeit übersetzt. Das heißt erst bein Programmstart
wird das Perl-Programm überstzt.
Man kann auch Perl Kommandos auf der Komandozeile ausführen:
perl print -e ‘(”Hallo Welt.n”);’
Ein Perl Programm könnte so aussehen (Beispiel read_stdio.pl):
#!/usr/bin/perl
while (
if (/$ARGV[0]/){print}
}
Vortragender: Boris Höffgen Datum: September 2003 Folie 52
Drucken im HRZ
Ausführlichere Anleitungen findet man auf den HRZ-Seiten zum Thema Peripherie.
Zum Drucken braucht man eine PostScript-Datei. (Erstellt auch Netscape)
lpr -Pps [datei.ps] Drucken
lpq -Pps Druckauftrag in Warteschlange anschauen
lprm -Pps [job-nr] Druckauftrag aus Warteschlange
löschen
Weitere wichtige Punkte zum Drucken:
Dateien größer als 8 MB mit symbolischen Link drucken: lpr -Pps -s [datei.ps]
Viele kleine (einseitige Dokumente) drucken: bitte nicht einzeln !!!
Zusammenfassen mit: cat *.ps > alle.ps
Wenn man farbig druckt, vorher genau informieren, da kostenpflichtig ->
Benutzerberatung!
Vortragender: Boris Höffgen Datum: September 2003 Folie 53
Layout
latex
siehe Skripte in der Benutzerberatung
Grundsä tzlich lä uft eine Erstellung eines Latex-Dokumentes
folgendermaßen ab
Mit emacs dok.tex erstellen
Mit dem Befehl latex dok.tex kompilieren
Mit dem Befehlxdvi dok.dvi das neu erstellte Dokument anschauen
Zum ausdrucken muß die dvi-Datei umgewandelt werden:
dvips dok.dvi -o dok.ps
Drucken mit lpr -Pps dok.ps
html
siehe Kurs nä chste Woche oder
www.netzwelt.com/selfhtml
oder Skripte in der Benutzerberatung
Vortragender: Boris Höffgen Datum: September 2003 Folie 54
Konvertierungen
convert
Schauen Sie sich hierzu die Manual Pages an.
sog.2 tools
Sinnvoll arbeiten kann man mit folgenden Tools:
pdf2ps
ps2ascii
html2ps
a2ps
Für weitere Informationen schauen Sie sich die Manual Pages an.





Hey, danke! Das ist ja was richtig praktisches. Habe gleich mal ein fettes Bookmark gesetzt.
coole sache! thx alot