![]() |
Vorlesung "UNIX"von Prof. Jürgen Plate |
http://www.selflinux.de
Deutsche Linux-Dokumentation.
http://www.oreilly.de/german/freebooks/rlinux3ger/linux_wegSIX.html
Der Linux Wegweiser zur Installation & Konfiguration (OnLine Buch)
http://ldp.uni-frankfurt.de/
Linux Documentation Project (deutscher Mirror)
http://www.rz.uni-hohenheim.de/~feiler/uni/linux.html
Mathias Feilers Linux Page
http://www.fokus.gmd.de:80/Linux/Linux-doc.html
Deutsche OnLine Linux Dokumentation (diverse Themen)
http://www.linuxdoc.org/
Linux Documentation Project
http://www.tu-harburg.de/dlhp/
Deutsches Linux-HOWTO-Projekt
http://www.linuxfaq.de/
Deutschsprachige Linux FAQ mit der Möglichkeit, sie durch eigene Artikel zu erweitern.
http://www.linuxhilfen.org
Katalogisierte Tips, Infos, Links und Workshops mit Volltextsuche zum Thema Linux
http://www.adsl4linux.de
ADSL unter Linux: Technik, Basiswissen, Hardware, Software, Installation und Konfiguration
http://www.linux-tip.net
Linux Tipps und Tricks, Workshops; Tips and Tricks
http://3d-crew.com/unixtexte/utexte.html
Links zu diversen Texten
http://www.linux-ag.de/, die Linux AG.
http://www.floppix.com/
Linux auf zwei Floppies.
http://www.trinux.org/
Trinux ist ein Ramdisk-basiertes Linux auf einigen Floppies (speziell für
Netzwerker)
http://www.knopper.net/knoppix/
Linux als Live-Filesystem auf CD. Einfach CD-Image auf CD brennen und von
CD booten. Mit KDE als Grafik-Oberfläche und K-Develop.
Linus Torvalds:
Just for Fun
Hanser-Verlag
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.
From the right, the major items of equipment are
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:
; | es können mehr als ein Befehl in einer Zeile untergebracht werden, vorausgesetzt die Befehle werden durch den Strichpunkt getrennt |
& | gibt man einen Befehl gefolt fon dem Et-Zeichen (&) ein, so wird dieser Befehl im Hintergrund ausgeführt, der Befehl nimmt also das Terminal nicht in Anspruch und man kann in dieser Zeit weiterarbeiten; die Standardausgabe dieses Befehls erscheint trotzdem am Bildschirm; wird ein Befehl in den Hintergrun¦d geschickt, gibt das UNIX-System automatisch eine Nummer, die Prozeßindentifikationsnummer (siehe ps und kill), dieses Befehls aus |
* | das Sternchen steht für die Namen (Zeichen) aller Dateien des Verzeichnisses, es kann am Anfang, in der Mitte oder am Ende eines Dateinamens plaziert werden |
? | das Fragezeichen ist Stellvertreter für genau ein Zeichen |
[...] | eine Liste von Zeichen, die erlaubt sein können, werden in eckigen Klammern angegebnen, das erste Zeichen muß allerdings kleiner sein bzw. weiter vorn im Alphabet liegen als das letzte Zeichen; Beispiele: [abc], [123], [0-9], [a-z], aber nicht gültige Substitution: [z-f], [5-1] |
[!...] | ist das erste Zeichen nach der öäffnenden Klammer ein Ausrufezeichen, so wird dadurch der Sinn der Übereinstimmungsprüfung umgekehrt; Beispiel: [!a-z] = Übereinstimmung mit allen Zeichen ausgenommen Kleinbuchstaben |
[...]*[...] | mischt der Wertebereich mit anderen Zeichen; Beispiele: [a-np-z]* alle Kleinbuchstaben außer o [a-z]*[!0-9] alle Dateien, die mit einem Kleinbuchstaben beginnen und nicht mit einer Zahl enden |
" " | Keine Ersetzung der Metazeichen * ? [ ], jedoch Ersetzung von
Shellvariablen (siehe unten) und Ersetzung durch die Ergebnisse von Kommandos
(Backquote). Auch \ funktioniert weiterhin. Dazu ein Beispiel:
echo Der * wird hier durch alle Dateinamen ersetzt echo "Der * wird hier nicht ersetzt" |
' ' | Das einfache Anführungszeichen unterdrückt jede
Substitution. Zum Beispiel:
echo 'Weder * noch `pwd` werden ersetzt' |
` ` | Zwischen Backquote (Accent Grave) gesetzte Kommandos werden ausgeführt
und das Ergebnis wird dann als Parameter übergeben (d. h. die Ausgabe des Kommandos
landet als Parameter in der Kommandozeile). Dabei werden Zeilenwechsel zu Leerzeichen.
Braucht dieses Kommando Parameter, tritt die normale Parameterersetzung in Kraft.
Zum Beispiel:
echo "Aktuelles Verzeichnis: `pwd`"
Weil die verschiedenen Quotes manchmal schwer zu unterscheiden sind, wurde bei der bash
eine weitere Möglichkeit eingeführt. Statt in Backquotes wird die Kommandofolge
in $( ... ) eingeschlossen., z. B.:
|
< | Umlenken des Standardeingabe |
> | Umlenken der Standardausgabe zum Erzeugen / Überschreiben einer Datei |
>> | Umlenken der Standardausgabe zum Erzeugen / Anhängen einer Datei |
<< | Umlenken der Standardeingabe vom folgenden Text |
n< | öffne für Eingabe von Datei-Deskriptor n |
n> | öffne für Ausgabe von Datei-Deskriptor n (Überschreiben) |
n>> | öffne für Ausgabe von Datei-Deskriptor n (Anhängen) |
n<< | öffne für Eingabe von Datei-Deskriptor n des folgenden Textes |
<&n | verbinde Standardeingabe mit offener Datei in Datei-Deskriptor n |
<&- | schließe Standardeingabe |
>&n | verbinde Standardausgabe mit offener Datei in Datei-Deskriptor n |
>&- | schließe Standardausgabe |
n<&m | verbinde für die Eingabe Datei-Deskriptor n mit Datei-Deskriptor m |
n<&- | schließe Datei in Datei-Deskriptor n |
n>&m | verbinde für die Ausgabe Datei-Deskriptor n mit Datei-Deskriptor m |
n>&- | schließe Datei in Datei-Deskriptor n |
Befehl 2> file | alle Fehlermeldungen, die normalerweise zur Standardfehlerausgabe gelangen würden, werden jetzt in die Datei file umgeleitet |
Ausdruck | Bedeutung |
-e < datei > | datei existiert |
-r < datei > | datei existiert und Leserecht |
-w <datei> | datei existiert und Schreibrecht |
-x <datei> | datei existiert und Ausführungsrecht |
-f <datei> | datei existiert und ist einfache Datei |
-d <datei> | datei existiert und ist Verzeichnis |
-h <datei> | datei existiert und ist symbolisches Link |
-c <datei> | datei existiert und ist zeichenor. Gerät |
-b <datei> | datei existiert und ist blockor. Gerät |
-p <datei> | datei existiert und ist benannte Pipe |
-u <datei> | datei existiert und für Eigentümer s-Bit gesetzt |
-g <datei> | datei existiert und für Gruppe s-Bit gesetzt |
-k <datei> | datei existiert und t- oder sticky-Bit gesetzt |
-s <datei> | datei existiert und ist nicht leer |
-L <datei> | datei ist symbolisches Link |
-t <dateikennzahl> | dateikennzahl ist einem Terminal zugeordnet |
Vergleich von Zeichenketten | |
---|---|
Ausdruck | Bedeutung |
-n <String> | wahr, wenn String nicht leer |
-z <String> | wahr, wenn String leer ist |
<String1> = <String2> | wahr, wenn die Zeichenketten gleich sind |
<String1> != <String2> | wahr, wenn Zeichenketten verschieden sind |
Algebraische Vergleiche ganzer Zahlen | |
Operator | Bedeutung |
-eq | equal - gleich |
-ne | not equal - ungleich |
-ge | greater than or equal - größer gleich |
-gt | greater than - größer |
-le | less than or equal - kleiner gleich |
-lt | less than - kleiner |
Logische Verknüpfung zweier Argumente | |
UND | <bedingung1> -a <bedingung2> |
ODER | <bedingung1> -o <bedingung2> |
Klammern | \( <ausdruck> \) |
Negation | ! <ausdruck> |
cat file(s) | gibt den Inhalt von file(s) oder, falls kein Argument vorhanden ist, den der Standardausgabe aus |
cd dir | ändert das Arbeitsverzeichnis in dir um |
chmod +r file | file darf gelesen werden |
chmod -r file | file darf nicht gelesen werden |
chmod +w file | file darf geschrieben werden |
chmod +x file | file darf ausgeführt werden werden |
chmod u+r file | Leserecht für user der Datei (g=group, o=other) |
cp file1 file2 | kopiert file1 in file2; existiert file2, so wird dies überschrieben |
cp file(s) dir | kopiert file(s) nach dir; existiert dort schon file(s), so wird dies überschrieben |
cut -cchars file | um Datenfelder einer Datei oder der Ausgabe eines Befehls zu herausschneiden zu können; chars gibt an, welche Zeichen aus jeder Zeile der Datei file extrahiert werden sollen, wird file nicht angegeben, holt sich cut seine Eingabe aud der Standardeingabe, womit cut als Filter in einer Pipeline eingesetzt werden kann; Beispiel: cut -c5- data extrahiert aus der Datei data alle Zeichen einer Zeile ab der 5ten Spalte bis zum Zeilenende und gibt das Resultat auf der Standardausgabe aus; who | gut -c1-8 die Zeilen 1 bis 8 der Standardeingabe werden extrahiert |
-d | delimiter; mit d wird das Zeichen, welches jedes Datenfeld begrenzt angegebem; wird cut ohne die Option -d eingesetzt, wird das Tabzeichen als standardmäßige Feldbegrenzung eingesetzt |
-f | field; mit f werden die Felder, die aus file extrahiert werden sollen, angegeben |
date | gibt datum und Uhrzeit aus |
echo args | gibt args aus |
exit | ausloggen |
grep pattern file(s) | jede Zeile jeder Datei file(s), welche pattern enthält, wird auf den Bildschirm ausgegeben |
grep '[A-Z] list | alle Zeilen von list, die einen Großbuchstaben beinhalten |
grep '[0-9]' data | alle Zeilen von data, die eine Ziffer beinhalten |
grep '[A-Z] ... [0-8]' list | alle Zeilen von list, die einen fünf Zeichen langen String beinhalten, der mit einem Großbuchstaben beginnt und mit einer Ziffer endet |
grep '\.pic$' filelist | alle Zeilen von filelist, die auf .pic enden |
grep -v 'UNIX' intro | gibt alle Zeilen au, die das Wort UNIX nicht beinhalten |
grep -l 'include' file(s).c | listet alle Dateien file(s).c auf, die include beinhalten |
grep -n 'include' file.c | setzt vor jede Datei file.c die include enthält, die relative Zeilenzahl, in welcher sich das Suchmuster befindet |
head file(s) | zeigt den Dateikopf (die ersten 10 Zeilen) der Dateien file(s) |
kill 1234 | breche Prozeß mit Prozeßnummer 1234 ab, Prozeßnummer liefert ps |
kill -g 1234 | unbedingtes 'kill' für Prozeß 1234 |
ln file1 file2 | ordnet file1 den zweiten Namen file2 zu |
ln file(s) dir | Macht file(s) in dir unter gleichem Namen verfügbar |
lpr file(s) | Ausgabe auf Zeilendrucker |
ls file(s) | listet die Dateien file(s) auf |
ls dir(s) | listet die Dateien des Verzeichnisses dir(s) oder, falls kein Argument angegeben wurde, die im aktuellen Verzeichnis auf |
ls -l | ermöglicht die detaillierte Beschreibung der Dateien eines Inhaltsverzeichnisses der Form drwxrwxrwx n1 owner n2 date name; dabei ist: d = file ist directory, sont Anzeige von '-' rwx = read/write/execute-permission für owner, group, all other n1 = Anzahl links (Verknüpfunken, die mit ln erstellt wurden) n2 = Anzahl bytes date = creation date |
man cmd | zeigt On-line Manual-Eintrag für das Kommando cmd an |
mkdir dir(s) | erzeugt das Verzeichnis dir(s) |
more file(s) | seitenweise Ausgabe von file(s) auf Terminal (blank / break) |
mv file1 file2 | verschiebt file1 nach file2; befinden sich beide Dateien im selben Verzeichnis, findet eine Umbenennung statt |
mv file(s) dir | verschiebt file(s) in das Verzeichnis dir |
passwd | ändert das Paßwort |
paste file(s) | fügt Zeilen zusammen und leitet sie an die Standardausgabe weiter, die Felder werden durch Tabzeichen begrenzt |
-d | sollen die Felder nicht durch Tabzeichen begrenzt werden, kann mit -dchar (char =ein oder mehrere Beliebige Zeichen) die Begrenzungszeichen festgelegt werden |
-s | weist paste an, alle Zeilen aus einer Datei zusammenzufügen |
| | die Pipe (|) verbindet zwei Unix-Befehle miteinander, die Ausgabe des einen Befehls ist die Eingabe für den anderen Befehl; dazu muß es zwischen den betreffenden Befehlen plaziert werden; Beispiel: who | more, seitenweises Auflisten der eingeloggten user; who | wc -l, erstellt eine detaillierte Liste der eingeloggten user |
ps | gibt Informationen über die lauvenden Prozesse aus, hierbei gilt: PID = Prozeßidentifikationsnummer TTY = Nummer des Terminals, von dem aus der Prozeß gestartet wurde COMMAND = ist der Name des Prozesses |
ps -f | weitere Informationen; PPID = die Elternprozeßnummer STIME = der Zeitpunkt, zu dem der Prozeß begann und die Befehlsargumente |
ps -l | detaillierte Informationen über den Prozeßstatus |
ps -a | all |
pwd | zeigt den Pfad des aktuellen Arbeitsverzeichnisses an |
rm file(s) | löscht die Dateien file(s) |
rmdir dir(s) | löscht das Verzeichnis dir(s), wenn sich keine Dateien mehr im Verzeichnis befinden |
rm -r dir(s) | löscht das Verzeichnis dir(s) und alle darin enthaltenen Dateien (einschließlich aller Unterverzeichnisse) |
sed '5d' | lösche Zeile 5 |
sed '/[Tt]est/d' | löscht alle Zeilen, die Test oder test beinhalten |
sed -n '20,25p' text | gibt nur Zeile 20 bis 25 aus |
sed '1,10s/unix/UNIX/g' intro | macht aus unix UNIX, egal an welcher Stelle der ersten 10 Zeilen von intro es auftaucht |
sed '/jan/s/-1/-5' | wechselt das erste -1 in -5 in allen Zeilen, die jan beinhalten |
sed 's/...//' data | löscht die ersten drei Zeichen jeder Zeile von data |
sed 's/...$//' data | löscht die letzten drei Zeichen jeder Zeile von data |
sed -n '1' text | gibt alle Zeilen von text aus, wobei alle nicht druckbaren Zeichen als \nn (nn ist der oktale Wert des Zeichens) und alle Tabzeichen als > ausgegeben werden |
sort file(s) | sortiert die Zeilen in file(s) oder die der Standardeingabe in steigender Reihenfolge, falls kein Argument angegeben wurde |
sort -u file(s) | weist sort an, keine Zeilen mit identischem Inhalt zu erzeugen |
sort -r file(s) | kehrt die Sortierreihenfolge um, d.h. Ausgabe in abfallender Reihenfolge |
sort file(s) -o sorted_files | sortiert file(s) und leitet die Ausgabe in die Datei sorted_files um |
sort -n data | die Option -n ist dafür verantwortlich, daß das erste Feld einer Zeile von sort als Zahl behandelt wird und daß die Daten numerisch sortiert werden |
sort -Nn data | überspringt die ersten N Felder und ordnet danach die Daten numerisch; Felder werden standardmäßig durcj Leer- oder Tabzeichen begrenzt |
sort +Nn -tchar data | mit der Option -t kann ein Begrenzungszeichen char gewählt werden, welchen anstelle des Leer- oder Tabzeichens bei der Felderbegrenzung verwendet wird |
tr char1 char2 | wird benutzt, um Zeichen char1 aus der Standardeingabe zu char2 übersetzen |
tr : '\nnn' | ersetzt den Doppelpunkt durch das Zeichen des entsprechenden oktalen Wertes nn |
tr 'X' 'x' | ersetze alle großen X durch kleine x |
tr '()' '{}' | ersetze alle runden Klammern auf durch geschweifte Klammern auf und alle runden Klammern zu durch geschweifte Klammern zu |
tr '[a-z]' '[A-Z]' | ersetze alle Kleinbuchstaben durch Großbuchstaben |
tr '[A-Z]' '[N-Z]' '[A-M]' | ersetze alle großen A-M durch N-Z und alle N-Z durch A-M |
tr '\11' ' ' | ersetze alle Tabzeichen durch ein Leerzeichen |
tr -s ' ' ' ' | ersetze mehrere aufeinanderfolgende Leerzeichen durch ein einzelnes Leerzeichen |
tr -d '\14' | lösche alle Seitenvorschubzeichen (oktal 14) |
tr -d '[0-9]' | löscht alle Ziffern |
unic in_file out_file | uniq kopiert in_file in out_file und löscht dabei doppelt voliegende Zeilen; uniq definiert doppelt vorliegende Zeilen als mehrmals aufeinanderfolgende Zeilen, die identisch sind; wird out_file nicht angegeben, wird das Ergebnis an die Standardausgabe weitergegeben, ist hingegen in_file nicht angegeben, funktioniert uniq als Filter und holöt sich seine Eingabe aus der Standardeingabe |
uniq -d in_file out_file | weist uniq an , lediglich die doppelten Zeilen an out_file weiterzuleiten, diese Zeilen werden nur einmal weitergeleitet, egal, wie oft sie in der Datei aufeinanderfolgen |
uniq -c in_file out_file | funktioniert genauso wie uniq ohne Optionen mit dem Unterschied, daß vor jede Ausgabezeile eine Zahl gesetzt wird, die angibt, wie oft die Zeile in der Eingabe vorkam |
wc -l file(s) | zählt die Anzahl der Zeilen der Dateien file(s) oder die der Standardeingabe, falls kein Argument angegeben wurde |
wc -w file(s) | zählt die Anzahl der Worte der Dateien file(s) oder die der Standardeingabe, falls kein Argument angegeben wurde |
wc -c file(s) | zählt die Anzahl der Zeichen der Dateien file(s) oder die der Standardeingabe, falls kein Argument angegeben wurde |
who | zeigt an, wer eingeloggt ist |
who am i | gibt Informationen über den user selbst aus |
![]() |