Kurzeinführung in UNIX

Autor: Dr. Burkhard Kirste. 07.05.1993

Hinweis:
Zwei ausführlichere PostScript-Dokumente findet man unter Einführung in Unix und Unix-Kurs (einschließlich C-Programmierung). Weiterführende Literatur zu Unix findet sich hier. Außerdem sei auf zwei Artikel zu Shell Scripts verwiesen: Borne Shell (sh) Scripts bzw. C-Shell (csh, tcsh) Scripts.

UNIX ist ein Multitasking-Multiuser-Betriebssystem; verschiedene Varianten sind in Gebrauch (z.B. System V Release 3, System V Release 4, BSD). Spezielle Varianten werden hier wie folgt bezeichnet:

IRIX (SGI IRIX System V.4, Release 5.2, im CHEMnet)
SUN4 (Sun-OS 4.1.3, auf dodecan),
AIX3 (AIX 3.2, auf IBM-RS/6000, ki1),
AIX2 (AIX 2.2.1, auf IBM RT 6150-125, moses),
EPIX (EP/IX 2.1.1, auf CDC-4680, fub46).

Jeder Benutzer muß sich zunächst einloggen (validieren),
login: username
Password: ...

Das Paßwort kann mit Hilfe des Befehls passwd geändert werden.

exit
verläßt die Shell bzw. bewirkt logout (Ende)
pwd
zeigt den aktuellen Verzeichnisnamen
df
zeigt die Plattenbelegung (Größenangabe in Block, ein Block hat 1024 oder 512 Byte)

Besonderheiten von UNIX-Pfadnamen (hierarchisches Dateisystem):

1) Keine Laufwerksbezeichnungen (im Gegensatz zu DOS und VMS)
2) Verzeichnisnamen werden durch den normalen Slash (/) getrennt, nicht durch einen Backslash (MS-DOS: \).
3) Wurzelverzeichnis ist /
vollständige Pfadnamen fangen mit / an, Beispiele:
/usr/local/bin/elm
/etc/hosts.equiv
4) Groß- und Kleinschreibung werden unterschieden (im Gegensatz zu DOS)
5) Ein Punkt (.) am Anfang steht bei "unsichtbaren" Systemdateien (z.B. .cshrc), Dateinamen dürfen mehrere Punkte enthalten
6) Die maximale Länge von Dateinamen beträgt 14 Zeichen bei alten Unix System V.3-Versionen, 253 Zeichen bei BSD und neuen Unix System V-Versionen.

Kommando-Optionen

werden im allgemeinen durch ein vorgestelltes "-" (Minus) gekennzeichnet (bei MS-DOS und VMS: "/"), Beispiel: ls -l

Anzeige des Verzeichnisses

(dir ist kein UNIX-Kommando, kann aber ggf. als "alias" definiert werden)

ls
zeigt die Datei- und Unterverzeichnisnamen an
ls -al
zeigt auch Systemdateien an (beginnen mit .) und macht ausführliche Angaben.

Angaben bei ls -l:

(Bsp.:

-rwxr-xr-x 1 kirste agkurreck 1127 Mar 13 18:09 .login)

ganz links: Angaben über Dateiart und Zugriffsrechte
d: Directory (-: normale Datei)
anschließend drei Dreiergruppen rwx (bzw. ---)
erste: user (Eigentümer)
zweite: group (Gruppe)
dritte: others (alle anderen)
r: Leserecht (read)
w: Schreibrecht (write)
x: Ausführungsrecht (execute)
(Anzahl der Links)
Datei-Eigner (user)
Eigentümer-Gruppe (group; SUN4: nur bei Option -g)
Datei-Größe in Byte
Datum und Zeit der letzten Änderung
Dateiname

spezielle Dateinamen, Joker (wildcards)

Eine Besonderheit bilden Dateinamen, die mit einem Punkt (.) anfangen (System-Dateien). Sie werden mit dem einfachen ls-Kommando nicht angezeigt und vom Joker * nicht erfaßt (man müßte dafür .* angeben). Der Joker * zeigt ansonsten alle Dateien an (nicht *.* wie unter DOS), ? steht für ein beliebiges Zeichen. * und ? lassen sich mit vorgegebenen Zeichen kombinieren, z.B. *.c (alle C-Quelldateien).

Hintergrund-Prozesse starten

