![]() |
Vorlesung "UNIX"von Prof. Jürgen Plate |
Stefanie Teufel:
Jetzt lerne ich SuSE Linux
Verlag Markt & Technik
David Pitts, Bill Ball:
Linux Kompendium
Verlag Markt & Technik
Fuhs, Hasenbein:
Linux für Windows-Anwender
dpunkt Verlag
Michael Kofler:
Linux
Verlag Addison Wesley
Jochen Hein:
Linux Systemadministration
Verlag Addison Wesley
Henze, Hondel, Müller, Kirch:
Linux Anwenderhandbuch
Lunetix
Jessica Heckman:
Linux in a Nutshell
Verlag O'Reilly
Michael Renner:
Linux für Onliner
Verlag O'Reilly
Olaf Kirch:
Linux Netzwerkadminstation
Verlag O'Reilly
Jessica Perry Hekman:
Linux in a Nutshell
Verlag O'Reilly
Rainer Krienke:
UNIX für Einsteiger
Hanser-Verlag
Peter Kuo:
UNIX Kompendium
Verlag Markt & Technik
Arne Burmeister:
Der Einstieg un UNIX
Hanser-Verlag
Levine/Young:
UNIX für Anfänger
iwt-Verlag
Abrahams/Larson:
UNIX for the Impatient
Verlag Addison-Wesley
Nemeth/Snyder/Seebass:
Systemadministration unter UNIX
Verlag Prentice-Hall
Aeleen Frisch:
Essential System Administration
Verlag O'Reilly
Helmut Herold:
UNIX-Grundlagen
Verlag Addison-Wesley
Helmut Herold:
UNIX-Shells
Verlag Addison-Wesley
Rainer Krienke:
UNIX Shell-Programmierung
Hanser-Verlag
Rosen/Rosinski/Faber:
UNIX System V Rel. 4
tewi-Verlag
Boss/Reimann:
UNIX System V
bhv Verlag
Garfinkel/Spafford:
Practical UNIX Security
Verlag O'Reilly
Zu einzelnen Spezialthemen (TCP/IP, DNS, sendmail, termcap, Internet-Server, etc.) gibt es eine breite Buchpalette vom Verlag O'Reilly. Die Bücher sind teilweise in deutscher Sprache, teils im englischen Original lieferbar.
"1969 hatte AT&T gerade die Arbeit am GE/Honeywell/AT&T-Multics-Projekt beendet. Brian und ich experimentierten zu diesem Zeitpunkt mit einer frühen Pascal-Version von Professor Niklaus Wirth vom ETH-Laboratorium in der Schweiz und waren beeindruckt von seiner Einfachheit und Mächtigkeit. Dennis hatte gerade "Der Herr der Klinge" gelesen, eine spöttische Parodie auf Tolkiens Trilogie "Der Herr der Ringe". Im Übermut beschlossen wir, Parodien zur Multics-Umgebung und zu Pascal zu verfassen. Dennis und ich waren für die Betriebsystemumgebung verantwortlich. Wir sahen uns Multics an und entwarfen ein neues System, das so komplex und kryptisch wie möglich sein sollte, um die Frustation der gelegentlichen User zu maximieren. Wir nannten es "Unix" in Anspielung auf "Multics" und fanden es auch nicht gewagter als andere Verballhornungen. Danach entwickelten Dennis und Brian eine wirklich perverse Pascal-Version namens "A". Als wir bemerkten, daß einige Leute tatsächlich versuchten, in "A" zu programmmieren, fügten wir schnell einige zusätzliche Fallstricke hinzu und nannten es "B", "BCPL" und schließlich "C". Wir hörten damit auf, als wir eine saubere Uebersetzung der folgenden Konstruktion erhielten:
for(;P("\n"),R--;P("|"))
for(e=C;e--;P("_"+(*u++/8)%2))
P("|"+(*u/4)%2)
Der Gedanke, daß moderne Programmierer eine Sprache benutzen würden, die solch eine Anweisung zuließ, lag jenseits unseres Vorstellungsvermögens. Wir dachten allerdings daran, alles den Sowjets zu verkaufen, um ihren Computerfortschritt 20 Jahre und mehr zu behindern. Unsere Ueberraschung war groß, als dann AT&T und andere US-Unternehmen tatsächlich begannen, Unix und C zu verwenden! Sie haben 20 weitere Jahre gebraucht, genügend Erfahrungen zu sammeln, um einige bedeutungslose Programme in C zu entwickeln, und das mit einer Parodie auf die Technik der 60er Jahre! Dennoch sind wir beeindruckt von der Hartnäckigkeit (falls nicht doch Gemeinsinn) des gewöhnlichen Unix-und C-Anwenders. Jedenfalls haben Brian, Dennis und ich in den letzten Jahren nur in Pascal und einem Apple Macintosh programmiert und wir fühlten uns echt schuldig an dem Chaos, der Verwirrung und dem wirklich schlechten Programmierstil, der von unserem verückten Einfall vor so langer Zeit ausging."
Namhafte Unix- und C-Anbieter und Benutzer, einschließlich AT&T, Microsoft, Hewlett-Packard, GTE, NCR und DEC haben vorläufig jede Stellungnahme abgelehnt. Borland International, ein führender Anbieter von Pascal- und C-Werkzeugen, einschließlich der polulären Turbo Pascal, Turbo C und Turbo C++, meinte, sie hätten diesen Verdacht schon seit Jahren gehegt und würden nun dazu übergehen, ihre Pascal-Produkte zu verbessern und weitere Bemühungen um die C-Entwicklung stoppen. Ein IBM-Sprecher brach in unkontrolliertes Gelächter aus.
(Quelle: Bernhard L. Hayes, NetNews-Gruppe)
Marcel Waldvogel <Marcel.Waldvogel@nice.usergroup.ethz.ch>
Martin P. Ibert <martini@heaven7.in-berlin.de>
Oliver Laumann <net@cs.tu-berlin.de>
Peter Funk <pf@artcom0.north.de>
Volker Lausch <volli@cs.tu-berlin.de>
Ulf Moeller <um@ulf.mali.sub.org>
Stefan Stapelberg <stefan@rent-a-guru.de>
Christopher J. Calabrese <cjc@ulysses.att.com>
Chris Siebenmann <cks@hawkwind.utcs.toronto.edu>
Casper H.S. Dik <casper@fwi.uva.nl>
Ken Keys <kkeys@ucsd.edu>
Peter da Silva <peter@nmti.com>
Michael P Urban <urban@sideshow.jpl.nasa.gov>
Drew Sullivan <drew@lethe.hades.gts.org>
Last change: 01-Jun-93
All comments are welcome.
All mail comments are subject to be included in the list without further
asking for permission. Please include a note if you object.
Does not include names that are no abbreviations, like `basename' or `sort'.
"?" indicates guesses. Types:
C command
B shell built-in
D directory
E shell/environment variable
S special file
O other
NAME TYPE MEANING
------- ------- ------------------------------------------------------------
adb C algol _or_ absolute _or_ assembly _or_ advanced debugger
ar C archiver
as C assembler
awk C Aho, Weinberger, Kernighan (program authors)
bash C Bourne again shell ("born again shell")
bin D binaries
bsh C Bourne shell (program author)
bc C better calculator
c89 C 1989 Ansi-C compiler
cal C calender
cat C concatenate
cc C C compiler
cd B change directory
chgrp C change group
chmod C change mode
chown C change owner
ci C check in
cmp C compare
co C check out
cp C copy
cpio C copy (archive files) in and out
cpp C C pre-processor
cron C Chronos (greek god)
csh C C shell
...d C daemon (e.g. inetd = internet daemon)
dbx C extended debugger (?) _or_ dbx (=extended decibel, noise reduction system)
dc C desk caculator
dd C (opinion 1) Dataset Definition (named after the OS/3x0 JCL DD command
who's syntax it also ripped off as a joke)
dd C (opinion 2) copy and convert (called `dd' because `cc' is the C compiler)
dd C (opinions 3-n) data, device, disk, dump in various combinations
dev D devices
df C disk free
diff C difference
dirname C directory name
du C disk usage
ed C editor
egrep C extended grep
elm C electronic mail
emacs C editing macros
Sometimes: Eight megabytes and constantly swapping
_or_: Escape Meta Alternate Control Shift
_or_: Emacs makes any computer slow
env B environment
eqn C equation
esac B case (reversed)
etc D et cetera
ex C extended editor (?)
expr C expression
fd S floppy disk
fd D file descriptors (as in /dev/fd)
fgrep C fixed-string grep
fi B if (reversed)
fmt C format
fsck C file system check
ftp C file transfer protocol
g... C GNU (e.g. gawk = GNU awk) (GNU = "GNU is not Unix")
getty C get tty
grep C global regular expression print (from the ed subcommand "g/RE/p"
where RE is a regular expression)
hd S hard disk
id C identity
IFS E internal field seperators
inode O index (or indirection) node
irc C internet relay chat
jsh C job-control shell
kmem S kernel memory
ksh C Korn shell (program author)
LANG E language
ld C link editor _or_ loader
lex C lexical analyser
lib D library
ln C link
lp S line printer
lpp D licensed program products
lpq C (display) line printer queue
lpr C line print
ls C list
mem S memory
mkfs C make file system
mv C move
mvdir C move directory
nawk C new awk
nfs O network file system
_or_: nightmare file system
nm C names
nn C no news
nohup C no hang-up
nroff C new roff (roff = program's ancestor)
od C octal dump
passwd C password
pcc C portable C compiler
pg C pager
pr C prepare (for printing)
ps C process status
PS1 E prompt string 1 (same for PS2 etc.)
pty S pseudo teletype
pwd C print work directory
qdaemon C queue daemon
r... S raw (e.g. rfd0 = raw floppy disk 0)
r... C remote (e.g. rsh = remote shell)
rm C remove
rmdir C remove directory
rmt S raw magnetic tape
rmt C remote magnetic tape
roff C run-off (similar program)
sdb C symbolic debugger
sed C stream editor
sh C (Bourne) shell
stty C set tty
su C superuser
tar C tape archive(r)
tbl C table
tcsh C Tenex C shell
tee C T pipe fitting (plumbing device)
telnet C telephone network
tex C tau epsilon chi
tmp D temporary
tr C translate
troff C typesetter roff
tsh C trusted shell
tty S teletype
TZ E time zone
rcp C remote copy
rcs C revision control system
rlogin C remote login
rm C remove
rmdir C remove directory
rsh C remote shell _or_ restricted shell (sometimes Rsh)
sccs O source code control system
termcap D terminal capability
terminfo D terminal information
u D user
ucb D University of California at Berkeley
uniq C unique
usr D user
uucp C unix-to-unix copy
vi C visual (from the ex subcommand "vi" that switches into visual mode)
wall C write all
wc C word count
xargs C extended arguments
yacc C yet another compiler compiler
yp O yellow pages
C is for CC, as hackers recall, while
D is for DD, the command that does all.
E is for Emacs, which rebinds your keys, and
F is for Fsck, which rebuilds your trees.
G is for Grep, a clever detective, while
H is for Halt, which may seem defective.
I is for Indent, which rarely amuses, and
J is for Join, which nobody uses.
K is for Kill, which makes you the boss, while
L is for Lex, which is missing from DOS.
M is for More, from which Less was begot, and
N is for Nice, which it really is not.
O is for Od, which prints out things nice, while
P is for Passwd, which reads in strings twice.
Q is for Quota, a Berkeley-type fable, and
R is for Ranlib, for sorting ar [sic] table.
S is for Spell, which attempts to belittle, while
T is for True, which does very little.
U is for Uniq, which is used after Sort, and
V is for Vi, which is hard to abort.
W is for Whoami, which tells you your name, while
X is, well, X, of dubious fame.
Y is for Yes, which makes an impression, and
Z is for Zcat, which handles compression.
Getting Started Commands
vi filename - normal mode <esc> - return to command mode
vedit filename - user friendly edit
Inserting
Saving and Quiting o - insert a line after cursor
O - insert a line before cursor
ZZ - save and exit i - insert test at cursor
:w - save without exiting a - insert text after cursor
:w! - save write protected file I - insert text at start of line
:q - quit editor A - insert test at eol
:q! - quit without saving
Deleting
dd - delete current line
Cursor Movement x - delete char at cursor
X - delete char before cursor
k dw - delete word
^ D - erase from cursor to eol
h < > l
v Replacing / Changing
j
R - replace till eol
Moving About r - replace one character
C - change all text after cursor
<ctrl> f - page forward cw - change a word
<ctrl> b - page back
<ctrl> d - 1/2 page forward Moving Text
<ctrl> u - 1/2 page back
w - next word To move n lines of text from A to B
b - previous word 1. move cursor to A
$ - end of line 2. ndd - delete n lines
^ - start of line (shift 6) 3. move cursor to B
G - go to end of file 4. P - pull text in after cursor
1G - go to beginning of file p - pull text in before cursor
nG - go to nth line
<ctrl> g - show position in file Copying Text
Searching To copy n lines of text from A to B
1. move cursor to A
/abc - search for string "abc" 2. nyy - yank n lines
n - find next occurrence 3. move cursor to B
N - find previous occurrence 4. P - pull text in after cursor
p - pull text in before cursor
Useful commands
. - repeat last command
u - undo last command
U - undo changes made to current line
J - join the next line to the current line
:1,$s/old/new/g - global search and replace old with new *
:.,$d - delete from current line to eof
:r filename - read filename into this vi buffer
:n,mw filename - write lines n through m to filename
* special characters prefix with \ (backslash)
| Wirkung | Dateinamen-Expandierung | awk, egrep | sed, ed, grep, csplit, pg, more | ex, vi |
| ein beliebiges Zeichen | ? | . | . | . |
| beliebige Zeichenkette | * | .* | .* | .* |
| vorhergehendes Zeichen 0 mal, 1 mal oder mehrmals | * | * | * | |
| 1 mal oder mehrmals | + | \ { 1, } \ | ||
| 0 mal oder 1 mal | ? | \ { 0,1 } \ | ||
| genau n mal | \ { n\ } | |||
| n bis m mal | \ { n,m\ } | |||
| mindestens n mal | \ { n,\ } | |||
| aus der Menge 1) | [...] | [...] | [...] | [...] |
| ... aus der Komplementärmenge | [! ...] | [ ^ ...] | [ ^ ...] | [ ^ ...] |
| Ausdruck nur am Zeilenanfang suchen | ^Ausdr. | ^Ausdr. | ^Ausdr. | |
| Ausdruck nur am Zeilenende suchen | Ausdr.$ | Ausdr.$ | Ausdr.$ | |
| Zeichenfolge am Wortanfang suchen | abc* | \<Ausdr. | ||
| Zeichenfolge am Wortende suchen | *abc | Ausdr.\> | ||
| logisches Oder (Disjunktion) | A1 | A2 |
1) Klammern können enthalten:
From the right, the major items of equipment are
Zum Inhaltsverzeichnis |