Nächste Seite: Anhänge
Aufwärts: Vortragsreihe der LUG Dresden
Vorherige Seite: Inhalt
  Inhalt
Unterabschnitte
Auf einem heutigen Linux kann man wochenlang arbeiten ohne auch nur ein
einziges Mal die Shell zu Gesicht zu bekommen. Ebenso, wie man jahrelang
Socken tragen kann, ohne zu wissen, wie man sie stopft. Nur irgendwann wird
man sehr viele Löcher haben...
...und dann kommt die Shell ins Spiel.
Exemplarisch wird hier die heute wohl am weitesten verbreitete Shell, die Bash
vorgestellt. Jedoch kann hier keine vollständige Abhandlung der Fähigkeiten
dieser Shell erfolgen, dazu ist die einfach zu flexibel und komplex.
Die Funktionsweise der Bash ist im Ansatz sehr einfach: direkt nach dem sog.
Prompt kann man ein Kommando und danach keine bis sehr viele Parameter
angeben. Ein Kommando ist meistens ein ausführbares Programm, das irgendwo im
System abgelegt ist. Meistens, weil es auch noch Aliase, Built-In-Kommandos
und Funktionen gibt, zu denen wir aber spter kommen.
Die Bash hat zwei unterschiedliche Eingabe-Modi: vi und emacs. (Standard ist
der emacs-Modus.) Die vi-Fans mögen mir bitte vergeben, dass ich mich hier
auf die Tasten-Kombinationen der emacs-Variante beschränke:
Taste(n) |
Funktion |
Ctrl-B, |
Cursor nach links |
Ctrl-F, |
Cursor nach rechts |
Ctrl-A |
Cursor zum Anfang der Zeile |
Ctrl-E |
Cursor zum Ende der Zeile |
Esc-F |
Cursor zum nächsten Wort |
Esc-B |
Cursor zum verherigen Wort |
Backspace |
Zeichen links vom Cursor löschen |
Ctrl-D |
Zeichen unter dem Cursor löschen |
|
(auf einigen Terminals geht auch Del/Entf) |
Ctrl-_ |
letzte Änderung rückgängig machen |
Ctrl-K |
vom Cursor bis zum Zeilenende löschen |
Ctrl-U |
vom Cursor bis zum Zeilenanfang löschen |
Esc-D |
vom Cursor bis zum Wortende löschen |
Ctrl-P, |
vorherige Zeile aus dem Kommandopuffer anzeigen |
Ctrl-N, |
nächste Zeile aus dem Kommandopuffer anzeigen |
Tabulator |
einen angefangenen Befehl oder Dateinamen vervollständigen |
|
2-mal: alle passenden Befehle/Dateinamen anzeigen |
Wie die meisten Unix-Shells ist die Bash in der Lage Parameter recht flexibel
zu handhaben. Dazu sollte man verstehen, wie Programmaufrufe auf Unix/Linux
funktionieren. Aus Sicht eines Unix/Linux-Kernels besteht ein Programmaufruf
aus drei Teilen: dem Pfad des Programmes, den Parametern und den
Umgebungsvariablen. Parameter sind einzelne Zeichenketten (sog.
Null-terminierte Strings), die beliebige Werte annehmen können, die dann
jeweils von dem Programm selbst interpretiert werden müssen. In der Regel
beinhaltet der erste Parameter den Namen des Programmes (in Ausnahmefällen
kann auch ein anderer Wert darin stehen, z.B. ist Login-Shells ein ``-''
vorangestellt). Daraus ergibt sich auch, dass jedes Programm selbst
entscheidet welche Werte für Umgebungsvariablen an von ihm aufgerufene
Programme weitergegeben werden (i.d.R. entscheidet sich ein Programm die
eigenen Werte unverändert weiterzugeben).
Damit eine Befehlszeile in Parameter aufgeteilt werden kann benutzt Bash
einfach Whitespace (also Leerzeichen und Tabulatoren) als Trennzeichen.
Damit ein Whitespace nicht als Trennzeichen interpretiert wird hat man mehrere
Möglichkeiten des sog. ``quoting''.
Mit Backslash () kann die Bedeutung eines anderen Sonderzeichens
aufgehoben werden. Damit wird ein Leerzeichen nicht mehr als Trennzeichen
interpretiert und ein ``*'' unverändert an das Programm weitergegeben.
In doppelte Anführungszeichen (") eingeschlossene Zeichenketten
werden zu einem einzigen Parameter zusammengefasst, auch wenn Leerzeichen
dazwischen vorkommen. Sonderzeichen werden aber weiterhin interpretiert.
In einfache Anführungszeichen (')eingeschlossener Text wird ebenfalls
zusammengefasst, zusätzlich unterbleibt aber auch die Interpretation von
Sonderzeichen (ausser ' selbst).
Schräggestellte Anführungszeichen (`) ersetzen das Kommando dazwischen
durch die Ausgabe des Kommandos:
bash> echo Die aktuelle Zeit in Greenwich ist: `date -u`
Die aktuelle Zeit in Greenwich ist: Sun Jan 7 11:15:10 UTC 2001
bash>
Wenn ein Kommando sich auf mehrere Dateien beziehen soll kann man sogenannte
Wildcards einsetzen: ``?'' ersetzt ein einzelnes Zeichen, ``*''
ersetzt beliebig viele (oder null) Zeichen.
Homeverzeichnisse können mit Tilde (~) abgekürzt werden. Eine
einfache Tilde (~) bezeichnet dabei das eigene Homeverzeichnis, eine
Tilde gefolgt von einem Nutzernamen (~dilbert) bezeichnet das
Homeverzeichnis dieses Nutzers:
bash> echo ~
/home/dogbert
bash> echo ~dilbert
/home/dilbert
Jedes Programm (bis auf wenige Ausnahmen) hat drei offene Dateideskriptoren
wenn es gestartet wird: ``standard in'' (Deskriptor 0), ``standard out'' (1)
und ``standard error'' (2). Normalerweise verweisen sie alle auf das Terminal
auf dem das Programm läuft, i.d.R. ist ``standard in'' also mit einer
Tastatur und ``standard out'' und ``standard error'' mit dem Bildschirm
verbunden (meist liegen aber noch einige Schichten von Treibern und Programmen
dazwischen). Man kann jedoch jeden dieser Kanäle einzeln auf ein anderes
Programm oder eine Datei umleiten.
- cat <datei
-
leitet den Inhalt von datei in ``standard in'' von
cat um.
- ls >datei
-
leitet die Ausgaben (``standard out'') von ls in
datei um, wenn datei schon existiert wird es überschrieben.
- ls »datei
-
hängt die Ausgaben von ls an datei an.
- ls 2>datei
-
leitet die Fehlermeldungen (``standard error'') von
ls in datei um.
- ls 2»datei
-
hängt die Fehlermeldungen von ls an datei an.
- ls |less
-
leitet die Ausgaben von ls in ``standard in'' von less um.
- ls 2>&1 |less
-
leitet die Fehlermeldungen von ls auf den selben
Kanal, wie die normalen Ausgaben um und leitet die Ausgaben an less weiter.
less bekommt also sowohl normale Ausgaben, als auch Fehlermeldungen von ls.
- scaryprogram 3<datei1 4>datei2
-
erzeugt zwei zusätzliche
Dateideskriptoren (3 und 4) und öffnet auf ihnen datei1 lesend und datei2
schreibend. Ob das Programm diese Deskriptoren beachtet kommt ganz auf den
Programmierer an, normalerweise tut es das nicht.
Wie fängt man einen virtuellen Elefanten? Ein guter Hacker baut einen Wald
aus Klammern und hofft, dass sich der Elefant darin verläuft und
steckenbleibt. Damit man sich aber nicht selbst darin verfängt gibt es hier
ein paar Tipps, was die Klammern bedeuten.
Man unterscheidet im allgemeinen zwischen drei unterschiedlichen Klammertypen:
runden ``( )'', eckigen ``[ ]'' und geschweiften ``{ }''. Diese Klammertypen
können nun dazu benutzt werden verschiedene Aktionen auszuführen.
Einfache Klammern grenzen die Wirkung einer Kette von Befehlen lokal ein, d.h.
wenn die Klammern verlassen werden haben die darin ausgeführten Aktionen
(z.B. das Setzen von Variablen oder eines anderen Pfades) ihre Wirkung
verloren:
bash> echo `pwd` $x;(x=y;cd ..;echo `pwd`
$x);echo `pwd` $x
/home/dogbert
/home y
/home/dogbert
Diese Konstruktion kann auch verwendet werden, um die Ausgabe mehrerer
Kommandos in eine gemeinsame Datei umzulenken:
bash> (echo x ; echo y ) >datei
bash> cat datei
x
y
Ein ähnlicher Effekt lässt sich mit geschweiften Klammern erzeugen:
bash> echo `pwd` $x; { x=y; cd ..; echo `pwd`
$x ; } ;echo `pwd` $x
/home/dogbert
/home y
/home y
Der Unterschied ist, dass hier die Kommandos nur gruppiert werden, die
Kommandos innerhalb der Klammern haben auch über die Klammern hinaus eine
Wirkung.
Aber geschweifte Klammern sind noch für andere Effekte gut. So kann man damit
sehr einfach Werte erzeugen, die einen gemeinsamen und einen unterschiedlichen
Teil haben:
bash> echo a{1,2,3}
a1 a2 a3
Die Konstruktion $( ) kann dazu verwendet werden die Ausgabe eines
Kommandos einem anderen Kommando als Parameter zu übergeben. Dies ist eine
Alternative zu den schräggestellten Anführungszeichen (`).
Interessanter ist dann schon $[ ]. Damit kann man mathematische
Ausdrücke auswerten. Erlaubt ist (nahezu) alles, was auch in C geht:
bash> echo $[1+2]
3
bash> echo $[true && false]
0
bash> x=1; y=4; echo $[x + $y]
5
bash> echo $[$x + $y || 1]
1
Noch mehr Klammern für noch mehr ungewöhnliche Anwendungen finden sich in
der man-page zu bash. Hier soll dies aber erst einmal genug sein.
Unfaiererweise habe ich ein sehr wichtiges Element jeder Shell bereits
eingesetzt, aber noch nicht vorgestellt: Variablen. Das wird jetzt nachgeholt.
Variablen sind nichts weiter, als etwas Speicherplatz, der beliebigen Text
enthalten kann und einen Namen hat. Über den Namen einer Varablen kann man
ihren Inhalt erhalten. Als Variablennamen müssen mit einem Buchstaben (nicht
Ä, Ö oder Ü) beginnen und dürfen Buchstaben, Zahlen und Underscore (_)
enthalten.
Variablen zuzuweisen ist sehr einfach:
bash> var=wert
Damit enthält die Variable ``var'' die Zeichenkette ``wert''. Wenn der Wert
der Variablen Leerzeichen enthalten soll werden einfach Anführungszeichen um
den Wert herum gesetzt. Es sind auch alle Konstruktionen mit Klammern erlaubt.
Bisher haben wir eine Variable ``var'', die innerhalb dieser Shell gilt. Was
jedoch, wenn wir sie an eine andere Shell oder ein anderes Programm
weitergeben wollen? Man muss der Shell lediglich sagen, dass sie die Variable
``exportieren'', also weitergeben soll:
bash> export var
Um eine Variable wieder zu löschen ruft man das Kommando ``unset'' auf:
bash> unset var
bash> echo $var
bash>
Die Länge einer Variablen kann man so herausfinden:
bash> x=abcd
bash> echo ${#x}
4
Ein laufendes Programm kann mit der Tastenkombination Ctrl-Z unterbrochen
werden. Um es fortzusetzen benutzt man das Kommando ``fg''. Um es in den
Hintergrund zu legen ``bg'' -- Kommandos, die im Hintergrund laufen
blockieren nicht die Shell, man kann also weitere Kommandos eingeben. Wenn ein
solches Kommando Ein- oder Ausgaben will wird es automatisch wieder
angehalten. Man kann ein Kommando von Anfang an im Hintergrund laufen lassen,
indem man ein Ampersand (&) anhängt.
Wenn mehrere Programme im Hintergrund einer Shell laufen kann man sie sich
mit dem Kommando ``jobs'' anzeigen lassen. Mit ``wait'' kann man auf ein
Hintergrund-kommando warten (wait liefert zusätzlich den Beendigungs-status
des Kommandos).
All diese Befehle (fg, bg, jobs und wait) können optional die Nummer eines
spezifischen Jobs/Hintergrundkommandos übergeben bekommen, auf das sie
angewendet werden sollen.
Die Bash kennt drei Modi in denen sie laufen kann: Login, interaktiv und
nicht-interaktiv. Eine interaktive Bash erwartet vom Nutzer Eingaben,
erlaubt Korrekturen, gibt den Prompt aus und benutzt den Befehlspuffer,
während eine nicht-interaktive Bash arbeitet einfach alle Kommandos ab, die
an ``standard in'' anliegen. Eine Login-Bash ist ebenfalls eine interaktive
Bash, liest aber eine andere Konfiguration ein.
Die Konfigurations-Skripte der Bash können jedes normale Kommando der Bash
enthalten.
Die Login-Bash liest die Datei /etc/profile ein, diese enthlt die systemweite
Konfiguration für alle Bourne-Shell-verwandten Shells, also auch die
Korn-Shell und die Bash. Danach wird nach den Dateien ~/.bash_profile,
~/.bashlogin und ~/.profile gesucht und die erste gefundene ausgeführt.
Wenn eine Login-Bash beendet wird, wird die Datei ~/.bash_logout (wenn
vorhanden) ausgeführt.
Eine interaktive Bash führt das Skript ~/.bashrc aus. Normalerweise
enthält .profile ein Kommando wie . ~/.bashrc, um diese Befehle
in einer Login-Bash ebenfalls auszuführen. Eine .bashrc sollte keine Ausgaben
machen, da das einige Skripte durcheinander bringen kann, die über telnet,
rsh oder ssh auf entfernte Rechner zugreifen.
Existiert die Variable $ENV, dann wird das darin aufgeführte Skript
ausgeführt, wenn eine nicht-interaktive Shell aufgerufen wird (also ein
anderes Skript ausgeführt wird).
Ein Skript ist nichts weiter als eine Sammlung von Kommandos in einer Datei.
Also sollte es recht einfach sein es auszuführen. Es gibt dazu zwei
Möglichkeiten. Zunächst kann man Bash beim Aufruf einfach einen Dateinamen
übergeben, dessen Inhalt ausgeführt werden soll:
bash> bash somescript.sh
Die Endung .sh ist nur eine Konvention, der Name der Datei kann beliebig
gewählt werden. Die zweite Möglichkeit ist es in der Datei zu vermerken,
welche Shell dafür zuständig ist, der Unix/Linux-Kern kann diese dann
automatisch laden, wenn das Skript ausgeführt wird:
bash> cat >somescript.sh
#!/bin/bash
echo ich bin ein Skript
Ctrl-D
bash> chmod +x somescript.sh
bash> ./somescript.sh
ich bin ein Skript
Die Sequenz #! wird dabei von Kernel so interpretiert, dass das in dieser
Zeile angegebene Programm gestartet werden soll, dieses Programm selbst wird
diese Sequenz jedoch ignorieren (zumindest, wenn es eine Shell oder einer
der üblichen Skript-Interpreter ist (z.B. tclsh, perl, php)). Was einfach nur
daran liegt, dass normalerweise das Symbol # benutzt wird, um Kommentare
einzuleiten.
Da ein Skript nichts weiter als eine Sammlung von normalen Kommandos ist, gibt
es nichts, was nur in Skripten und nicht in einer interaktiven Bash erlaubt
ist. Aber es gibt einige Konstrukte, die meistens nur in Skripten sinnvoll
sind.
Man kann einem Shell-Skript (also auch einem Bash-Skript) ebenso wie anderen
Programmen Parameter übergeben. Diese werden in den Variablen $1 bis $9
gespeichert. Wenn man die Parameter danach ebenfalls nutzen will kann man die
Parameterliste mit ``shift'' verschieben. Nach einem shift 2
enthält $1 also den Wert, der vorher in $3 stand usw.
Alle Parameter zusammen sind in $* gespeichert, die Anzahl der Parameter in
$#.
Funktionen sind in einem Skript so etwas wie Subskripte, die von
mehreren Stellen aus aufgerufen werden können:
func() {
echo das ist eine Funktion
echo ---------------------
}
func
Dies ist der einfachste Fall einer Funktion: eine Kette von Kommandos, die
immer dann aufgerufen wird, wenn der Name der Funktion als Kommando im Skript
auftaucht.
func() {
echo das ist noch eine: \$1 \$2
}
func angezeigter Parameter
func nr1 nr2 "nr3 wird nicht mehr angezeigt"
Hier werden der Funktion Parameter übergeben, ob sie diese benutzt bleibt ihr
selbst überlassen.
Man kann die Ausführung eines Kommandos vom Ergebnis anderer Kommandos
abhängig machen. Jedes Programm liefert einen numerischen Code zurück, wenn
es sich beendet. Der Wert 0 bedeutet dabei Erfolg, jeder andere Wert einen
Fehler. Dafür gibt es unterschiedliche Möglichkeiten:
kommando1 && echo 'das wird nur angezeigt, wenn kommando1 erfolgreich war'
kommando2 || echo 'und das, wenn kommando2 fehlschlug'
if kommando1 ; then
echo 'erfolgreich'
else
echo 'daneben gegangen'
fi
Meistens wird man bei if das Kommando ``test'' einsetzen, da es eine Reihe von
Möglichkeiten bietet nach Dateien zu suchen oder Variablen auszuwerten. Da
``test'' so häufig eingesetzt wird gibt es eine Kurzform:
if test 1 = 1 ; then
echo 'das ist identisch zu...'
fi
if [1 = 1] ; then
echo '...dieser Version'
fi
Die Konstruktion wird kompliziert, wenn man mehr als nur eine Möglichkeit
prüfen will. Dazu wird die Anweisung case verwendet:
case $var in
wert1)
echo Reaktion 1
;;
wert2)
echo Reaktion 2
;;
wert3|wert4)
echo eine Reaktion auf wert3 und wert4
;;
*)
echo Reaktion auf alles andere: $var
;;
esac
Der Ausdruck ``;;'' beendet jeweils eine Reaktion, ``esac'' beendet das ganze
Statement.
Viele Operationen müssen mehrfach ausgeführt werden. Die Bash bietet dafür
mehrere Schleifentypen:
for file in * ; do
echo Datei: $file
done
var=1
while test $var -lt 100 ; do
echo $var
var=$[$var +1]
done
echo $var
Die erste Schleife geht alle Dateien (*) im aktuellen Verzeichnis durch und
gibt sie aus. Die zweite Schleife zählt die Variable var von 1 bis 100 und
gibt sie aus.
Es ist recht aufwändig grosse Texte mit dem Kommando ``echo'' zeilenweise
auszugeben und andererseits ist es meist nicht wünschenswert eine
zusätzliche Datei anzulegen, die mit ``cat'' ausgegeben werden kann. Man kann
den Text, der an ``standard in'' eines Programmes anliegen soll auch direkt im
Skript ablegen:
cat <<EOF
Dieser ganze Text hier wird an cat weitergereicht und
nicht von der Shell interpretiert. Wichtig ist dabei "<<"
und ein beliebiges Wort, das als Ende-Marke benutzt wird
(EOF ist üblich aber nicht zwingend). Taucht dieses Wort
allein auf einer Zeile auf, ist die Umleitung beendet:
EOF
echo "dies bekommt wieder die Shell zu sehen"
Die Bash verwendet einige Variablen intern um ihre eigenen Reaktionen zu
konfigurieren:
enthlt das Home-Verzeichnis des Nutzers.
enthält alle Verzeichnisse, in denen ausführbare Programme
gesucht werden. Einzelne Verzeichnisse werden durch ``:'' getrennt.
wenn diese Variable existiert kann die Shell nicht mit
Ctrl-D beendet werden.
enthält den aktuellen Pfad.
enthält den vorhergehenden Pfad.
gibt einen Zufallswert zurück.
gibt die Anzahl der Sekunden zurück seit der diese Shell
läuft.
wenn diese Variable auf einen Wert >0 gesetzt wird beendet
sich die Shell nach entsprechend vielen Sekunden ohne Eingabe.
enthält die Prozess-ID des Vaterprozesses dieser Shell.
User-ID und Effektive User-ID dieser Shell. Die UID gibt
dabei an, wer die Shell aufgerufen hat, die EUID mit wessen Rechten sie
läuft.
enthlt diese Variable den Namen eines Shell-Scriptes, dann
wird es zur Initialisierung aufgerufen, wenn ein anderes Shell-Script
ausgeführt wird.
gibt an wieviele Befehls-Zeilen gespeichert werden.
gibt an in welcher Datei Befehls-Zeilen gespeichert
werden (i.d.R. ~/.bash_history).
gibt an wieviele Zeilen in dieser Datei gespeichert
werden.
kann ein Kommando enthalten, das jeweils
ausgeführt wird bevor eine Eingabeaufforderung (Prompt) ausgegeben wird.
die hier angegebenen Dateiendungen werden bei der
automatischen Erweiterung von Dateinamen ignoriert. (Mehrere Endungen können
durch ``:'' getrennt werden.)
legen fest, wie der Prompt der bash aussieht. PS1
enthält dabei den normalen Prompt und PS2 den Prompt für den Fall, dass ein
Kommando über mehrere Zeilen geht. Mit Backslash () können
zusätzliche Sequenzen eingefügt werden, die durch bestimmte Werte ersetzt
werden:
Sequenz |
Wert |
t |
aktuelle Uhrzeit |
d |
aktuelles Datum |
n |
Zeilenumbruch |
s |
Name der laufenden Shell |
w |
aktuelles Verzeichnis |
W |
aktuelles Verzeichnis ohne Pfad |
u |
Nutzername |
h |
Rechnername |
! |
Nummer des aktuellen Kommandos im Befehlspuffer |
$ |
$ für normale Benutzer, # für root |
|
ein normaler Backslash () |
Damit nicht genug: die Bash beherrscht einige eingebaute Kommandos, die
teilweise schnellere Varianten ``echter'' Unix-Kommandos sind und teilweise
das Verhalten der Bash selbst steuern.
definiert ein neues Kommando, dass aus anderen
Kommandos und Optionen für dieses Bestehen kann. Normalerweise werden damit
Abkürzungen für häufig gebrauchte Kommandos definiert. Beispiel:
alias ll='ls -l' definiert das Kommando ll als Abkürzung für ls
-l.
löscht ein Alias wieder.
wechselt das Verzeichnis und speichert das alte Verzeichnis
in einem internen Stack.
wechselt zu dem zuvor mit pushd gespeicherten Verzeichnis
zurück.
zeigt alle mit pushd gespeicherten Verzeichnisse an.
gibt das aktuelle Verzeichnis zurück.
ist eine weitere Möglichkeit arithmetische Ausdrücke
auszuwerten:
bash> let summe=13+5
bash> echo $summe
18
können vorangegangene Befehle nocheinmal ausführen:
bash> echo xyz
xyz
bash> !!
echo xyz
xyz
bash> ^xyz^abc
echo abc
abc
bash> history 3
423 echo xyz
424 echo abc
425 history 3
bash> !424
echo abc
abc
zeigt alle gespeicherten Befehle an, die dann mit ``!''
nocheinmal ausgeführt werden können (siehe vorhergehenden Abschnitt).
ist eine weitere Möglichkeit neben history und !
vorangegangene Befehle anzuzeigen und auszuführen. Genaueres dazu findet sich
in der Manual-Page zu fc bzw. via help fc.
führt ein Shell-Script in dieser Shell aus anstatt eine
neue Shell dafür zu öffnen. Eine andere Möglichkeit ist das Kommando
``.''.
bash> cat >script.sh
dummy=xy
Ctrl-D
bash> . script.sh
bash> echo $dummy
xy
beenden die Shell.
ruft ein eingebautes Kommando anstatt eines gleichnamigen
Unix-Kommandos oder Funktion auf:
bash> pwd() { echo daneben ; }
bash> pwd
daneben
bash> builtin pwd
/home/dogbert
ruft einen eingebauten Befehl oder ein Unix-Kommando
anstatt einer Funktion auf.
aktiviert oder deaktiviert einen eingebauten Befehl
(enable aktiviert, enable -n deaktiviert den Befehl).
weisen Variablen bestimmte Eigenschaften zu.
Zum Beispiel verhindert declare -r somevar, dass somevar
überschrieben werden kann (declare +r somevar macht diese Aktion
rückgängig).
gibt Hilfestellung zu eingebauten Kommandos.
definiert eine Variable als lokal bezüglich einer Funktion,
d.h. ausserhalb der Funktion ist sie nicht sichtbar.
bash> func() { local some; some=any; }
bash> func
bash> echo $some
bash>
setzt Grenzen für bestimmte Systemparameter (Größe von
core-files, Stack-größe u.ä.). Der Parameter -a zeigt die aktuellen Grenzen
an.
Ein funktionierendes Linux beherbergt einige hundert Befehle (Ausnahme sind
z.B. Firewalls, die nicht einmal ein dutzend Programme beinhalten sollten).
Nicht unbedingt die wichtigsten und besten sollen hier vorgestellt werden,
sondern die vielen kleinen Helferlein, auf die man nicht ganz so schnell
kommt.
Im Verzeichnis /bin sind alle die Befehle, die für den Nutzer nützlich, aber
für den sauberen Start des Systems auch unbedingt nötig sind. Hier also
gleich mal der Aufruf an alle Hobby-Programmierer: nur ganz wenige Programme
werden für den Systemstart gebraucht und die sind schon da drin, alles andere
gehört in /usr/bin oder /usr/X11/bin oder gar nicht in ein globales
Verzeichnis.
Die Kommandos von Unix-artigen Systemen sind sehr mächtig, das bedeutet sie
haben sehr viele Optionen, um alle möglichen Fälle abzudecken. Da Linux
traditionell die GNU-Varianten der Befehle einsetzt ist die Menge der Optionen
gleich nocheinmal größer. Im Allgemeinen bezeichnen Hacker es als sehr
bedenklich wenn ein Programm noch mehr Optionen hat als ls... Ich beschränke
mich daher auf die allerwichtigsten Optionen, wer seine Kommandos weiter
``tunen'' möchte möge bitte in die man-Pages schauen.
- bash
- die Standard Shell von Linux, sie hat ein eigenes Kapitel, also
verzichte ich hier auf weitere Erläuterungen.
- cat
- ist die Abkürzung von ``concatenate''. Es interpretiert alle
Parameter als Dateinamen und gibt den Inhalt dieser Dateien einfach
hintereinander aus (egal ob Text oder Binärdaten). Wenn kein Parameter
angegeben ist erwartet es Eingaben von standard in, die dann einfach auf
standard out wiederholt werden.
- chgrp
- ändert die Gruppenzugehörigkeit einer Datei. Man kann dies mit
eigenen Dateien innerhalb all der Gruppen tun, in denen man selbst ist; es sei
denn man ist root, dann darf man tun, was man will. Der Parameter -R lässt
das Kommando rekursiv durch die (Unter-)Verzeichnisse gehen.
chgrp [-R] neue-gruppe datei[en]
- chmod
- ändert die Zugriffsrechte einer Datei. Man kann die
Zugriffsrechte sowohl numerisch, als auch symbolisch angeben:
chmod [-R] rechte datei[en]
-R löst wieder Rekursion aus. Die Rechte können als Oktalzahl angegeben
werden, die Stelle am weitesten rechts gibt die Rechte aller Nutzer, die
Stelle daneben die der Gruppe und die Dritte die des Besitzers an. Dabei ist 4
das Leserecht, 2 das Schreibrecht und 1 das Ausführrecht, Kombinationen kann
man durch Addition erzeugen. Um zum Beispiel dem Besitzer alle Rechte, der
Gruppe Lese- und Ausführrecht und allen anderen kein Recht zu geben benutzt
man diese Kommandozeile:
chmod 750 dateiname
Wenn eine 4. Stelle angegeben wird kann man einige zusätzliche Bits setzen: 4
ist das SUID Bit (wenn das Programm ausgeführt wird wird es immer mit den
Rechten des Besitzers ausgeführt), das SGID Bit (...mit den Rechten der
Gruppe) und das Sticky Bit (bei normalen Dateien nicht von Bedeutung). Man
kann diese Rechte auch symbolisch ausdrücken, dazu werden diese Abkürzungen
verwendet: a - alle, u - user (Besitzer), g - Gruppe, o - others (alle
anderen), r - read (Leserecht), w - write (Schreibrecht), x - eXecute
(Ausführrecht), s - S*ID Bit und t - sTicky Bit. Mit einem - wird das
Recht entfern, mit einem + gesetzt und mit einem = werden exakt diese Rechte
gesetzt und alle anderen entfernt. So zum Beispiel gibt man dem Besitzer
Ausführrecht, setzt das SUID-Bit und nimmt ``others'', also allern ausserhalb
der Gruppe, alle Rechte:
chmod u+xs,o-rwx dateiname
Bei Verzeichnissen bekommen diese Rechte andere Bedeutungen: Leserecht heisst
hier, man darf den Inhalt des Verzeichnisses auflisten, Schreibrecht: man darf
Dateien anlegen, umbenennen oder löschen (Vorsicht: das ist von den Rechten
der Datei unabhängig, man darf dann auch Dateien löschen, die einem nicht
einmal gehören!). Ausführrecht bedeutet, man darf in das Verzeichnis
hineinwechseln und Dateien daraus benutzen. SUID hat keine Wirkung. SGID setzt
bei jeder neu angelegten Datei die selbe Gruppe (egal, ob man ihr angehört
oder nicht). Das sticky Bit verhindert, dass man Dateien löschen darf, die
einem nicht gehören (es ist normalerweise in den Spool-Verzeichnissen der
Drucker und Mailer und in /tmp gesetzt).
- chown
- darf nur von root ausgeführt werden. Es ändert den Besitzer
einer Datei (funktioniert sonst wie chgrp).
- cp
- kopiert eine oder mehrere Dateien. In der einfachsten Form sind zwei
Dateinamen angegeben, dann wird die erste Datei auf die zweite kopiert. Sind
mehr Dateinamen angegeben, dann muss der letzte ein Verzeichnisname sein, in
dieses Verzeichnis werden dann die Dateien kopiert. Mit -a kann man cp
anweisen so akkurat zu arbeiten, wie möglich, also alle Rechte und
Beziehungen zu übernehmen. Mit -r kann man cp rekursiv arbeiten lassen, also
ganze Verzeichnisse samt Inhalt kopieren. -f zwingt cp alle durchführbaren
Aktionen durchzuführen und Fehler zu ignorieren (nützlich für Skripte).
- cpio
- ist ein Archivierungsprogramm. Ausserhalb einiger
Spezialanwendungen wird es allerdings kaum noch eingesetzt (RPM ist hier die
grosse Ausnahme, rpm-Dateien enthalten cpio-Archive). Die Anzahl der Optionen
ist ziemlich groß. Grundsätzlich funktioniert es so:
ls dateien.* | cpio -o >archiv.cpio
erzeugt ein Archiv. (ls, weil ein Dateiname pro Zeile stehen soll)
cpio -i <archiv.cpio
entpackt das Archiv wieder.
- csh
- ist die C-Shell. Ihre Syntax ist der Sprache C ähnlich.
- date
- zeigt das aktuelle Datum und die aktuelle Zeit an. Man kann es so
aufrufen, dass es eine andere Zeit neu formatiert ausgibt oder die Zeit einer
anderen Zeitzone ausgibt.
sh> date
Sun Jan 7 21:56:58 CET 2001
sh> date -u ''+%Y-%m-%d''
2001-01-07
- dd
- oder auch disk-to-disk-copy kann unter anderem benutzt werden, um
Datenträger zu kopieren. Im Grunde kopiert es ebenso wie ein einfaches cat
den Inhalt von standard in nach standard out, jedoch kann man es so aufrufen,
dass es dazu eine bestimmte Blockgröße, Modus und eine bestimmte Anzahl von
Blöcken abarbeitet. Eine Diskette kann man z.B. so kopieren (zwischen den
beiden Kommandos wird die Diskette gewechselt):
sh> dd if=/dev/fd0 of=backup bs=512
2880 blocks in
2880 blocks out
sh> dd if=backup of=/dev/fd0 bs=512
2880 blocks in
2880 blocks out
- df
- alias ``(space on) disk free'' - listet den freien Speicher der
gemounteten Dateisysteme auf. (Nützlich ist -h, damit wird der Output besser
lesbar.)
- dmesg
- listet die letzten Kernelmeldungen auf.
- dnsdomainname
- gibt den die DNS-Domäne aus, in der sich dieser Host
befindet. Heißt der Host zum Beispiel rechner.irgendwo.net, dann gibt
dnsdomainname irgendwo.net zurück.
- echo
- wiederholt (daher der Name) seine Parameter auf standard out.
Interessant sind die beiden Flags -n, verhindert den Zeilenumbruch, und -e,
das Backslash-Sequenzen interpretiert (a gibt zum Beispiel einen
Piepton von sich).
- ed
- alter Editor, der Kommandos der Form ,s/alt/neu/g. Ich
empfehle ihn all denen, denen vi noch nicht masochistisch genug ist.
;-)
- egrep
- grep -E
- false
- ein Programm, das immer fehlschlägt (Code 1). Besonders gerne
als Login-Shell für gesperrte Nutzer eingesetzt.
- fgrep
- grep -F
- fuser
- listet all die Prozesse auf, die die angegebene Datei benutzen.
Mit -k kann man diese Prozesse auch gleich ``meucheln'' und damit zum Beispiel
dafür sorgen, dass eine Disk wieder freigegeben wird:
fuser -k /cdrom
würde zum Beispiel alle Prozesse beseitigen, die gerade auf dem
CD-Rom-Laufwerk arbeiten (vorausgesetzt die CD ist auf /cdrom gemountet).
- grep
- durchsucht eine oder mehrere Dateien nach einem angegebenen
Muster:
- grep muster datei
-
durchsucht datei nach der Zeichenkette ``muster''
- grep -i muster datei
-
sucht auch nach ``Muster'', ``MUSTER'' usw.
- grep -n muster datei
-
gibt die Zeilennummern mit aus
- grep -E 'mu*ster' datei
-
interpretiert das Muster als ``regular expression'', in diesem Fall passen
auch ``mster'', ``muuster'' und ``muuuuuuster'' usw.
- grep -F `echo -e 'musternpattern'` datei
-
such sowohl nach muster, als auch nach pattern (das eingeschobene echo sorgt
nur für einen Zeilenumbruch)
- gunzip
- entpackt eine mit gzip gepackte Datei.
- gzip
- (GNU Zip) ist eine relativ guter Packalgorithmus, mit dem einzelne
Dateien gepackt werden können. In der einfachen Variante (gzip
datei) wird datei in datei.gz eingepackt und datei danach gelöscht. In der
Variante ohne Parameter erwartet es den Input an standard in und gibt den
gepackten Output an standard out ab. Man kann noch die Qualität des
Packalgorithmus steuern: -1 ist sehr schnell aber ineffektiv, -9 ist langsam
aber sehr effektiv, normalerweise wird -6 genommen.
- hostname
- gibt den Namen des Rechners aus. Mit -f kann der komplette
Name (incl. Domain) ausgegeben werden. Mit -i die IP-Adresse(n) des Rechners.
- kill
- ist wahrscheinlich einer der Gründe warum Anfänger unberechtigte
Angst vor erfahrenen Unix-Administratoren haben. Aber ``I will kill you''
bezieht sich hier eher darauf, dass man lediglich aus dem System geworfen
wird. kill kann eine beliebige Anzahl von Prozess-ID's (siehe ps) als
Parameter bekommen, denen schickt es standardmäßig das Signal SIGTERM, was
diese Programme normalerweise veranlasst sich sofort zu beenden. Mit einer
Option kann man das gesendete Signal ändern. Z.B. -9 sendet das Kill-Signal,
dass den Prozessen keine Chance lässt und sie sofort beendet. Man kann die
Signale auch symbolisch angeben (in diesem Fall -KILL oder -SIGKILL). Hier
einige wichtige Signale:
- -1, -HUP
- ``hang up'', wird gesendet, wenn das Terminal des Prozesses
geschlossen wurde, bei Daemonen (System-Prozesse) kann man es benutzen, um
die Konfiguration erneut laden zu lassen.
- -9, -KILL
- beendet einen Prozess sofort, er bekommt keine Chance sich
sauber zu beenden, es sollte also nur im Notfall benutzt werden.
- -10, -USR1 und -12, -USR2
- sind frei belegbare Signale, die jedes
Programm selbst belegen darf (wird von einigen Daemonen wie -HUP verwendet).
- -11, -SEGV
- ``segmentation violation'' oder auch
Speicherzugriffsfehler, eine äußerst gemeine Art Programmierfehler
vorzutäuschen, wenn man es per kill sendet.
- -15, -TERM
- das normale Signal für das Beenden.
- -17, -CHLD
- wird immer dann gesendet, wenn sich ein Kindprozess eines
Prozesses beendet, nur in Ausnahmefällen für Nutzer interessant.
- -18, -CONT
- wird von der Bash bei fg und bg gesendet, setzt einen
angehaltenen Prozess fort.
- -19, -STOP; -20, -TSTP; -21, -TTIN und -22, -TTOU
- halten Prozesse an.
(Das T am Anfang bedeutet ``vom Terminal gesendet''.)
Eine komplette Liste gibt kill -l aus.
- ln
- erstellt eine neue Referenz (link) auf eine Datei. ln
datei1 datei2 erstellt für datei1 den zweiten Dateinamen datei2,
tatsächlich handelt es sich danach um die selbe Datei, sie hat nur 2 Namen.
Mit Verzeichnissen ist dies nicht möglich, da das zu sehr seltsamen Effekten
im Dateisystem führen könnte. ln -s datei1 datei2 erstellt
datei2 als symbolischen Link auf datei1, d.h. datei2 ist eine eigene Datei,
die aber bei Zugriffen auf datei1 umgeleitet wird (ein symbolischer Link
speichert einen Dateinamen, auf den das System automatisch umleitet, wenn
darauf zugegriffen wird). Symbolische Links dürfen beliebigen Text enthalten,
jedoch sind nur reale Datei- oder Verzeichnisnamen sinnvoll. Symbolische Links
dürfen daher auch Verzeichnisse und Dateien auf anderen Platten
referenzieren.
- loadkeys
- (nur Console, nicht X: siehe ``man xmodmap'') lädt eine neue
Tastaturtabelle (zu finden bei Debian unter /usr/share/keymaps).
- login
- beginnt eine Session, wird eigentlich nie vom User selbst
aufgerufen.
- ls
- ``list files'' hielt lange Zeit den Rekord an Optionen (wurde von
mkisofs gebrochen, die Implementation von ACL's sollte dies aber wieder zu
Gunsten von ls ausgleichen). Die beiden wichtigsten Optionen sind -l (long,
gibt Rechte, Besitzer, Größe, Modifikationszeit aus) und -a (all, gibt auch
Dateien aus, die mit ``.'' beginnen aus).
- mkdir
- erstellt Verzeichnisse. Einfach den Verzeichnisnamen angeben:
mkdir neues/verzeichnis, gibt man noch -p an werden auch alle
Verzeichnisse dazwischen aufgebaut (vorrausgesetzt sie existieren noch nicht).
- mknod
- nur für root: erstellt Gerätedateien. Für alle: mknod nodename p legt eine named-Pipe an. Eine named-Pipe ist etwas
ähnliches, wie ``|'' in echo test | cat, hat aber einen Namen
(daher ``named'') und kann daher von anderen Programmen geöffnet werden. Ein
Skript könnte damit zum Beispiel auf Ereignisse vom Nutzer warten.
- mktemp
- kann in Skripten benutzt werden, um temporäre Dateien
anzulegen:
TMPFILE=`mktemp /tmp/myskript.XXXXXX`
dosomething with $TMPFILE
Die X'e werden dabei durch eine eindeutige ID ersetzt.
- more
- kann benutzt werden, um sich eine Datei oder die Ausgabe eines
Programmes in Ruhe seitenweise anzusehen:
cat /really/big/file |more
less ist aber meistens eine bessere Idee.
- mount
- bindet ein Blockgerät (meistens irgendeine Form von Disk) an ein
Verzeichnis. Ohne Parameter gibt es alle ``gemounteten'' Disks aus. Nur root
darf die flexible Variante nutzen:
mount [-t type] [-o options] /dev/XX /mountpoint
type ist der Dateisystemtyp auf der Disk (DOS-Floppies: msdos, Win95: vfat,
CDRom: iso9660, Linux-Platten: ext2 oder reiserfs, Linux-Floppy: meist minix),
meistens wird der Typ jedoch schon automatisch erkannt. Mit -o kann man dem
Dateisystem-Treiber Optionen übergeben (genaueres in der Man-Page zu mount),
XX wird durch den Namen der Gerätedatei ersetzt (z.B. hda1 für die erste
Primäre Partition auf der ersten IDE-Platte), mountpoint ist ein Verzeichnis
an das die Disk angebunden werden soll (bei dieser Eingabe meistens /mnt).
Als normaler Nutzer darf man nur die ``kleine'' Variante von mount
einsetzen:
mount /mountpoint
Wobei /mountpoint in /etc/fstab für Nutzer freigegeben sein muss.
- mv
- verschiebt eine Datei oder ein ganzes Verzeichnis:
mv quelle ziel
- netstat
- listet alle aktiven Netzwerk- und lokalen Socket-Verbindungen
auf. Mit Parameter läßt sich noch mehr oder auch weniger Output
herauskitzeln. Damit läßt sich auch recht gut aufstöbern, ob da jemand
Sicherheitslöcher ins Netz schneidet.
- ping
- versucht den angegebenen Rechner (IP oder Name) zu erreichen,
indem sogenannte ``ping-request'' Pakete gesendet werden, der Host wird (wenn
die Pakete ihn erreichen) dann mit ``ping-echo'' antworten und man bekommt
eine hübsche Statistik angezeigt. Bekommt man nichts angezeigt kann man mit
traceroute nach der durchtrennten Leitung weitersuchen. Ping hat seinen Namen
nach dem ``Ping'' Geräusch eines U-Boot-Sonars.
- ps
- listet laufende Prozesse auf. ps x listet alle Prozesse
des aufrufenden Nutzers auf, ps a die Prozesse aller Nutzer,
ps ax dann alle Prozesse aller Nutzer. Und so weiter, man kann sich
nahezu alle Systemparameter der Prozesse ansehen (CPU-Belastung, Speicher,
Elternprozess, Terminal, usw.).
- pwd
- ``pring working directory'' gibt das aktuelle Verzeichnis aus.
- readlink
- gibt aus wohin ein symbolischer Link zeigt.
- rm
- ``remove'' löscht die angegebenen Dateien (im Falle von mehrfach
referenzierten Dateien betrifft das nur den angegebenen Dateinamen. Mit -i
fragt rm vor jeder Datei nach (so nervtötent wie DOS). Mit -f zwingt man rm
einfach zu löschen, wenn es kann und Fehler zu ignorieren (in Skripten
unbedingt angeben!). Mit -r bringt man es dazu rekursiv Verzeichnisse zu
löschen.
- rmdir
- lösch Verzeichnisse (allerdings nur wenn sie leer sind).
- sed
- ``stream editor'', sowas wie ed aber auf Pipes spezialisiert. Hat
im Makefile dieses Artikels recht gute Arbeit geleistet, ist aber zu komplex,
um es hier ``abzuhaken''.
- setserial
- initialisiert serielle Ports, da heutige Systeme das recht
gut von alleine tun wird man nur selten damit in Berührung kommen und dann
hilft man weiter... ;-)
- sh
- ist immer eine Bourne-Shell-kompatible Shell, bei Linux meistens die
Bash.
- sleep
- blockiert für eine angegebene Anzahl von Sekunden. Kann benutzt
werden, um in Schleifen auf Ereignisse zu warten.
- stty
- kann das Terminal umkonfigurieren (wer merkt sich schon
ESC-Sequenzen für die vielen verschiedenen Terminalarten). Interessant ist
sicherlich stty echo, um seine eigenen Tastaturaktionen (wieder)
beobachten zu können. (Siehe auch reset.)
- su
- ``switch user'' wechselt den Nutzer. Beispiele:
su nutzer
wechselt (nach Passworteingabe) auf den Nutzer ``nutzer'', behält aber sonst
die Umgebung bei.
su - nutzer
welchselt in eine Login-Shell von nutzer (so als hätte er sich am
Login-Prompt angemeldet)
su nutzer -c ¨kommando parameter¨
führt kommando mit den Rechten von nutzer aus (ich compiliere z.B.
grundsätzlich als normaler Nutzer und rufe dann -c ''make install'' auf)
Wird der Nutzername weggelassen wird er automatisch auf root gesetzt. Diese
beiden Kommandos sind also äquivalent:
su - root
su -
- sync
- gibt dem System den Befehl so schnell wie möglich alle
gepufferten Dateien auf die Platten zu synchronisieren (sollte man vor
Operationen machen, die nicht unterbrochen werden dürfen, wie das
Überspielen langer Aufnahmen über die Soundkarte).
- tar
- ``tape archiver'' sichert mehrere Dateien/Verzeichnisse in eine
Datei (die auch gerne eine Gerätedatei, wie ein Band, sein darf). Bei den
Parametern von tar darf man sich aussuchen, ob man ``-'' davor schreibt oder
nicht. Beispiele:
tar c dateien... >datei.tar
packt die Dateien zusammen auf standard out (was hier auf datei.tar umgelenkt
wird)
tar x <datei.tar
packt alle Dateien im Archiv auf standard in aus (standard in hier:
datei.tar)
tar cf datei.tar dateien....
f steht für file, danach kommt also der Name der Archivdatei
tar cvf datei.tar dateien...
v ist verbose, es wird etwas mehr darüber gesagt, was getan wird
tar xvfz datei.tar.gz
z sagt tar, dass das Archiv mit gzip/gunzip gepackt/entpackt werden soll
tar xvfI datei.tar.bz2
I ist das selbe mit bzip2/bunzip2
- tempfile
- erstellt eine temporäre Datei (es braucht keinen Parameter,
wie mktemp, gibt den Namen aber auch auf standard out aus).
- touch
- setzt die Modifizierungszeit einer Datei (oder erstellt die
Datei, wenn sie noch nicht existiert). Mit -t kann man eine alternative Zeit
angeben.
- true
- ein Programm, das immer funktioniert, also den Status 0
zurückliefert. Wird oft bei while-Schleifen eingesetzt, um Endlos-Schleifen
programmieren zu können. (Auch als Shell für gesperrte Nutzer beliebt.)
- umount
- macht eine mount-Operation rückgängig, als Parameter kann man
entweder die Gerätedatei oder den Mountpoint angeben.
- uname
- gibt Name, System, Kernelversion usw. des Hosts aus (-a: alle
Parameter, -m Hostname, -s Systemname).
- uncompress
- compress ist ein alter Unix-Packalgorithmus, dies ist der
Entpacker dazu (siehe gzip).
- zcat
- zcat datei.gz ist äquivalent zu gunzip
<datei.gz.
Das Verzeichnis /usr/bin enthält all jene Programme, die nicht zum Start des
Systems notwendig sind, aber auch nicht dem X-Window-System zuzuordnen sind
(die sind unter /usr/X11/bin).
Hier landen auch die Programme von größeren Paketen (wenn sie nicht aus
Versehen in /usr/local/bin abgelegt werden), wie LATEX und KDE. Ich
beschränke mich hier auf all die kleineren Programme, die die nächsten Seiten
schon zur Genüge füllen werden. Auch werde ich meistens nur erwähnen wofür das
Programm gut ist, die Fülle an Optionen kann in den man-Pages nachgelesen
werden. Es gibt einfach zu viele Programme für Unix/Linux, um hier eine
vollständige Referenz wiederzugeben.
Wer ein wichtiges Kommando vermissen sollte schreibe bitte einen Bug-Report in
das Bugtracking-System auf http://sourceforge.net/projects/lugddlect
mit dem Namen des Programms und einer Beschreibung.
- 822-date
- gibt die aktuelle Zeit im Format des RFC 822 aus (822:
Formatierung von eMails).
- a2p
- verwandelt AWK-Skripte in Perl-Skripte
- a2ps
- verwandelt ASCII-Text in PostScript a2ps -2 textfile
gibt textfile auf dem Standarddrucker aus und formatiert je 2 ASCII-Seiten auf
eine physische Seite (ein A4-Blatt wird in 2 A5 Hälften unterteilt). Mit
weiteren Parametern kann man beeinflussen, wie der Text formatiert werden
soll, welche Daten sonst noch auf die Seite gelangen (z.B. Username, Datum)
oder ob der Output in eine Datei statt auf den Drucker umgelenkt werden soll
(-o). A2PS beherrscht sogar Syntax-Highlighting in Dokumenten.
- access
- testet, ob eine Datei ein bestimmtes Zugriffsrecht gesetzt hat
(access -r file testet ob file lesbar ist). Siehe auch test.
- alien
- kann Paketdateien der verschiedenen Distributoren ineinander
umwandeln (beispielsweise RPM nach DEB: alien -todeb source.rpm).
- anytopnm
- wandelt eine beliebige Bilddatei in das PNM Format um.
- apropos
- kann man Stichworte übergeben, die es dann in man-pages zu
finden versucht. Such man z.B. nach einem Befehl, der Prozesse auflistet, kann
man mit apropos process alle Befehle auflisten, die etwas mit
Prozessen zu tun haben, darunter auch ps.
- asciitopgm
- verwandelt eine ASCII-Grafik in eine PGM-Datei (Graustufen).
- at
- merkt sich ein Shell-Skript für die Ausführung zu einem späteren
Zeitpunkt vor. (Siehe auch atq, atrm, und batch)
- atktopbm
- wandelt Raster-Dateien aus dem Andrew Toolkit in PBM's
(Portable BitMap).
- atq
- listet alle at-jobs des Nutzers auf, die noch nicht gelaufen sind.
(Siehe at)
- atrm
- löscht einen at-job. (siehe at)
- aumix
- ist ein Mixer auf dem Terminal, er kennt zwei Modi: im
interaktiven Modus kann man die Regler mit Pfeiltasten und einigen anderen
Tasten bedienen, im Kommando-Modus steuert man die Regler mit Parametern auf
der Befehlszeile. Aumix kann z.B. in Skripten eingesetzt werden, um nach dem
Laden der Sound-Module ein Anfangs-Level für alle Regler zu setzen.
- awk
- kann über eine recht komplexe Syntax Texte bearbeiten und
auswerten. (siehe auch sed)
- basename
- gibt den Anteil nach dem letzten / eines Dateinamens aus.
self=`basename $0` kann in Skripten benutzt werden, um den
Namen des Skriptes ohne den Pfad zu bekommen, z.B. bei Skripten, die unter
mehreren Namen existieren und je nach Name unterschiedlich reagieren.
- batch
- merkt sich ein Skript als at-job, führt es jedoch aus, sobald die
Belastung des Systems niedrig genug ist (normalerweise: Load-Average<1,5)
- bc
- Kommandozeilen-Rechner, der sehr nützlich ist, um z.B.
nachzurechnen, ob ein Image noch auf die CD passt oder wieviel Geld gerade
durch die Modemleitung geflossen ist. Unterstützt auch Variablen.
- bdftops
- konvertiert BDF-Schriften in PostScript-Schriften.
- bioradtopgm
- konvertiert (konfokale) Biorad-Bilder in PGM.
- bmptoppm
- wandelt Windows-Bitmaps in PPM (Portable PixMap).
- brushtopbm
- wandelt ein Xerox doodle brush Bild in PBM.
- buildhash
- Hilfsprogramm für ISpell.
- bunzip2
- entpackt bzip2-Dateien (siehe gunzip). BZip2 ist ein besonders
bei großen Dateien effektiverer Algorithmus als GZip.
- bzcat
- gibt eine mit bzip2 gepackte (Text-)Datei direkt auf standard out
aus.
- bzip2
- packt eine Datei. Mit Parametern läßt sich steuern, wie effektiv
der Algorithmus arbeiten soll.
- bzip2recover
- kann zumindest Teile von fehlerhaften Dateien, die mit
BZip2 gepackt wurden, retten. BZip2 packt in Blöcken von 100-900kB, dieses
Programm spaltet eine BZip2-Datei in diese Blöcke auf, die unbeschädigten
können danach entpackt werden.
- c2ph
- kann die Debugger-Tabellen des gcc in Listings von C-Symbolen und
Adressen verwandeln.
- c89
- ruft gcc so auf, dass es nach den Standards von ANSI-C 89
compiliert.
- cal
- gibt einen bestimmten Monat oder ein Jahr als ASCII-Kalender aus.
Ohne Parameter: der aktuelle Monat; 1 Parameter: das angebene Jahr (Vorsicht:
cal 2 gibt das Jahr 2 n. Chr. aus, nicht Februar oder das Jahr
2002); 2 Parameter geben einen bestimmten Monat eines Jahres aus (cal 2 2001 gibt Februar 2001 aus).
- calendar
- gibt die Ereignisse des Tages aus. Es kann über eine Datei
.calendar konfiguriert werden.
- cancel
- wenn LPRng als Drucksystem verwendet wird kann man damit
Druckaufträge löschen.
- captoinfo
- wandelt eine TermCap-Datei in eine TermInfo-Datei um. Beide
werden verwendet, um das Verhalten von Terminals zu beschreiben (wird von
Programmen benötigt, die Dialoge auf dem Terminal anbieten, z.B. mc).
- cc
- Alias für gcc.
- chage
- ändert die Informationen, die entscheiden, wann das Passwort
eines Nutzers ausläuft (also, wie lange es gültig ist, wann gewarnt werden
soll, etc.).
- charset
- ändert den Zeichensatz auf einer Textkonsole.
- chattr
- ändert die zusätzlichen Attribute von Dateien auf einem
ext2-Dateisystem (z.B. append-only, immutable).
- chfn
- ändert die Informationen über den vollen Namen eines Nutzers in
/etc/passwd (kann auch von dem Nutzer selbst aufgerufen werden).
- chkdupexe
- durchsucht $PATH nach Programmen, die mehrmals existieren
und beschwert sich über symbolische Links, die nirgendwohin zeigen.
- chsh
- ändert die Login-Shell eines Nutzers (kann auch von ihm selbst
aufgerufen werden).
- chvt
- schaltet zwischen Terminals um. chvt 4 schaltet von
jeder beliebigen Konsole auf Konsole 4 (wie Alt-F4).
- ci
- Checkin-Programm von RCS (siehe rcs und co).
- cjpeg
- wandelt eine beliebige Bilddatei (PPM, PGM, BMP, Targa, RLE) in
eine JPEG-Datei um.
- cksum
- bildet eine Checksumme einer Datei und gibt die Größe und die
Checksumme aus.
- clear
- löscht den Inhalt des aktuellen Terminals.
- cmp
- vergleicht zwei Dateien (siehe diff).
- cmuwmtopbm
- wandelt BitMaps des CMU-WindowManagers in PBM-Bilder.
- co
- Checkout-Programm von RCS, co datei packt die neueste
Version von datei aus der RCS Datei datei,v aus.
- col
- filtert aus standard in alle ``reverse linefeeds'' aus. Dies sind
Anweisungen an das Terminal (oder den Drucker) eine Zeile höher zu gehen.
- colcrt
- wandelt den Output von nroff so um, dass er auf Terminals
angezeigt werden kann.
- colrm
- entfernt Spalten aus einer Datei.
- column
- formatiert Text so um, dass er in mehreren Spalten steht.
- comm
- vergleicht zwei sortierte Dateien zeilenweise (siehe diff).
- consolechars
- lädt einen Font für die Textkonsole.
- crontab
- macht Einträge in die Crontab, das sind Aktionen, die
regelmäßig zu bestimmten Zeitpunkten ausgeführt werden (mein Rechner weckt
mich z.B. sehr gerne um Mitternacht, indem er die man-Pages neu organisiert).
- csplit
- zerlegt eine Datei abhängig von ihrem Inhalt.
- cut
- löscht einzelne Spalten aus einer Datei, per Parameter kann man
festlegen, welche Spalten und wie sich eine Spalte definiert (Trennzeichen,
Breite etc.).
- dc
- noch ein Kommandozeilen-Taschenrechner, er arbeitet nach der
umgekehrten polnischen Notation.
- ddate
- konvertiert Gregorianische Datumsangaben in Discordianische.
- deallocvt
- gibt eine Textkonsole frei.
- diff
- gibt den Unterschied zwischen zwei Dateien oder ganzen Pfaden aus.
Diff unterstützt verschiedene Formate, mit einigen davon kann man sehr einfach
Patches erstellen, die dann mit patch (siehe dort) bei anderen Nutzern an die
entsprechenden Dateien angehängt werden können (die Patches des Linux-Kernels
sind mit diff -ruN alteVersion/linux linux erstellt (-r=rekursiv,
-u=unified diff Format, -N=auch neue Dateien).
- diff3
- gibt Unterschiede zwischen 3 Dateien aus.
- diffpp
- gibt die Unterschiede eines diff-Files in Bezug zu einer
aktuellen Datei auf dem Drucker aus (diffpp aktuelledatei
<diff-file).
- dig
- schickt Anfragen an Nameserver. (siehe nslookup)
- dircolors
- kann benutzt werden, um die Variable LS_COLORS zu setzen,
damit ls farbigen Output produziert.
- dirname
- (Gegenstück zu basename) gibt alles vor dem letzten ``/'' eines
Dateinamens aus.
- diskd
- kann ein Kommando ausführen, sobald eine Diskette im Laufwerk
ist, z.B. kann es die Disk mounten. Vorsicht: diskd kann Laufwerk und
Disketten zerstören. (Es sucht nach Sektor -1, um eine Disk zu erkennen.)
- diskseekd
- Simuliert den Floppy-Seek des BIOS, was den Staub aus dem
Laufwerk schütteln soll. Ich persönlich ziehe Pusten vor, aber bei Firewalls
einige Stockwerke höher könnte das mit Treppensteigen verbunden sein...
- djpeg
- entpackt ein JPEG-Bild in ein anderes Bildformat (siehe cjpeg).
- dnsquery
- stellt Anfragen an Nameserver (selber Zweck wie dig, andere
Syntax).
- dotlockfile
- erzeugt, entfernt oder checkt Lockfiles. Dieses Kommando
kann genutzt werden, um den Zugriff von Skripten auf eine Datei zu
synchronisieren (z.B. bei einem Skript, das jeweils beim Einreffen einer Mail
ausgeführt wird, aber nicht 2x gleichzeitig laufen darf). Wichtig dabei ist
natürlich, dass alle anderen Programme/Skripte, die auf die Datei zugreifen,
nach dem selben Lock-File fragen.
- du
- scannt wieviel Speicherplatz von den angegebenen Dateien und/oder
Verzeichnissen verbraucht wird.
- dumpkeys
- gibt die aktuelle Tastaturtabelle der Konsole aus.
- enscript
- wandelt ASCII-Text in PostScript.
- env
- erzeugt für das übergebene Kommando eine neue Umgebung (andere
Variablen).
- epsffit
- skaliert EPS-Bilder/-Text (Encapsulated PostScript) in eine
bestimmte Größe (Bounding Box).
- epstopdf
- wandelt EPS- in PDF-Dateien um.
- esd-config
- gibt Compiler-Optionen aus, damit gegen den Enlightenment
Sound Daemon gelinkt werden kann.
- ex
- anderer Name für vi.
- expand
- konvertiert TAB's in einzelne Leerzeichen (nützlich für die
Ausgabe auf Druckern oder wenn Quelltext in TEX-Texte eingefügt werden.
(siehe auch unexpand)
- expiry
- erzwingt korrektes Verhalten für ausgelaufene Passworte (sprich:
es sperrt sie).
- expr
- wertet Ausdrücke aus (Formeln, Vergleiche, etc.) und gibt das
Ergebnis auf standard out aus.
- extractres
- extrahiert Resourcen (Fonts, Muster (Patterns) usw.) aus
Postscript-Dateien.
- factor
- gibt die Primzahl-Faktoren von Zahlen aus.
- faillog
- wertet das ``faillog'' aus und kann Login-Limits setzen. Das
Faillog protokolliert alle fehlgeschlagenen Login-Versuche eines Nutzers.
- fax2ps
- wandelt ein TIFF-Fax in PostScript um.
- fax2tiff
- wandelt ein ``Raw-Fax'' (Gruppe 3 Fax) in ein TIFF-Fax (Gruppe
3/4 Fax) um.
- fdformat, fdlist, fdmount, fdmountd, fdrawcmd, fdumount
- die FD-Utils
können benutzt werden, um mit Floppies umzugehen. Normalerweise ist die
Verwendung einfacher mounts, automount oder der mtools einfacher.
- fgconsole
- gibt die Nummer der aktuellen Konsole aus (siehe chvt).
- file
- ermittelt den Dateityp einer Datei anhand ihres Inhalts.
- find
- such nach Dateien, die einem angegebenen Muster (Name, letzter
Schreibzugriff, etc.) entsprechen und gibt diese aus oder führt ein Kommando
damit aus. Beispiel: find . -name '*.c' sucht ab dem aktuellen
Verzeichnis rekursiv nach allen Dateien, die auf .c enden.
- finger
- gibt Daten zu Nutzern auf dem lokalen oder einem entfernten Host
aus. Wenn im Homeverzeichnis des Nutzers eine Datei .plan existiert wird diese
ebenfalls ausgegeben. (All meine Versuche damit das Terminal des Aufrufers zu
ruinieren schlugen fehl. Das nur als Hinweis an Hobby-Cracker.)
- fitstopnm
- konvertiert ein FITS Bild in ein PNM.
- fixdlsrps, fixfmps, fixmacps, fixps, fixpsditps, fixpspps, fixscribeps,
fixtpps, fixwfwps, fixwpps, fixwwps
- beseitigt Ungereimtheiten in
verschiedenen Postscriptdialekten, damit diese Dateien mit den PSUtils
bearbeitet werden können.
- fmt
- formatiert Text, indem Absätze neu ausgerichtet werden (zu lange
Zeilen werden umbrochen, zu kurze zusammengefasst).
- fold
- umbricht zu lange Zeilen eines Textes.
- formail
- formatiert eMails so, dass sie im mbox-Format gespeichert
werden können. Mbox ist das Standardformat für Mail unter Unix.
- free
- zeigt an, wieviel Speicher noch verfügbar ist.
- from
- gibt die Namen derjenigen an, die eMails an den Aufrufer geschickt
haben.
- fstopgm
- konvertiert ein Usenix FaceSaver Bild in ein PGM.
- ftp
- einfacher FTP-Client für die Konsole.
- funzip
- erwartet ein ZIP-Archiv an standard input und gibt die erste
Datei daraus auf standard out aus.
- g++
- GNU C++-Compiler.
- g3topbm
- konvertiert ein Gruppe 3 Fax in ein PBM-Bild.
- gawk
- siehe awk.
- gemtopbm
- konvertiert GEM (*.img) Dateien in PBM's.
- genksyms
- generiert Versionsinformationen über C-Dateien. Dieses
Programm wird vom Makefile des Linux-Kernels benutzt, um sicherzustellen, dass
Module nur an den Kernel passen, in dem die Parameter der Funktionen noch die
selbe Struktur haben.
- getent
- holt Daten aus den ``administrativen Datenbanken'' (passwd,
group, hosts, services, protocols oder networks).
- getfdprm
- gibt die momentane Formatierung eines Laufwerks aus.
- getkeycodes
- gibt das Scancode-Keycode-Mapping der Tastaturtabelle des
Kernels aus.
- getopt
- kann in Shell-Skripten verwendet werden, um lange Optionen
(--option) im GNU-Stil auszuwerten.
- getpeername
- gibt den Namen des Hosts/Service aus, der mit standard in
verbunden ist (um z.B. bei telnet-Verbindungen den aufrufenden Host zu
bekommen).
- gif2tiff
- wandelt GIF-Bilder in TIFF-Grafiken.
- giftopnm
- wandelt GIF in PNM Bilder.
- gmake
- siehe make.
- gouldtoppm
- konvertiert Gould-Scanner Dateien in PPM-Bilder.
- gpasswd
- verwaltet Gruppen, wenn gshadow verwendet wird. Gruppen können
Administratoren haben, die dann Mitglieder hinzufügen oder entferen dürfen.
- gpic
- siehe pic.
- gpm-root
- kann auf Mausaktionen mit Menüs reagieren, die in die Konsole
gelegt werden.
- grodvi
- wandelt groff-output in TEX-DVI-Dateien.
- groff
- wandelt spezielle Textdateien in verschiedene Formate (z.B. so
dass sie auf dem Terminal ausgegeben werden können oder in PostScript). Dieses
Format wird z.B. für man-pages verwendet.
- grohtml
- wandelt den Output von groff in HTML.
- grolj4, grops, grotty, groups
- weitere Wandler für groff.
- gs
- GhostScript, ein PostScript-Interpreter, wird meist nur von anderen
Programmen aus aufgerufen (z.B. gv oder ghostview).
- gtk-config
- gibt Parameter für das Linken gegen GTK aus.
- gzexe
- komprimiert Programme so, dass sie bei Aufruf sich selbst
entpacken und dann ganz normal ausgeführt werden.
- head
- gibt die ersten Zeilen einer Datei aus (siehe auch tail).
- hexdump
- gibt den Inhalt einer Datei hexadezimal aus. (siehe auch od)
- hipstopgm
- konvertiert HIPS-Dateien in PGM-Bilder.
- host
- sucht nach Informationen über Internet-Hosts. (DNS)
- hostid
- gibt die ID des Hosts aus (stammt aus der Sun-Welt, wo alle
Rechner eine Seriennummer haben).
- hpcdtoppm
- konvertiert ein Photo-CD-Bild in ein PPM.
- htdigest, htpasswd
- Programme mit denen die Authentifikation gegenüber
Webpages kontrolliert werden kann (Apache).
- icontopbm
- konvertiert Sun-Icons in PBM.
- iconv
- konvertiert Textdateien in andere Zeichensätze um.
- id
- gibt die reelle und die effektive User- und Group-ID aus.
- ifnames
- gibt alle Namen aus, die ein C-File per #define definiert.
- igawk
- schickt Input-Files erst durch den Präprozessor und dann durch
awk, dadurch kann eine AWK-Datei #include's enthalten.
- ilbmtoppm
- wandelt ILBM Bilder in PPM.
- imgtoppm
- wandelt IMG's in PPM.
- info
- ist das GNU Hilfesystem. Alle größeren Applikationen sind in info
abrufbar (glibc, gcc, etc.). info info gibt eine Einführung in die
Benutzung.
- infocmp
- vergleicht TermInfo-Einträge.
- infotocap
- wandelt TermInfo- in TermCap-Dateien (siehe captoinfo).
- install
- installiert Dateien in das vorgegebene Verzeichnis, sorgt
dafür, dass das Verzeichnis existiert und setzt Zugriffsrechte.
- ipcrm, ipcs
- löscht, listet System-V-IPC-Resourcen (shared mem,
Semaphoren, Message-Queues).
- ispell
- Rechtschreibung für Linux. Man kann ispell mit beliebigen
Textdateien (auch LATEX oder HTML) aufrufen, um die Rechtschreibung zu
prüfen.
- join
- vereint die Zeilen zweier Dateien (nicht so gut wie ein SQL-join,
hilft aber oft weiter).
- jpegtran
- übersetzt zwischen verschieden Formatierungen von
JPEG-Dateien.
- kbd_mode
- setzt oder verändert den Modus der Tastatur (Scancode,
Keycode, ASCII, UTF-8).
- killall
- etwas komfortablere Variante von kill. Man kann einen
Programmnamen übergeben.
- last
- zeigt alle zuletzt eingeloggten Nutzer an.
- lastlog
- wertet das Lastlog (Logbuch aller Logins) aus und gibt für
jeden Nutzer an, wann er das letzte Mal eingeloggt war.
- ldd
- sucht nach allen Bibliotheken (shared libs), gegen die ein Programm
gelinkt ist.
- less
- ist ein Witz, denn eigentlich ist less wesentlich besser bedienbar
als more. Less gibt sein standard in seitenweise aus (man kann sogar darin
navigieren (Pfeiltasten) und suchen (/suchbegriff und rückwärts
?suchbegriff)).
- lessecho
- gibt alle Argumente auf standard out aus (soweit: wie echo),
Argumente, die Leerzeichen enthalten werden in '' '' eingeschlossen.
- lessfile, lesspipe
- gibt Kommandos aus, mit denen man less dazu bringen
kann, Dateien transparent auszuwerten (tar-files auflisten, gzip-files
entpacken). Lesspipe leitet die Dateien dabei durch eine Pipe und lessfile
speichert die Daten in einer Datei zwischen:
eval `lessfile` oder:
eval `lesspipe`
setzt die entsprechenden Parameter.
- lesskey
- kann benutzt werden, um die Tastenbelegung für less
umzukonfigurieren -- dabei wird jeweils einer Zeichensequenz ein
less-Kommando zugeordnet. Man übergibt lesskey einfach eine Datei mit den
entsprechenden Definitionen. Wer von den Experten jetzt an Magie glauben mag:
lesskey speichert eine binäre Version seines Inputs in $HOME/.less .
- lispmtopgm
- konvertiert LISP-Bitmaps in PGM's.
- locale
- gibt aus, welche Parameter für die Lokalisierung gesetzt sind,
also welche Sprachen wofür eingestellt sind.
- locate
- kann man einen Dateinamen oder einen Teil davon übergeben, es
sucht diesen dann in seiner internen Datenbank.
- lockfile
- kann für Skripte Lock-Dateien erzeugen. (siehe dotlockfile)
- logger
- macht Einträge in das System-Log. Shell-Skripte können damit
ihren Status, ebenso wie andere Systemprozesse, an das System-Log weitergeben.
- logname
- gibt den Login-Namen des Nutzers aus.
- lorder
- sortiert Objektdateien, indem es eine Liste von Abhängigkeiten
ausgibt: links steht eine Datei, die ein Symbol benutzt, das in der Datei
rechts steht. (weiter: siehe tsort)
- lp, lpr
- druckt die übergebene Datei aus. Je nach Filter wird die Datei
entweder direkt an den Drucker weitergeleitet oder erst in das druckereigene
Format übersetzt. Normalerweise werden Dateien im PostScript-Format übergeben,
einige Filter verstehen auch andere Formate.
- lpq
- fragt den Status des Druckers ab.
- lprm
- löscht Druckaufträge aus der Warteschlange.
- lpstat
- fragt den Status der Aufträge in der Warteschlange ab.
- lsattr
- listet die zusätzlichen Attribute einer Datei auf dem
ext2-Dateisystem auf.
- lwp-download, lwp-mirror, lwp-request, lwp-rget
- biten Möglichkeiten
Dateien aus dem Netz zu laden und lokal zu speichern.
- lynx
- einfacher Web-Browser auf der Kommandozeile. (vgl. w3m)
- magic2mime
- wandelt den Output von file in eine mögliche Klassifizierung
für MIME (wie text/plain).
- mail
- ohne Parameter: ein sehr einfacher Mail-Reader; mit Parametern:
sendet eMail
- mailstat
- wertet Mail-Logfiles aus und generiert Statistiken.
- make
- sehr mächtiges Werkzeug zur automatischen Generierung von Dateien
aus anderen Dateien (z.B. Programme aus zahlreichen Quelltexten).
- makeindex
- generiert Indizes aus Textdateien. Wird zum Beispiel von man
benutzt, um Daten für apropos zur Verfügung zu stellen.
- makeinfo
- übersetzt TEX-Info Quellen in info-Pages.
- man
- gibt Hilfe zu Kommandos (1, 8), einigen Konfigurationsdateien (5)
und Funktionen (2, 3) aus. Die Zahlen in Klammern sind jeweils die
``sections'' der man-Pages, wenn es in mehreren Sektionen eine man-Page mit
dem selben Namen gibt kann man man sagen, aus welcher Sektion die Page geladen
werden soll. (z.B.: man 1 man)
- mandb
- generiert den man-Page-Index.
- manpath
- gibt die Verzeichnisse aus, in denen nach man-Pages gesucht
wird.
- mbadblocks
- checkt Disketten mit FAT-Dateisystem (msdos, vfat) auf
fehlerhafte Blöcke und markiert diese.
- mc
- ist der Midnight-Commander. Frei nach dem NortonCommander, nur
besser auf Unix/Linux abgestimmt. Er versteht FTP, DOS-Floppies. Kann tgz und
zip Archive wie Pfade behandeln. Usw.
- mcat
- gibt ganze Floppy-Images aus oder schreibt sie auf die Floppy. Im
Gegensatz zu cat und dd kann es den mtools-Floppy-Daemon nutzen, um remote
Floppies anzusprechen.
- mcd
- ändert das Arbeitsverzeichnis der mtools. Ohne Parameter gibt es
das Verzeichnis aus.
- mcedit
- sehr leistungsfähiger Editor für Terminals. Unterstützt u.A.
Source-Highlighting.
- mcookie
- erstellt ``Magic Cookies'' für xauth. Ein Cookie ist ein
128-bit Wert, der zur Authentifikation beim X-Server benutzt werden kann.
Beispiel: xauth add :0 . `mcookie`
- mcopy
- kopiert Dateien von/auf DOS-Disketten. Beispiele:
mcopy datei a: kopiert datei auf die Diskette
mcopy a:datei . kopiert datei von der Diskette in den aktuellen
Pfad.
- mcserv
- Netzwerk-Dateisystem-Server des mc.
- md5sum
- errechnet den MD5-Hashwert der Dateien, die übergeben werden.
Dieser Hash gilt allgemein als sehr sicher, da es praktisch fast unmöglich ist
gezielt eine Datei mit identischem Hash aber anderem Inhalt zu erstellen.
- mdel
- löscht eine Datei auf einer DOS-Diskette.
- mdeltree
- löscht einen ganzen Dateibaum auf einer DOS-Disk.
- mdir
- wie ls, nur auf einer DOS-Disk.
- mdu
- wie du, nur auf einer DOS-Disk.
- merge
- überträgt die Differenzen zwischen zwei Dateien (alt und
neu) in eine dritte Datei (ziel): merge ziel alt neu
- mesg
- setzt die Zugriffsrechte auf das aktuelle Verzeichnis: mesg y - alle dürfen Nachrichten (z.B. mit write) schicken; mesg
n - Nachrichten sind nicht erlaubt.
- mformat
- formatiert DOS-Floppies.
- mgrtopbm
- konvertiert MGR-Bitmaps in PBM.
- micq
- Textmode-Client für ICQ.
- mini-inetd
- lauscht an einem Port und startet für jede Verbindung ein
als Parameter übergebenes Programm.
- minicom
- einfaches Terminalprogramm, das benutzt werden kann, um
direkt mit dem Modem zu kommunizieren.
- mkfifo
- erstellt eine named-Pipe im Dateisystem. Eine Named Pipe ist
vergleichbar mit der Pipe, die mit | geöffnet wird, sie kann Daten in eine
Richtung übertragen, speichert sie aber nicht dauerhaft. Sie kann benutzt
werden, um einen Prozess im Hintergrund auf Nachrichten anderer unabhängiger
Prozesse warten zu lassen.
- mkisofs
- erstellt aus einem Verzeichnisbaum ein CD-Image, das dann mit
Brennprogrammen (z.B. cdrecord) auf eine CD gebrannt werden kann. Es
beherrscht ISO9660 und die Erweiterungen RockRidge (Unix-Dateirechte) und
Joilet (Microsoft). Es besitzt sehr viele Optionen, um das Aussehen des Images
zu beeinflussen.
- mkpasswd
- generiert aus einem Klartext-Passwort und einem ``Salt''-Wert
ein verschlüsseltes Unix-Passwort. Der Salt-Wert besteht aus 2 Zeichen, die
die Zeichen [a-zA-Z0-9./] enthalten dürfen.
- mlabel
- gibt einer DOS-Disk einen Namen (Label).
- mmd
- erstellt ein Verzeichnis auf einer DOS-Disk.
- mmount
- mountet eine DOS-Disk. Die Disk muss in /etc/fstab stehen.
- mmove
- verschiebt eine Datei auf einer DOS-Disk.
- mpack
- verpackt eine Datei in MIME-Mails und schickt diese ab.
- mpartition
- partitioniert eine DOS-Festplatte.
- mrd
- löscht ein Verzeichnis auf einer DOS-Disk.
- mren
- benennt eine DOS-Disk um.
- mshowfat
- zeigt die FAT-Einträge einer DOS-Disk an.
- mtvtoppm
- konvertiert den Output der MTV und PRT Raytracer in PPM's.
- mtype
- zeigt den Inhalt einer Datei auf einer DOS-Disk an.
- munpack
- packt Dateien aus MIME-Mails aus.
- mzip
- ändert das Schreibschutz-Bit auf ZIP-/Jaz-Disks.
- namei
- folgt einem Pfad, bis zum Ende. Gut um Probleme mit ``too many
levels of symbolic links'' zu finden.
- newaliases
- wird benutzt, um die /etc/aliases Datei neu zu einzulesen,
nachdem Änderungen vorgenommen wurden.
- newer
- vergleicht die Modifikationszeiten zweier Dateien.
- newgrp
- ändert die Gruppe unter der der Nutzer arbeitet.
- nice
- läßt ein Programm mit niedrigerer Priorität laufen (niedrigere
Priorität=höherer nice-Wert, normal ist 0 oder 5), root darf auch ``un-nett''
sein und eine höhere Priorität setzen.
- nl
- gibt die übergebenen Dateien mit Zeilennummern aus.
- nm
- listet alle Symbole einer Object-, Shared-Object- oder Programmdatei
auf.
- nmblookup
- sucht nach den Rechnern für einen Windows-Rechnernamen.
- nmixer
- interaktiver, text-basierter Sound-Mixer.
- nohup
- führt ein Programm so aus, dass es nicht beim Schliessen des
Terminals beendet wird.
- nroff
- der nroff-Textformatierer. Wird meist durch groff emuliert.
- nslookup
- fragt DNS-Server ab und löst DNS-Namen auf.
- ntpq
- erfragt den Status von Zeitservern (siehe xntpd).
- objcopy
- kopiert die Symbole einer Objektdatei in eine andere.
- objdump
- listet den Inhalt einer Objektdatei auf.
- od
- (octal dump) listet den Inhalt einer Datei oktal, hexadezimal usw.
auf.
- openssl
- konfiguriert SSL Verbindungen.
- openvt
- startet ein Programm auf einem neuen Terminal.
- pal2rgb
- konvertiert ein TIFF mit Farbpalette in ein RGB-TIFF.
- passwd
- ändert Systempassworte.
- paste
- schreibt die Zeilen mehrere Dateien jeweils durch Tabulator
getrennt nebeneinander auf standard out.
- patch
- fügt die Änderungen eines diff-files in einer Datei ein. Je nach
diff-Format kommt es auch mit Änderungen in der Datei klar, die bei der
Erstellung des diffs noch nicht vorhanden waren.
- pathchk
- checkt, ob ein Pfadname gültig ist (kann auch gegen den
POSIX-Standard testen).
- pbmclean
- ändert Pixel in einem PBM, die ihren Nachbarpixeln nicht
ähneln, dadurch kann z.B. ``Schnee'' korrigiert werden.
- pbmlife
- spiel ``game of life'' mit einem PBM.
- pbmmake
- generiert ein leeres PBM.
- pbmmask
- generiert ein Maskenbitmap aus einem normalen PBM.
- pbmpscale
- vergrößert PBM's.
- pbmreduce
- verkleinert ein PBM.
- pbmtext
- rendert Text in ein PBM.
- pbmto10x,
pbmto4425,
pbmtoascii,
pbmtoatk,
pbmtobbnbg,
pbmtocmuwm,
pbmtoepsi,
pbmtoepson,
pbmtog3,
pbmtogem,
pbmtogo,
pbmtoicon,
pbmtolj,
pbmtoln03,
pbmtolps,
pbmtomacp,
pbmtomgr,
pbmtopgm,
pbmtopi3,
pbmtopk,
pbmtoplot,
pbmtoptx,
pbmtox10bm,
pbmtoxbm,
pbmtoybm,
pbmtozinc
- konvertiert PBM's in andere Bildformate.
- pbmupc
- generiert Strichcodes (Standard: Universal Product Code)
- pcxtoppm
- konvertiert PCX in PPM Bilder.
- pdf2dsc
- generiert eine Postscript-Beschreibungsdatei, mit der GhostView
die PDF Datei dann lesen kann.
- pdf2ps
- wandelt eine PDF Datei in eine PostScript-Datei.
- pdiff
- druckt die Unterschiede zwischen zwei Dateien (benötigt wdiff).
- perl
- der Perl-Interpreter
- pfb2pfa
- konvertiert DOS-Type1-Fonts in Unix-Type1-Fonts (tauscht die
newlines aus).
- pgmcrater
- generiert fraktale Krater.
- pgmbentley,
pgmedge,
pgmenhance,
pgmhist,
pgmkernel,
pgmnoise,
pgmnorm,
pgmoil,
pgmramp,
pgmtexture,
pgmtofs,
pgmtolispm,
pgmtopbm,
pgmtoppm
- führen Modifikationen an PGM-Bildern durch.
- pgp
- das Verschlüsselungsprogramm PGP.
- pgpgpg
- Wrapper um GnuPG, der PGP emuliert.
- pi1toppm, pi3topbm
- konvertiert Atari-Bitmaps in PBM.
- pic
- wandelt Bilder im PIC-Format, die in TEX oder troff-Dateien
eingelagert sind in Kommandos um, die von tex oder troff verstanden werden.
Eine Beschreibung des Formats findet sich in der man-Page zu pic.
- pinky
- abgespeckte Variante von finger.
- pjtoppm
- konvertiert HP PaintJet Dateien in PPM.
- plog
- loggt PPP Verbindungen. (siehe pon, poff)
- pngtopnm
- wandelt PNG-Bilder in PNM.
- pnmalias,
pnmarith,
pnmcat,
pnmcomp,
pnmconvol,
pnmcrop,
pnmcut,
pnmdepth,
pnmenlarge,
pnmfile,
pnmflip,
pnmgamma,
pnmhistmap,
pnmindex,
pnminvert,
pnmmargin,
pnmnlfilt,
pnmnoraw,
pnmpad,
pnmpaste,
pnmrotate,
pnmscale,
pnmshear,
pnmsmooth,
pnmtile
- führt Modifikationen an PNM-Dateien durch.
- pnmtoddif,
pnmtofits,
pnmtopng,
pnmtops,
pnmtorast,
pnmtosgi,
pnmtosir,
pnmtotiff,
pnmtoxwd
- wandelt PNM in andere Bildformate.
- poff, pon
- schaltet das Logging von PPP Verbindungen ab/an.
- ppm3d,
ppmbrighten,
ppmchange,
ppmdim,
ppmdist,
ppmdither,
ppmflash,
ppmforge,
ppmhist,
ppmmake,
ppmmix,
ppmnorm,
ppmntsc,
ppmpat,
ppmquant,
ppmquantall,
ppmqvga,
ppmrelief,
ppmshift,
ppmspread
- modifiziert PPM-Bilder.
- ppm2tiff,
ppmtoacad,
ppmtobmp,
ppmtogif,
ppmtoicr,
ppmtoilbm,
ppmtomap,
ppmtomitsu,
ppmtopcx,
ppmtopgm,
ppmtopi1,
ppmtopict,
ppmtopj,
ppmtopjxl,
ppmtopuzz,
ppmtorgb3,
ppmtosixel,
ppmtotga,
ppmtouil,
ppmtoxpm,
ppmtoyuv,
ppmtoyuvsplit
- wandelt PPM in andere Bild-Formate.
- pr
- konvertiert Textdateien so, dass sie beim Drucken besser aussehen.
- printenv
- gibt alle Umgebungsvariablen aus.
- printf
- gibt seine Argumente wie das printf von C aus.
- procmail
- kann Scriptgesteuert Mails in Dateien einsortieren oder
Programmen übergeben.
- ps2ascii,
ps2epsi,
ps2frag,
ps2jpdf,
ps2pdf,
ps2pk,
psbb,
psbook,
psfaddtable,
psfgettable,
psfstriptable,
psidtopgm,
pslpr,
psmandup,
psmerge,
psnup,
psplpr,
psresize,
psselect,
psset,
pstoimg,
pstopnm,
pstops
- wandelt Postscript um oder modifiziert es.
- pstree
- gibt Prozesse als Baum aus.
- ptx
- generiert einen permutierten Index einer Textdatei.
- qrttoppm
- konvertiert den Output des QRT Raytracers in PPM.
- ras2tiff, rasttopnm
- wandelt Sun Rasterfiles in TIFF/PNM.
- rawtopgm, rawtoppm
- wandelt binäre Graustufenbilder in PGM/PPM.
- rcs
- -- Revision Control System -- kann mehrere Versionen einer Datei
in einer ,v Datei speichern und verwalten. Meistens wird heute jedoch CVS
eingesetzt, das RCS-Kommando co wird nur manchmal von CVS-Admins benötigt.
- rcs2log,
rcsclean,
rcsdiff,
rcsfreeze,
rcsmerge
- weitere Utilities von RCS.
- rdjpgcom
- zeigt Kommentare aus JPEG-Dateien an.
- recode
- wandelt Texte zwischen verschiedenen Kodierungen um (z.B. dem
in Europa üblichen latin1 und dem EBCDI Code der Mainframe-Welt).
- rename
- benennt mehrere Dateien um.
- renice
- ändert die Priorität eines laufenden Prozesses.
- reset
- initialisiert das Terminal. Kann sehr nützlich sein, wenn man
sich /bin/echo mit cat angesehen hat.
- resizecons
- versucht den Kernel dazu zu bewegen die Anzahl der
Zeilen/Spalten einer Konsole zu ändern.
- rev
- dreht die Buchstaben aller Zeilen einer Datei um.
.tgiezeg reih eiW
- rgb2ycbcr
- konvertiert RGB-TIFFs in YCbCr-TIFFs.
- rgb3toppm
- kombiniert drei Graustufenbilder zu einem Farbbild.
- rlog
- gibt Log-Meldungen aus RCS-Dateien aus.
- rman
- decompiliert formatierte Man-Pages zu Source-Files.
- rpcgen
- generiert aus einer Metasprache C-Code, der RPC Protokolle
implementiert.
- rpcinfo
- gibt aus, welche Services es an einem RPC-Server findet.
- rpm
- installiert, entfernt, ...., analysiert RPM-Pakete.
- rpm2cpio
- konvertiert ein RPM in ein CPIO-Archiv.
- runscript
- Skript-Interpreter von minicom.
- savelog
- archiviert alte Log-Files.
- scanimage
- Kommandozeilen-Werkzeug für den Zugriff auf Scanner und
andere Bildquellen (damit liesen sich z.B. Webcams betreiben).
- scp
- -- secure copy -- kopiert Dateien abhörsicher über
SSH-Verbindungen.
- sdiff
- findet Unterschiede zwischen Dateien und fragt interaktiv nach,
wie es die beiden Dateien vereinen soll.
- seq
- gibt eine Nummernsequenz aus (man gibt die erste, die Schrittweite
und die letzte an).
- setfdprm
- lädt Floppy-Parameter.
- setkeycodes
- manipuliert die Keycode-Scancode-Tastaturtabelle des
Kernels.
- setleds
- setzt die Tastatur-LED's.
- setmetamode
- modifiziert die Behandlung der Meta-Tasten der Tastatur.
- setsid
- startet ein Programm in einer neuen Session (Sessions sind
Gruppen miteinander verwandter Programme).
- setterm
- setzt Attribute des Terminals.
- sg
- wie newgrp, führt jedoch nur ein Kommando aus und startet keine neue
Shell.
- sgitopnm
- wandelt SGI-Bilder in PNM.
- shar
- generiert Archive im Text-Format, die gemailt werden können und
später einfach durch ausführen entpackt werden.
- showkey
- zeigt an, welche Tasten gedrückt wurden (als Key-/Scancodes)
- shred
- löscht eine Datei sicher, indem sie zuerst überschrieben wird
(Hinweis: einige Dateisysteme sortieren Blöcke beim Schreiben neu, dann ist
dieser Versuch natürlich sinnlos).
- sirtopnm
- wandelt ein Solitaire Image Recorder Bild in PPM/PGM.
- size
- zeigt die Größen der einzelnen Sektionen einer Objektdatei oder
eines Programmes an.
- skill
- schickt Signale an Prozesse, die einem Kriterium entsprechen
(z.B. User, Terminal).
- sldtoppm
- wandelt AutoCad Slides in PPM Bilder.
- sliceprint
- druckt ASCII-Dateien mit langen Zeilen aus.
- snice
- ändert die Priorität von Prozessen, die einem Kriterium
entsprechen (z.B. User, Terminal).
- sort
- sortiert seinen Input. Mit Optionen kann angegeben werden nach
welchen Feldern und nach welchem Kriterium sortiert werden soll.
- spctoppm
- konvertiert Atari compressed Spectrum Dateien in PPM.
- split
- unterteilt Dateien in mehrere Stücke (sehr nützlich, um große
Dateien auf kleine Disketten zu verteilen).
- spottopgm
- konvertiert SPOT satellite Bilder in PGM.
- sputoppm
- konvertiert Atari uncompressed Spectrum Bilder in PPM.
- ssh
- ermöglicht abhörsichere Logins zu anderen Rechnern. Über ssh können
aber auch viele andere Protokolle gelagert werden: scp kopiert Dateien, CVS
kann ssh statt rsh benutzen und mit einigen Tricks können auch VPNs (Virtual
Private Networks) darüber getunnelt werden.
- states
- eine awk Variante, die auch einige ``state machine'' Ansätze
versteht.
- strace
- verfolgt die Systemaufrufe eines Prozesses.
- strings
- listet alle lesbaren Zeichenfolgen einer Datei auf. Kann z.B.
verwendet werden, um alle Zeichenketten in einer Objektdatei aufzulisten.
- strip
- entfernt die Symboltabelle aus einer Objektdatei. Das macht sie
unbrauchbar für Debugger, aber oft auch wesentlich kleiner.
- sum
- erstellt Checksummen über Blöcke von Dateien.
- superformat
- formatiert Floppies. Beherrscht auch größere Formate, wie
1992kB oder 3983kB.
- syslinux
- spielt den syslinux Bootloader auf eine DOS-Floppy.
- tac
- gibt die Zeilen einer Datei in umgekehrter Reihenfolge aus. Dadurch
kann z.B. eine Sortierung (siehe sort) umgekehrt werden.
- tack
- testet, ob die TermInfo Einträge für das aktuelle Terminal korrekt
sind. Je nach Geschmack sind diese Test lustig anzusehen oder
stinklangweilig...
- tail
- gibt die letzten Zeilen einer Datei aus. Per Parameter läßt sich
steuern, wieviele Zeilen und ob danach weiter ausgegeben oder abgebrochen
werden soll. Tail kann benutzt werden, um auf einem Terminal zu überwachen, ob
weitere Einträge in eine Log-Datei erfolgen.
- talk
- versucht einen einfachen Chat zu einer anderen Person zu öffnen
oder bestätigt eine Chat-Anfrage.
- tclsh
- Interpreter für TCL-Scripte.
- tcpbug
- leitet einen lokalen Port an einen anderen Rechner weiter.
- tcpconnect, tcplisten
- genereller TCP-Client/-Server, kann benutzt
werden, um einfache Daten über einen Kanal zu senden.
- tcsh
- ist die C-Shell. Eine Shell mit Elementen der Sprache C.
- tee
- zweigt den Input in eine Datei ab und kopiert ihn gleichzeitig auf
standard out. (Gut um Ausgaben von Programmen mitzuprotokollieren.)
- telnet
- kann sich mit beliebigen Servern verbinden. Hauptsächlich wird
es für Login-Server verwendet (auch wenn ssh sicherer ist), für einige teure
Drucker für die Konfiguration oder von Programmierern, die Protokolle
austesten wollen (z.B. POP3, HTTP oder SMTP).
- test
- kann Strings und Zahlen vergleichen oder die Existenz von Dateien
prüfen.
bash> test -z string || echo string ist lang
string ist lang
bash> test wort = wort && echo wort gleich wort
wort gleich wort
bash> touch file
bash> test -f file && echo file existiert
file existiert
- tgatoppm
- konvertiert Targa-Bilder in PPM.
- thumbnail
- generiert aus TIFF-Dateien ein TIFF mit ``Thumbnail's''
- tiff2bw,
tiff2ps,
tiff2rgba,
tiffcmp,
tiffcp,
tiffdither,
tiffdump,
tiffinfo,
tiffmedian,
tiffsplit,
tifftopnm
- verändert oder konvertiert TIFF's.
- time
- misst die Zeit, die ein Kommando verbraucht (jeweils als Realzeit,
verbrauchte Prozessorzeit im Usermode und im Systemmode).
- tload
- Pseudografik der Systembelastung (Load-Average).
- top
- listet Prozesse sortiert nach Prozessorbelastung auf.
- touch
- setzt die Modifiktionszeit einer Datei neu (Standard: die
aktuelle Zeit, es kann aber jede beliebige andere genommen werden) oder
erstellt diese Datei.
- tput
- initialisiert Terminals.
- tr
- ersetzt in Standard in die Zeichen, die in Parameter 1 stehen durch
die Zeichen in Parameter 2 und gibt das Ergebnis aus:
bash> echo abcdefg | tr abc xyz
xyzdefg
- troff
- formatiert Text, der in einer speziellen Makro-Sprache verfasst
wurde (siehe auch groff).
- tset
- initialisiert Terminals.
- tsort
- sortiert topologisch. Aus einer Liste von Abhängigkeiten (links
ist abhängig von rechts) wird eine Datei erzeugt, in der alle Einträge linear
sortiert sind aber die Reihenfolge noch stimmt. Kann benutzt werden, um
zusammen mit lorder eine ideale Reihenfolge für das Zusammenlinken von
Bibliotheken.
- tty
- gibt den Dateinamen des aktuellen Terminals aus.
- tzselect
- interaktives Tool, mit dem man ermitteln kann, wie die
Variable TZ (TimeZone, Zeitzone) gesetzt werden muss, damit die Zeit korrekt
ausgegeben wird.
- unexpand
- konvertiert Leerzeichen in Tabulatoren, über Parameter kann
angegeben werden wieviele Leerzeichen ein Tab sind. Zusammen mit expand kann
es benutzt werden, um die Schrittweite von Einzügen in Quelltexten zu ändern
(z.B. von den unter Anfängern üblichen 2 Zeichen auf die 8 Zeichen des besser
lesbaren Torvals-Stil).
- unicode_start, unicode_stop
- startet/stopt den Unicode-Modus in der
Konsole.
- uniq
- entfernt aufeinander folgende identische Zeilen im Input. Kann
benutzt werden um überflüssige Zeilen einer sortierten Datei zu entfernen.
- unshar
- packt ein shar-File aus (siehe shar).
- unzip
- entpackt eine ZIP-Datei.
- updatedb
- erstellt die interne Datenbank von locate, sollte regelmäßig
von cron aufgerufen werden.
- uptime
- zeigt an, wie lange der Rechner schon läuft.
- users
- zeigt alle eingeloggten Nutzer an.
- uudecode, uuencode
- dekodiert/kodiert Dateien zum Verschicken per eMail
(Vorgänger von MIME).
- uuidgen
- generiert UUID's, also (statistisch) weltweit eindeutige Werte.
- vacation
- antwortet auf eMails mit ``I'm not here''. Kann in die
.forward-Datei des Nutzers (hier: eric) eingeklinkt werden:
\eric, "|/usr/bin/vacation -a allman eric"
- vi
- Unix-Editor, der auf nahezu allen Unix-artigen Systemen vorhanden
sein sollte. Mit speziellen Tasten-codes schaltet man zwischen Befehls- und
Editormodus um. Hier die wichtigsten:
i |
insert -- Zeichen einfügen |
o |
Zeile anfügen |
<ESC> |
Editiermodus verlassen |
x |
Zeichen löschen |
dd |
Zeile löschen |
:w |
Datei speichern |
:x |
Datei speichern und beenden |
:q |
beenden |
:q! |
beenden und Änderungen verwerfen |
- vmstat
- gibt Status des Speichers aus.
- vt-is-UTF8
- checkt, ob eine Konsole im UTF-8 Modus ist.
- w
- gibt die eingeloggten Nutzer und einige zusätzliche Daten aus
(Terminal, von wo aus der Login kommt, wann der Login erfolgte usw.).
- w3m
- Frame-fähiger Browser im Textmodus.
- wall
- -- write to all -- sendet Nachrichten an alle eingeloggten
Nutzer.
- watch
- führt ein Kommando mehrfach aus und gibt jeweils die erste
Bildschimseite des Outputs aus. Wer schon immer eine Kommandozeilen-Uhr haben
wollte: watch -n 1 date
- wc
- zählt die Zeilen, Worte und Buchstaben einer Datei oder von standard
in.
- wget
- Mirror-Utility für Webseiten und FTP.
- whatis
- alle man-Pages enthalten eine Kurzbeschreibung. Whatis zeigt
diese an. Es ist also vergleichbar mit dieser Datei, nur nicht so ausführlich.
- whereis
- sucht nach Binaries, Man-Pages und Quelltexten eines
Programmes.
- which
- gibt aus welche Datei zu einem Kommando gehört (es geht einfach
$PATH durch).
- whiptail
- zeigt Dialogfenster an. Kann benutzt werden, um komfortable
Dialoge auf der Kommandozeile zu generieren.
- who
- zeigt an, wer gerade eingeloggt ist.
- whoami
- zeigt an, unter welchem Login man gerade arbeitet (also wessen
Rechte man gerade hat, was besonders nützlich ist, wenn man vergessen hat in
welchem xterm man su - eingegeben hat).
- whois
- fragt die WHOIS-Datenbanken ab. Whois wirde verwendet, um
registrierten DNS-Domains einen Besitzer zuordnen zu können.
- wish
- Interpreter für TCL/TK. Im Gegensatz zu tclsh können mit diesem
Interpreter grafische Oberflächen erzeugt werden (wird z.B. in den Quellen
des Linux-Kernel für make xconfig eingesetzt).
- write
- sendet Nachrichten auf Terminals anderer Nutzer.
- wrjpgcom
- schreibt Kommentare in JPEG-Dateien.
- xargs
- führt ein Kommando aus und setzt die Argumente aus denen auf der
Kommandozeile und dem Text aus standard in zusammen.
echo dahinter | xargs echo davor führt dieses Kommando aus:
echo davor dahinter
über Parameter lassen sich noch komplexere Konstellationen einstellen.
- xbmtopbm
- wandelt ein X-Bitmap in ein PBM um.
- xdfcopy, xdfformat
- Tool, mit dem XDF-Disketten kopiert und formatiert
werden können. XDF ist ein Diskettenformat, das 1840kB fassen kann.
- ximtoppm, xpmtoppm
- wandelt XIM oder XPM Bilder in PPM.
- xwdtopnm
- konvertiert X-Window-Dumps in PNM. (xwd kann benutzt werden,
um einzelne Fenster oder den ganzen Bildschirminhalt eines X-Window
abzufotografieren.
- ybmtopbm
- konvertiert Bennet Yee ``face'' Bilder in PBM.
- yes
- gibt den Buchstaben ``y'' aus, bis es unterbrochen wird. Das ist
eine gute Methode allzu vorsichtige Programme ohne Unterbrechung durchlaufen
zu lassen.
- yuvsplittoppm, yuvtoppm
- konvertiert Dateien, die Bilder im YUV-Format
enthalten in PPM.
- zcmp, zdiff
- vergleicht komprimierte Dateien.
- zdump
- gibt die aktuelle Zeit aller angegebenen Zeitzonen aus.
- zgrep, zegrep, zfgrep
- durchsucht komprimierte Dateien. (siehe *grep)
- zeisstopnm
- wandelt Zeiss konfokale Bilder in PNM, PGM oder PPM um.
- zforce
- wie gzip, erzwingt aber die Endung .gz damit gzip nicht
versuchen kann eine Datei 2x zu packen.
- zip, zipcloak, zipnote, zipsplit
- packt Dateien in eine .zip Datei
(PK-Zip/WinZip kompatibel).
- zipgrep
- sucht Dateien in .zip-Archiven.
- zipinfo
- gibt detaillierte Informationen über ZIP-Archive aus.
- zless, zmore
- wie less/more, arbeitet aber auf gepackten Dateien.
- znew
- wandelt mit compress gepackte Dateien in mit gzip gepackte Dateien
um.
Im Gegensatz zu den Kapiteln über /bin und /usr/bin werde ich hier zu den
Befehlen nur kurz beschreiben wozu sie gut sind. Es handelt sich hier um
Befehle, die für die Administration des Systems da sind, also sollte man sich
genau informieren, was ein Kommando bewirkt, bevor man auch nur daran denkt es
einzusetzen -- schließlich arbeitet man mit diesen Kommandos als root.
``Ich bin /root, ich darf das.'' ist zwar korrekt, aber man sollte auch ``ich
weiß, was ich tue.'' dazu sagen können und sich seiner Verantwortung bewußt
sein. Linux ist ein Betriebssystem und kein Grafikadventure.
Dies sind die ganz wichtigen Kommandos, die auch funktionieren müssen, wenn
die Platte mit /usr drauf noch nicht gemountet ist. Als Tipp an alle, die
Programme selbst kompilieren oder sogar eigene Daemonen schreiben: hier kommt
alles rein, was direkt auf den Kern zugreift, im Rettungssystem benötigt wird
oder bereits beim booten da sein muss.
- MAKEDEV
- erstellt Dateien unter /dev neu.
- activate
- setzt das Boot-Flag von Festplatten.
- badblocks
- checkt Festplatten nach fehlerhaften Sektoren durch.
- cfdisk
- Frontend zu fdisk.
- depmod
- ermittelt Abhängigkeiten zwischen Kernel-Modulen.
- dosfsck
- fsck für FAT-Dateisysteme.
- dumpe2fs
- gibt für ext2-Dateisysteme Informationen, wie Superblock und
markierte fehlerhafte Blöcke, aus.
- dumpreiserfs
- gibt Informationen über ein ReiserFS aus.
- fdisk
- Partitionierungstool.
- fsck
- ``FileSystemChecK'' -- checkt Dateisysteme nach Fehlern durch.
Dieses Programm ruft die jeweiligen Varianten von fsck für das jeweilige
Dateisystem auf.
- e2fsck, fsck.ext2, fsck.minix, fsck.msdos, fsck.nfs, fsck.vfat, reiserfsck
- fsck-Varianten für die jeweiligen Dateisysteme.
- getty
- gibt einen Login-Prompt auf dem angegebenen Terminal aus. Wird
normalerweise von init aufgerufen.
- halt
- Synonym für shutdown -h now
- hwclock
- Zugriff auf die Hardware-Uhr des Rechners.
- ifconfig
- konfiguriert Netzwerk-Geräte (setzen von IP, Maske, usw.)
- init
- Basis-Prozess jedes Linux, wird als einziges Programm vom Kernel
aufgerufen3.1.
- insmod
- lädt Module (Treiber) in den Kern (siehe auch modprobe).
- ipchains, ipchains-restore, ipchains-save
- Firewall-Konfiguration von
Kernel 2.2.
- isapnp
- Konfiguraton für ISA-Karten mit PnP.
- isdnctrl
- Konfiguration und Kontrolle von ISDN-Karten.
- kbdrate
- setzt die Wiederholungsrate der Tastatur.
- kerneld
- kümmert sich um das Laden von Modulen auf Anfrage des Kerns
(Konfigurationsdatei: /etc/modules.conf)
- klogd
- Kernel-Log-Daemon, schreibt Kernel-Meldungen ins System-Logbuch
(siehe syslogd, /etc/syslog.conf und /var/log/*)
- ksyms
- zeigt exportierte Symbole des Kernels an
- ldconfig
- erstellt den Bibliotheks-Cache neu (muss aufgerufen werden,
wenn /etc/ld.so.conf verändert wurde, das die Standardpfade für .so's
(shared objects, DLL's) enthält, verändert wurde).
- lilo
- installiert den Boot-Loader LILO neu.
- losetup
- konfiguriert Loop-Devices (/dev/loopX).
- lsmod
- gibt geladene Module aus.
- lspci
- gibt alle erkannten PCI-Geräte aus.
- mkfs
- erstellt ein neues Dateisystem auf einem Datenträger (oder einer
Datei), ruft die jeweiligen Varianten auf.
- mkdosfs, mke2fs, mkfs.ext2, mkfs.minix, mkfs.msdos, mkfs.vfat,
mkreiserfs
- erstellen die jeweiligen Dateisysteme auf Datenträgern/Dateien.
- mkswap
- initialisiert Swap-Datenträger/-Dateien.
- modinfo
- zeigt Informationen über Module an.
- modprobe
- lädt Module in den Kernel (siehe auch insmod), beachtet aber
Abhängigkeiten und lädt eventuell von diesem Modul benötigte Module ebenfalls.
- plipconfig
- konfiguriert PLIP (IP über Parallelport) Verbindungen.
- pmap_dump
- gibt alle registrierten RPC-Programme aus.
- pmap_set
- setzt die Liste von registrierten RPC-Programmen.
- pnpdump
- (siehe auch isapnp) gibt alle ISA-PnP-Geräte und ihre aktuelle
Konfiguration aus.
- portmap
- RPC-Daemon.
- poweroff
- fährt das System herunter und schaltet es ab.
- pump
- konfiguriert eine Netzwerkkarte mit BOOTP oder DHCP
- rarp
- manipuliert die RARP-Tabelle3.2 des Systems.
- reboot
- fährt das System herunter und bootet neu.
- resize_reiserfs
- vergrößert/verkleinert ein ReiserFS (Vorsicht: beta!).
- rmmod
- entfernt ein Modul aus dem Kernel.
- rmt
- kontrolliert entfernte Bandlaufwerke.
- route
- zeigt an/verändert die Routing-Tabelle des Netzwerksubsystems des
Kernels.
- rpc.lockd, rpc.statd
- Teil des NFS.
- runlevel
- zeigt aktuelles und vorheriges Runlevel an.
- setpci
- konfiguriert PCI-Karten.
- sfdisk
- Festplatten-Partitinierungsprogramm.
- showmount
- zeigt NFS-mounts an.
- shutdown
- steuert das Herunterfahren des Systems.
- slattach
- ordnet ein Netzwerk-Gerät einer seriellen Schnittstelle zu.
- sulogin
- wird von init im Single-User- oder Maintenance-Mode benutzt, um
nur root das Einloggen zu erlauben.
- swapoff, swapon
- schaltet eine Swap-Platte/-Datei ab/an.
- sysctl
- Frontend für die Parameter, die über /proc/sys/* manipuliert
werden können.
- syslogd
- Logbuch-Daemon. Fängt Meldungen von Kernel und Programmen ab
und schreibt die in die jeweiligen Log-Dateien (/var/log/*), konfiguriert über
/etc/syslog.conf .
- telinit
- schickt Mitteilungen an init (z.B. Runlevel-wechsel).
- tune2fs
- kann div. Parameter eines ext2-Dateisystems einstellen.
- update
- (von init aufgerufen) sorgt dafür, dass die Puffer der
Festplatten regelmäßig synchronisiert werden.
- ab
- Apache Benchmark.
- accessdb
- gibt den Inhalt der man-Datenbank aus.
- addgroup, adduser
- fügt Nutzer/Gruppe zum System hinzu.
- apache, apache-ssl
- Apache HTTP-Daemon.
- apache-sslconfig, apache-sslctl, apache.dbg, apacheconfig, apachectl
- Konfiguration von Apache.
- arp
- manipuliert die ARP-Tabelle des Systems.
- atd
- At-Daemon, führt Aktionen exakt einmal zu einem konfigurierten
Zeitpunkt aus.
- atrun
- führt At-Skripte aus (siehe atd).
- chat
- tauscht Daten mit einem Modem aus und initialisiert so z.B. eine
Modem-Vernindung.
- checkpc
- überprüft die Einträge in /etc/printcap auf Korrektheit.
- chpasswd
- liest eine Datei mit User:Passwort-Paaren ein und macht
automatisch die entsprechenden Änderungen.
- chroot
- öffnet das angegebene Verzeichnis als neues Root-Verzeichnis und
öffnet darauf eine Shell, die Shell sieht damit nur einen Teil des gesamten
Dateibaumes.
- cron
- führt Programme/Skripte regelmäßig aus (siehe crontab).
- debugfs
- ext2-Dateisystem-Debugger (für die Fälle, in denen fsck das
Dateisystem nicht mehr reparieren kann).
- dnskeygen
- generiert Schlüsselpaare für Secure-DNS.
- dpasswd
- ändert dialup-Passworte (siehe login).
- e2label
- zeigt an/verändert Label von ext2-Partitionen.
- exicyclog,
exigrep,
exim,
exim-upgrade-to-r3,
exim_dbmbuild,
exim_dumpdb,
-
- exim_fixdb,
exim_lock,
exim_tidydb,
eximconfig,
eximstats,
exinext,
exiqsumm,
exiwhat
- Exim Mail-Daemon Programme.
- exportfs
- manipuliert die Liste der exportierten NFS-Pfade (siehe
/etc/exports).
- fbset
- manipuliert Einstellungen von Framebuffer-Devices.
- gpm
- Maustreiber für die Konsole.
- groupadd, groupdel, groupmod
- Gruppen hinzufügen, löschen oder verändern
(siehe /etc/group).
- grpconv, grpunconv
- konvertiert zwischen normalen und Shadow-Passworten
für Gruppen.
- identd
- implementiert das IDENT Protokoll (RFC 1413).
- in.comsat
- Biff-Server, bekommt Nachrichten über eingegangene eMail.
- in.fingerd
- Daemon für das finger-Protokoll.
- in.talkd
- talk-Daemon.
- in.telnetd
- Telnet-Daemon.
- inetd
- genereller Netzwerk-Daemon, ruft je nach Port unterschiedliche
andere Daemonen auf, wenn eine Verbindung vorliegt.
- ipmasqadm
- Masquerading-Tool von IPChains.
- keytab-lilo
- generiert Tastaturtabellen für LILO
- logoutd
- sorgt dafür, dass die Login-Restriktionen aus
/etc/security/time.conf eingehalten werden.
- logresolve
- Apache: löst für die Log-Dateien IP-Adressen in DNS-Namen
auf
- logrotate
- sorgt für das Aufräumen und Komprimieren alter Log-Dateien.
- lpc
- Drucker-Kontroll-Programm -- manipuliert die Queues.
- lpd
- Drucker-Daemon.
- lsof
- listet auf, welche Prozesse eine Datei (Dateisystem, etc.)
benutzen.
- magicfilter, magicfilterconfig
- wandelt beliebigen Input in ein Format,
das der Drucker versteht.
- mklost+found
- ext2: generiert ein lost+found-Verzeichnis und reserviert
schonmal Platz, damit fsck im Notfall keine neuen Blöcke reservieren muss.
- modconf
- Konfigurationstool für Linux-Module.
- mysqld
- MySQL-Server
- named
- BIND-Nameserver (DNS)
- ndc
- named-Kontrollprogramm
- newusers
- generiert neue Nutzer aus Parametern in einer ASCII-Datei.
- nfsstat
- NFS-Statistiken
- nmbd
- Samba: NETBIOS-Name-Server
- nsupdate
- schickt neue DNS-Informationen an Secure-DNS-Server
- ntpd, ntpdate, ntptime, ntptimeset
- Network-Time-Protocol Daemon und
Tools.
- paperconfig
- setzt die Standardgröße für Papier im System.
- pppd
- PPP-Daemon
- pppconfig, pppdump, pppstats
- PPP-Utilities
- pwck
- testet Integrität von Passwort-Dateien
- pwconv, pwunconv
- konvertiert zwischen normalen und shadow-Passworten.
- ramsize
- setzt die Ram-Disk-Größe eines Kernelimage.
- rdev
- setzt das Root-Dateisystem eines Kernelimage.
- readprofile
- liest Kernel-Profiling-Informationen
- rootflags
- setzt zusätzliche Parameter zum Mounten des Root-Dateisystems
in einem Kernel-Image.
- rotatelogs
- Archiviert Apache Log-Dateien.
- rpc.mountd, rpc.nfsd
- NFS-Server
- rpc.yppasswdd, rpc.ypxfrd
- Teil von NIS (YP, Yellow Pages)
- rsmtp, runq
- Exim-Tools.
- safe_finger
- sichert finger-Clients gegen Attacken durch finger-Server.
- saned
- Scanner-Daemon
- sendmail
- Mail-Daemon
- smbd
- Samba-Daemon
- sshd
- Secure-Shell-Server
- swapdev
- setzt Swap-Device in einem Kernel-Image.
- tcpd
- Security-Wrapper um TCP/IP-Programme, die über inetd aufgerufen
werden.
- tcpdchk
- checkt die Konfiguration von tcpd
- tcpdmatch
- checkt, ob eine TCP/IP-Anfrage von tcpd abgelehnt würde.
- tcpdump
- gibt alle IP-Pakete aus, die auf einer Leitung empfangen
werden.
- texconfig
- konfiguriert TEX
- tickadj
- Teil von NTP
- traceroute
- verfolgt die Router zurück, die auf dem Weg zu einem Host
passiert werden.
- tunelp
- setzt Parameter des Parallelports
- useradd, userdel, usermod
- Nutzer hinzufügen, löschen, modifizieren.
- vidmode
- setzt den Standard-Grafikmodus eines Kernel-Image.
- ypbind, yppoll, yppush, ypserv, ypset
- NIS/YP-Tools
- zic
- Zeitzonen-Compiler, generiert Dateien, die Zeitzonen
repräsentieren.
Nächste Seite: Anhänge
Aufwärts: Vortragsreihe der LUG Dresden
Vorherige Seite: Inhalt
  Inhalt
Konrad Rosenbaum
2001-03-01