durch Anhängen des "&"-Zeichens an die Kommandozeile, z.B.: xclock &

Hilfestellungen

man kommando
klassische Unix "Manual Page" mit einer ausführlichen Beschreibung von kommando und Optionen
whatis kommando
Kurzbeschreibung von kommando
apropos ausdruck
sucht in den Überschriften nach ausdruck
kommando -h
zeigt bei einigen (!) Kommandos die Optionen

Anm.: systemspezifisch oder lokal gibt es weitere spezielle Hilfesysteme, z.B. "insight" und "showcase" (SGI), "Mosaic", "help", "info" (GNU Emacs Info), "infos".

Weitere wichtige UNIX-Kommandos

cd zielverzeichnis
change directory (Verzeichnis wechseln)
cd ..
zum nächsthöheren Verzeichnis wechseln
cd
in das "Home Directory" wechseln
cat
ASCII-Texte ohne Pause anzeigen (wie "type" bei DOS)
more
(oder besser:)
less
seitenweise Anzeige von ASCII-Texten, weiterblättern mit "Space" (Leertaste), Hilfe mit "h"; "less" beenden mit "q". (AIX2: ursprünglich nur "pg" implementiert)

cp quelldatei zieldatei
cp quelldatei zielverzeichnis
kopiert eine Datei (Hinweis: soll eine Datei von woanders in das aktuelle Verzeichnis kopiert werden, so ist für das Zielverzeichnis ein Punkt (.) anzugeben)
mv fname1 fname2
eine Datei umbenennen (wie "ren" bei DOS)
mv fname verz
eine Datei in ein anderes Verzeichnis verschieben
rm -i dateiname
löscht eine Datei (mit Sicherheitsabfrage)
rm dateiname
löscht eine Datei (ohne Sicherheitsabfrage)
mkdir verzname
legt ein Verzeichnis an
rmdir verzname
entfernt ein leeres (!) Verzeichnis

who
zeigt alle eingeloggten Benutzer an
rwho
zeigt alle eingeloggten Benutzer auf dem UNIX-Netz (falls implementiert)
ps -ef
(Unix V, IRIX, AIX) zeigt alle Prozesse an
ps -aux
(BSD, SUN4) zeigt alle Prozesse an

man command
(nicht auf moses) Beschreibung des Kommandos

cc ...
Aufruf des C-Compilers
gcc ...
Aufruf des GNU-C-Compilers (ANSI-C)
fcc ...
(nur AIX2) Aufruf des C-Compilers (floating point)
f77 ...
Aufruf des Fortran 77-Compilers
ff77 ...
(nur AIX2) Aufruf des Fortran 77-Compilers (floating point)
xlf
(nur AIX3) Fortran-Compiler
pc ...
Pascal-Compiler (nicht überall verfügbar)
make
Zieldatei aufgrund eines "Makefile" erstellen

date
System-Datum
cal 1993
Jahreskalender
cal 10 1993
Monatskalender
finger user@host
Informationen über User
whois name
(AIX2) Informationen über einen User, sonst Internet Benutzernamenservice.

mail
eingegangene E-Mail lesen (? liefert Hilfe)
mail -f
gespeicherte Mails aus Folder abrufen
mail user
lokale Mail (am selben Host) verschicken (Ende der Texteingabe: (Enter).(Enter) oder Ctrl-D)
mail user@host
Mail an entfernten Rechner schicken
elm
komfortablere Mail-Utility, arbeitet i.allg. mit " vi"

ASCII-Texteditoren

vi
Standard-Bildschirmeditor für UNIX-Systeme
emacs
Emacs oder Micro-Emacs
pico
einfach zu bedienender Editor (nicht überall verfügbar)
e
(AIX2) Editor INed, speziell für AIX

(Vor Aufruf eines Editors muß man sich über die jeweiligen Tastatur-Steuerungsaufrufe informieren!)

Umlenkung der Ein- und Ausgabe, Pipes

Umlenkung der Eingabe: < input

Umlenkung der Ausgabe: > output

Umlenkung der Ausgabe, Anhängen an vorhandene Datei: >> output

Beispiel: sort < mein.txt > sort.txt

Pipe ("|"): die Ausgabe eines Kommandos wird der Eingabe des folgenden Kommandos übergeben,

Beispiel: ls -l |more

Shells (Kommandozeilen-Interpretierer)

