
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).