sh
Bourne-Shell (relativ primitiv; für Scripts [Prozeduren])
ksh
Korn Shell (nicht überall implementiert)
csh
C-Shell, bietet "history" und "alias" (Voreinstellungen in .cshrc)
tcsh
Erweiterung der csh (u.a. Kommando- und Dateinamen-Komplettierung mit "TAB", history über "Cursor-nach-oben")
bash
Bourne-Again SHell (nicht überall implementiert)

Arbeiten mit dem Netzwerk

rlogin host
interaktive Sitzung (login) an anderer Unix-Maschine
telnet [host]
interaktive Sitzung (login) an anderer Maschine
ftp [host]
Dateiübertragung
rcp
(remote copy) Dateiübertragung (nur Unix)

Zusammenstellung wichtiger UNIX-Kommandos

(Vergleich mit anderen Betriebssystemen; (csh) Kommandos der C-Shell (tcsh), [...] optional)

man command
Beschreibung des Kommandos (VMS help)
ls [-l] [ file]
Liste der Directory-Einträge (DOS, VMS dir)
cp [-i] fil1 fil2
Kopiere fil1 nach fil2 (DOS, VMS copy)
mv quelle ziel
Datei umbenennen (DOS ren, VMS rename) bzw. verschieben
rm [-i] file
Entferne Datei file (DOS, VMS del)
pwd
Aktuelles Verzeichnis anzeigen (VMS show def)
cd dir
Directory wechseln (DOS cd, VMS set def)
mkdir dir
Directory anlegen (DOS md, VMS crea/dir)
rmdir dir
Directory entfernen (DOS rd)
cat file
Textdatei anzeigen (DOS, VMS type)
more file
Textdatei seitenweise anzeigen (VMS type/page)
less file
(verbessertes "more")
find file -print
Finde eine Datei
diff fil1 fil2
Unterschiede zwischen fil1, fil2 (VMS diff)
grep string file
Suche in file nach string (VMS search)
vi file
Editiere file (vorher vi-Kommandos lernen!)
ln [-s] fil1 fil2
[symbolischer] Link fil1 mit fil2 (VMS assign)
chmod nnn file
Zugriffsrechte ändern (VMS set prot)
umask nnn
(csh) Default-Rechte setzen (VMS set prot/def)
cc [...] file.c
C-Compiler aufrufen (VMS cc)
file
ausführbares Programm starten (VMS run file)
file &
Programm als Hintergrundprozeß starten
time file
Programm starten, CPU-Zeit stoppen
^C
(csh, Ctrl-C) Programm beenden (DOS, VMS ^C)
^Z
(csh, Ctrl-Z) Programm vorübergehend stoppen (VMS ^Y)
fg
(csh) Programm in den Vordergrund holen (VMS continü)
bg
(csh) Programm im Hintergrund laufen lassen
jobs
(csh) Information über Hintergrund-Prozesse
kill [-...] pid
Prozeß beenden (VMS stop/id)
exit
Shell oder Skript beenden (VMS exit, logout)
alias nam command
(csh) "Alias" definieren (VMS :=, =)
env
Umgebungsvariablen anzeigen (VMS show logical)
setenv ENVPAR value
(csh) Umgebungsvariable setzen
set param=value
(csh) Shell-Variable setzen (DOS set, VMS :=, =)
echo $param
Variable anzeigen (VMS sho symbol)
echo string
Gib string aus (DOS echo, VMS write)
passwd
Ändere das Paßwort (VMS set password)
telnet host
Interaktives Login auf host (VMS set host, telnet)
ftp host
Dateitransfer (VMS ftp, copy host::)
netstat
Netzwerk-Nutzung (VMS sho net)
stty
Terminaleinstellungen (VMS set term)
date
Datum und Zeit anzeigen (VMS show time)
who
Benutzer dieses Systems (VMS sho user/node)
rwho
Benutzer entfernter Systeme (VMS sho user)
ps
Prozeß-Informationen (VMS show system)
df
Information über Dateisysteme (VMS sho dev d)
lpr -Pque file
Drucke file auf Queue que (VMS print/que=)
lpq
Drucke Warteschlangen-Status (VMS sho que/dev)
lp -dDest file
Drucke file auf Queue Dest (Unix V, z.B. IRIX)

Burkhard Kirste, 1994/01/19, last update 1994/08/19 (hs).