Eine Zusammenarbeit von Kommandozeile und Dateimanager kann die Arbeit erleichtern, indem man das jeweils komfortablere Werkzeug zur Dateianzeige/-manipulation nutzt. Erfahrenen Anwendern steht allerdings mit der Kommandozeile ein ausgesprochen leistungsfähiges und flexibles Werkzeug zur Verfügung, das auch hervorragend für die weitgehend einheitliche Nutzung entfernter Linux-/Unix-Maschinen geeignet ist.
Sonderzeichen der Shell werden vor dem Kommandoaufruf ausgewertet, also von der Shell und nicht vom gestarteten Kommando
teilweise betreffen die dabei vorgenommenen Ersetzungen auch die Argumente (und ggf. Optionen) eines Kommandos, u.a. bei Mustern für Dateinamen (z.B. *.html), Zugriffen auf Variableninhalte (z.B. $HOME) oder der Tilde als Abkürzung für den absoluten Pfad zum Homeverzeichnis
die Resultate dieser Ersetzungen, also die konkret an das Kommando übergebenen Argumente, kann man sich mittels des Kommandos echo anzeigen lassen, dessen Wirkung darin besteht, alle ihm übergebenen Argumente auf die Standardausgabe auszugeben
hier einige Beispiele für echo:
echo $HOME Inhalt der Umgebungsvariablen $HOME
echo *.html Namen aller Dateien im aktuellen Verzeichnis,
die auf .html enden
echo ~ absoluter Pfad zum Homeverzeichnis
Beispiele für Sonderzeichen:
| Sonderzeichen | Erläuterung |
|---|---|
| * |
in Dateinamensmustern Stellvertreter für eine beliebige Zeichenfolge
Beispiele:
*.html
*.ps
*9*s Dateinamen, die auf s enden, vor dem s aber irgendwo
mindestens einmal das Zeichen 9 enthalten müssen
|
| ? |
in Dateinamensmustern Stellvertreter für genau ein beliebiges Zeichen
Beispiele: a?b daten.? |
| | |
Konstruktion einer Pipeline
Beispiele: ls | wc -l ls -l | less |
| > |
Umlenkung der Standardausgabe eines Kommandos in eine Datei
Beispiel: ls -l > datei_liste |
| & |
Kommando im Hintergrund starten
Beispiel: nedit datei.txt & |
| Leerzeichen |
Worttrenner auf der Kommandozeile
Beispiel: ls -l 'meine daten' diese Zeile besteht aus 3 Wörtern, wobei das Wort 3 ein Leerzeichen enthält:
|
| ; |
Kommandotrenner
Beispiel: id ; tokens |
| $ |
Zugriff auf Variablenwerte
Beispiel: cd $HOME |
| ! |
Zugriff auf die History-Liste (Kommando-Historie)
Beispiele: !2 Kommando Nr. 2 nochmals ausführen !tok letztes Kommando, das mit der Zeichenfolge tok begann, nochmals ausführen |
neben den hier genannten gibt es noch einige weitere Sonderzeichen, die wir nicht alle im Detail diskutieren wollen, z.B.
\ Backslash < ` Backtick ' Apostroph " Doppelapostroph [ ] ( )
falls Sonderzeichen an ein Kommando übergeben werden sollen, muss man die Sonderbedeutung durch sog. Quoting aufheben, was verschieden geschehen kann:
\ (Backslash) für einzelne Zeichen
Beispiel:
rm meine\ liste
Einschluss in Apostrophe für Zeichenfolgen, die selber keine Apostrophe enthalten dürfen
Beispiel:
rm 'meine liste'
Einschluss in "" (Doppelapostrophe) bewirkt die Aufhebung der Sonderbedeutung der meisten Zeichen der eingeschlossenen Zeichenfolge, wobei sich hier die Details bei den verschiedenen Shells unterscheiden
Bei der Bash behalten 3 Zeichen ihre Sonderbedeutung:
$ ` Backtick \ Backslash
weitere diesbezügliche Details zur Bash finden sich im Abschnitt Quoting
durch \" kann man bei der Bash den Doppelapostroph als Zeichen in die von Doppelapostrophen eingeschlossene Zeichenfolge aufnehmen
Anmerkung: bei der tcsh kann man die Sonderbedeutung des Zeichens ! (das der Bezugnahme auf die Kommando-Historie dient) nur durch Voranstellen eines Backslashs aufheben, nicht aber durch den Einschluss in Apostrophe oder Doppelapostrophe (auch innerhalb einer durch Apostrophe oder Doppelapostrophe eingeschlossenen Zeichenfolge ist also der Backslash nötig)
Beispiel:
echo "$HOME/*" das Dollarzeichen hat hier weiter seine
Sonderbedeutung, der Stern dagegen nicht
Argumente lassen sich auch durch die lückenlose Aneinanderreihung der o.g. Konstrukte sowie normaler Zeichen bilden
Beispiel:
echo "'"'"'a\"\' echo gibt die Zeichenfolge '"a"' aus
Ausgabe aller von der Shell übergebenen Argumente (damit kann man überprüfen, wie die Shell Sonderzeichen behandelt, d.h., wodurch diese ersetzt werden):
Kommando:
echo
Beispiele:
echo *.html echo \*.html
Bestimmung des aktuellen Verzeichnisses und damit der Position im Dateibaum:
pwd (print working directory)
die Ausgabe von pwd kann mit der Maus markiert und in andere Programme kopiert werden, z.B. in ein Netscape-Fenster, um an die durch die Markierung benannte Stelle im Dateibaum zu wechseln
Verzeichniswechsel:
Kommando:
cd (change directory)
Beispiele:
cd .. Wechsel ins übergeordnete Verzeichnis
cd ../../../DATEN 3 Mal Wechsel ins jeweils übergeordnete
Verzeichnis und dann dort ins Verzeichnis DATEN
cd Wechsel ins Homeverzeichnis
cd - Wechsel in das zuvor aktuelle Verzeichnis
cd /tmp Wechsel nach /tmp
cd PUBLIC Wechsel ins Verzeichnis PUBLIC unterhalb des
aktuellen Verzeichnisses
Anzeige von Verzeichnisinhalten sowie von Informationen über die aufgelisteten Dateien/Verzeichnisse (u.a. Rechte, Größe, Modifikationszeit)
Kommando:
ls (list)
Optionen:
-a alle Einträge anzeigen, auch jene beginnend mit Punkt -d Anzeige der Namen statt der Inhalte von Verzeichnissen -l Anzeige im langen Format -r Sortierreihenfolge umkehren (absteigend statt aufsteigend) -t Ausgabe nach der Modifikationszeit sortieren -L Informationen über das Ziel eines symbolischen Links anzeigen -S Ausgabe nach der Dateigröße sortieren
Beispiele:
ls -ltra Anzeige des Inhalts des aktuellen Verzeichnisses
im langen Format (alle Dateien, also inkl. Punktdateien),
umgekehrt sortiert nach der Modifikationszeit (also älteste
Dateien zuerst)
ls -l ~/*.html Informationen über alle .html-Dateien im Homeverzeichnis
im langen Format anzeigen
ls -L /afs/tucz Anzeige des Inhalts des Verzeichnisses, auf das der symbolische
Link /afs/tucz verweist, also /afs/tu-chemnitz.de
ls -Lld /afs/tucz Anzeige von Informationen im langen Format über das Verzeichnis,
auf das der symbolische Link /afs/tucz verweist, also
/afs/tu-chemnitz.de
Anlegen von Verzeichnissen:
Kommando:
mkdir (make directory)
Beispiel:
mkdir TEST ARBEIT im aktuellen Verzeichnis werden die
Unterverzeichnisse TEST und ARBEIT angelegt
Löschen leerer Verzeichnisse:
Kommando:
rmdir (remove directory)
Beispiel:
rmdir TEST ARBEIT im aktuellen Verzeichnis werden die
Unterverzeichnisse TEST und ARBEIT gelöscht,
sofern sie komplett leer sind (also außer
. und .. keinen weiteren Eintrag enthalten)
Ändern der Unix-Rechte von Dateien und Verzeichnissen:
Kommando:
chmod (change mode)
Beispiele:
chmod u=rwx,g-r,o+x xyz Linux-Rechte für Datei xyz ändern:
u=rwx Eigentümer bekommt alle 3 Rechte, also
Lese-, Schreib- und Ausführungsrecht
g-r der Gruppe wird das Leserecht entzogen
o+x sonstige Nutzer erhalten zusätzlich zu
ihren bisherigen Rechten das Ausführungsrecht
chmod u+rw,a-x x* Linux-Rechte für alle Dateien ändern, deren Name
mit x beginnt:
u+rw Eigentümer bekommt zusätzlich das Lese- und
Schreibrecht
a-x allen Nutzern (also dem Eigentümer, der Gruppe
und den sonstigen Nutzern) wird das
Ausführungsrecht entzogen
Kopieren von Dateien und ganzen Teilbäumen:
Kommando:
cp (copy)
Optionen:
-d symbolische Links erhalten (nicht die Datei oder das Verzeichnis
kopieren, auf die bzw. das der Link verweist)
-i interaktiv, d.h., vor dem Überschreiben von Dateien den Nutzer fragen
-p alle Dateiattribute erhalten (sofern möglich)
-R Verzeichnisse rekursiv kopieren, also mit allen darunter befindlichen
Dateien und Verzeichnissen; gestattet das Kopieren von Teilbäumen
Beispiele:
cp -Rpdi DATEN /tmp den beim Verzeichnis DATEN beginnenden Teilbaum
nach /tmp kopieren, dabei alle Dateiattribute und
symbolischen Links erhalten und vor dem Überschreiben
evtl. existierender Dateien den Nutzer fragen
cp *.html /tmp alle Dateien des aktuellen Verzeichnisses, deren
Name auf .html endet, nach /tmp kopieren
cp ? ~ alle Dateien des aktuellen Verzeichnisses, deren
Name aus genau einem Zeichen besteht, ins Homeverzeichnis
des Nutzers kopieren
cp ~/*.ps . alle Dateien des Homeverzeichnisses, deren Name auf .ps
endet, ins aktuelle Verzeichnis kopieren
cp ~/BACKUP/preferences.js ~/.netscape
die Netscape-Konfigurationsdatei preferences.js aus dem
BACKUP-Verzeichnis des Nutzers ins Verzeichnis .netscape
unterhalb des Homeverzeichnisses kopieren, wo Netscape
seine Konfigurationsdateien erwartet; BACKUP bietet
den Stand der letzten Sicherung, meist vom Vorabend
Löschen von Dateien und ganzen Teilbäumen:
Kommando:
rm (remove)
Optionen:
-i interaktiv, d.h., vor jedem Löschvorgang den Nutzer fragen
-f Löschen erzwingen, also niemals den Nutzer fragen
-r rekursiv, d.h. den beim angegebenen Verzeichnis beginnenden
Teilbaum löschen
Beispiele:
rm *.ps ~/xyz im aktuellen Verzeichnis werden die Dateien, deren Name
auf .ps endet, sowie im Homeverzeichnis die Datei xyz gelöscht
rm -f *.html im aktuellen Verzeichnis werden die Dateien, deren Name
auf .html endet, generell ohne Rückfrage gelöscht
rm -rf DATEN den beim Verzeichnis DATEN beginnenden Teilbaum
ohne Rückfrage löschen
Verschieben und Umbenennen von Dateien und Verzeichnissen:
Kommando:
mv (move)
Optionen:
-f Überschreiben erzwingen, also niemals vorher den Nutzer fragen -i interaktiv, d.h., vor jedem Überschreiben von Dateien den Nutzer fragen
Beispiele:
mv *.ps ~ alle .ps-Dateien des aktuellen Verzeichnisses ins
Homeverzeichnis verschieben
mv -i *.html /tmp alle .html-Dateien des aktuellen Verzeichnisses nach
/tmp verschieben; vor einem evtl. Überschreiben den
Nutzer fragen
mv -f DATEN ~ den beim Verzeichnis DATEN beginnenden Teilbaum ins
Homeverzeichnis verschieben (ohne Rückfrage vor dem
Überschreiben einer evtl. dort befindlichen Datei DATEN)
Kommando:
ln (link)
Option:
-s symbolischen und keinen harten Link anlegen
Beispiel:
ln -s ~otto/PUBLIC O im aktuellen Verzeichnis einen symbolischen Link
namens O anlegen, der auf das Verzeichnis PUBLIC im
Homeverzeichnis des Nutzers otto verweist
ln angebot.txt a im aktuellen Verzeichnis einen harten Link
namens a anlegen, der auf die im selben Verzeichnis
befindliche Datei angebot.txt verweist
Hinweis: es empfiehlt sich, auf harte Links zu verzichten und statt dessen symbolische zu verwenden
Kommando:
touch
Beispiel:
touch abc im aktuellen Verzeichnis wird die Modifikationszeit der Datei
abc auf den Stand der Systemuhr zum Zeitpunkt der Ausführung von
touch geändert; sofern die Datei noch nicht existierte, wird sie
als leere Datei angelegt
Anzeige des aktuellen Datums sowie der aktuellen Zeit (aus Sicht des Betriebssystems):
Kommando:
date
Anzeigen und ggf. Editieren von Textdateien:
Kommandos (kleine Auswahl von einfachen Texteditoren):
nedit pico
Beispiele:
nedit daten.txt die Datei daten.txt des aktuellen Verzeichnis mit dem
Texteditor nedit zur Anzeige und Bearbeitung öffnen
pico daten.txt dito, aber statt nedit den Editor pico verwenden
Anmerkungen:
neben den genannten beiden Editoren gibt es eine Vielzahl weiterer Texteditoren, die sich hinsichtlich Bedienung, Leistungsumfang und Portabilität stark voneinander unterscheiden
systemübergreifend steht der Unix-Standard-Editor Vi oder ein Vi-Clone zur Verfügung; weite Verbreitung hat der ausgesprochen mächtige und im Vergleich zum Vi sehr komfortable Editor Vim gefunden, der u.a. auch unter Windows zur Verfügung steht; Nachteil des Vi/Vim: seine nicht intuitive Bedienung, die sein Erlernen erschwert
weitergehende Informationen zum Vim erhalten Sie u.a. auf folgender Seite: http://www-user.tu-chemnitz.de/~hot/VIM/
Anzeige des Inhalt von Textdateien, ohne die Dateien zu editieren:
Kommandos:
cat (concatenate) more less
Beispiele:
cat daten.txt den Inhalt der Datei daten.txt auf die Standardausgabe
ausgeben (also im Normalfall auf den Bildschirm)
more daten.txt den Inhalt der Datei daten.txt seitenweise auf dem
Bildschirm anzeigen
less daten.txt den Inhalt der Datei daten.txt seitenweise auf dem
Bildschirm anzeigen, wobei man im Gegensatz zu more
mehr Funktionalität hat, u.a. das Rückwärtsblättern
Anmerkung: more und less kann man in Pipelines benutzen, wie folgende Beispiele zeigen:
cat datei.txt | more entspricht: more datei.txt cat datei.txt | less entspricht: less datei.txt ls -l | more Ausgabe von ls -l mit more anzeigen ls -l | less Ausgabe von ls -l mit less anzeigen
Kommando:
cat (concatenate)
Beispiele:
cat dat1 dat2 > dat3 den Inhalt der Dateien dat1 und dat2 aneinanderhängen
und das Resultat in Datei dat3 abspeichern
cat *.txt | less den Inhalt aller Dateien des aktuellen Verzeichnisses,
deren Name auf .txt endet, aneinanderhängen und dem
Kommando less übergeben (so dass man das Resultat seitenweise
betrachten kann)
Kommando:
wc (word count)
Optionen:
-c Anzahl der Zeichen ausgeben -l Anzahl der Zeilen ausgeben -w Anzahl der Wörter ausgeben
Beispiele:
wc -l *.txt die Zeilenanzahl von allen Dateien des aktuellen Verzeichnisses
ausgeben, deren Name auf .txt endet
wc *.txt Ausgabe der Anzahl der Zeilen, Wörter und Zeichen aller Dateien
des aktuellen Verzeichnisses, deren Name auf .txt endet;
wird wie hier keine Option angegeben, so werden implizit die
Optionen -c, -l und -w gesetzt
Kommando:
file
Beispiele:
file * Bestimmung des Typs aller Dateien des aktuellen
Verzeichnisses
file *.exe *.doc Bestimmung des Typs aller Dateien des aktuellen
Verzeichnisses, deren Namen auf .exe oder .doc enden
Kommandos:
fgrep grep egrep
Anmerkungen:
fgrep sucht genau die angegebene Zeichenfolge
grep und egrep suchen dagegen Muster, die durch sog. reguläre Ausdrücke angegeben werden, d.h., einige Suchzeichen haben eine spezielle Bedeutung, die dem Online-Manual entnommen werden kann (beide Kommandos sind prinzipiell gleich mächtig, unterscheiden sich aber teilweise hinsichtlich der Notation der Muster)
Optionen:
-i Groß- und Kleinschreibung nicht unterscheiden
-l nicht die gefundene Zeichenfolge anzeigen, sondern nur die Namen
der Dateien, in denen sie vorkommt
-L Namen der Dateien ausgeben, in denen die gesuchte Zeichenfolge
nicht vorkommt (also das Gegenstück zu Option -l)
-v Bedeutung der Suche umkehren, also diejenigen Zeilen suchen,
die die gesuchte Zeichenfolge nicht enthalten
Beispiele:
fgrep -li abc.def *.txt
die Zeichenfolge abc.def in allen Dateien
des aktuellen Verzeichnisses suchen, deren Name auf
.txt endet; Groß- und Kleinschreibung dabei nicht
unterscheiden (es wird also z.B. auch die Zeichenfolge
AbC.dEf gefunden); nur die Namen der Dateien
ausgeben, in denen die Zeichenfolge mindestens 1 Mal
vorkommt
grep -li abc.def *.txt
dito, aber Suche des Musters abc.def, also aller
Zeichenfolgen, die mit abc beginnen, in denen dann
ein beliebiges Zeichen folgt (symbolisiert durch den
Punkt) und die mit def enden; Beispiel: abc9def
fgrep -Li libero *.txt
Ausgabe der auf .txt endenden Namen aller Dateien des
aktuellen Verzeichnisses, die die Zeichenfolge libero
nicht enthalten, wobei Groß- und Kleinschreibung nicht
unterschieden werden
grep -i '^abc.*[0-9].*Z$' *.txt
Suche des Musters ^abc.*[0-9].*Z$
Erläuterung des Musters:
^ bedeutet Zeilenanfang
abc steht für die Zeichenfolge abc
.* entspricht einer beliebigen, evtl. leeren Zeichenfolge
[0-9] steht für eine Ziffer zwischen 0 und 9
Z steht für das Zeichen Z
$ bedeutet Zeilenende
es werden also alle Zeilen gesucht, die mit abc beginnen, in denen
dann irgendwo mindestens eine Ziffer folgt und die mit einem Z enden
um zu verhindern, dass die Sonderzeichen des grep-Musters von der Shell
interpretiert werden, wurde das Muster in Apostrophe eingeschlossen
grep 'Otto Normal' /etc/passwd
sucht alle Zeilen der Datei /etc/passwd, die irgendwo die Zeichenkette
Otto Normal enthalten
der Einschluss des Suchmusters in Apostrophe bewirkt, dass das Leerzeichen
im Suchmuster nicht von der Shell als Worttrenner interpretiert,
sondern an das Kommando grep übergeben wird
die Datei /etc/passwd ist die auf jedem Linux-Rechner verfügbare
Passwortdatenbasis, die für jeden Nutzer eine Zeile enthält, die aus
mehreren Feldern besteht, die durch Doppelpunkte getrennt sind
das erste Feld enthält das Nutzerkennzeichen und das fünfte Feld
den Namen des Nutzres sowie weitere Angaben (Struktureinheit und
Telefonnummer)
grep 'O.*Normal' /etc/passwd
sucht Zeilen in /etc/passwd, die eine Zeichenfolge enthalten, die
mit O beginnt und mit Normal endet, wobei in der Mitte
beliebig viele andere Zeichen stehen können
gefunden würden also z.B. Zeilen, die Olga Normalmensch
oder Otto Normalverbraucher enthalten
grep 'Grau[bp]ner' /etc/passwd
sucht Zeilen in /etc/passwd, die entweder die Zeichenfolge Graupner
oder Graubner enthalten
grep '^otto:' /etc/passwd
sucht die Zeile in /etc/passwd, die im ersten Feld die Zeichenkette
otto stehen hat (also genau den Eintrag für Nutzer otto)
durch das Zeichen ^ wird beschrieben, dass der Suchbegriff am
Zeilenanfang stehen muss; durch den Doppelpunkt, der für grep ein
normales zu suchendes Zeichen ist, nehmen wir den in /etc/passwd
gültigen Feldtrenner ins Suchmuster auf, so dass wir genau nach
dem Nutzerkennzeichen otto suchen
egrep -l 'abc|def' *.txt *.htm*
Suche des Musters abc|def in allen Dateien des aktuellen Verzeichnisses,
deren Name entweder auf .txt endet oder in dem irgendwo .htm vorkommt
Erläuterung des Musters:
abc steht für die Zeichenfolge abc
| bedeutet ODER, d.h., es werden Zeilen gesucht, die entweder
das Teilmuster links oder rechts vom senkrechten Strich
beinhalten
def steht für die Zeichenfolge def
es werden also alle Zeilen gesucht, die entweder die Zeichenfolge
abc oder def an einer beliebigen Stelle enthalten
Dateien (inkl. Verzeichnisse und symbolische Links) in Teilbäumen suchen:
Kommando:
find
Anmerkungen:
das Kommando find ist sehr mächtig und hat eine komplexe Syntax (viele Optionen und sonstige Argumente); wir wollen daher hier nur einige typische Beispiele zeigen
hinter dem Kommandonamen find gibt man im allgemeinen einen oder mehrere Pfade an, die rekursiv (also teilbaumweise) durchsucht werden sollen
hinter den Pfadangaben folgen die Angaben zu den gesuchten Dateien, Verzeichnissen und Links
Beispiele:
find ~ -name dipl_arbeit.sxw
sucht unterhalb des Homeverzeichnisses (angegeben durch Tilde)
nach dem Eintrag "dipl_arbeit.sxw"
find ~ -name \*.gif
sucht unterhalb des Homeverzeichnisses (angegeben durch Tilde)
alle Einträge (Dateien, Verzeichnisse und Links), deren Name
auf .gif endet
find . -name \*.gif -o -name \*.html
sucht unterhalb des aktuellen Verzeichnisses (angegeben durch Punkt)
alle Einträge, deren Name auf .gif oder .html endet
find .
sucht unterhalb des aktuellen Verzeichnisses alle Einträge,
d.h., es wird eine Liste aller Einträge des im aktuellen Verzeichnis
beginnenden Teilbaums erzeugt
find . -type f
sucht unterhalb des aktuellen Verzeichnisses alle Einträge,
bei denen es sich um normale (reguläre) Dateien handelt
find . -type d
sucht unterhalb des aktuellen Verzeichnisses alle Einträge,
bei denen es sich um Verzeichnisse handelt
find . -type l
sucht unterhalb des aktuellen Verzeichnisses alle Einträge,
bei denen es sich um symbolische Links handelt
find . | egrep -i 'html|pdf'
sucht unterhalb des aktuellen Verzeichnisses alle Einträge;
die von find generierte Liste der Einträge wird an das Suchkommando
egrep übergeben, das ohne Unterscheidung von Groß- und Kleinschreibung
dann nach den Zeichenfolgen html oder pdf sucht;
so kann man alle Einträge ermitteln, in deren Namen die Zeichenfolgen
html oder pdf in irgendeiner Schreibweise vorkommen
find ~/PUBLIC -name \*.gif -print0 | xargs -0 rm -f
sucht unterhalb des Verzeichnisses PUBLIC im Homeverzeichnis
nach Einträgen, die mit .gif enden; diese Liste wird an das
Kommando xargs übergeben, das dann für jeden Eintrag das Kommando
rm -f ausführt
mit der im Beispiel gezeigten Pipeline kann man also alle .gif-Dateien
unterhalb von ~/PUBLIC ohne Rückfrage löschen
das Zusammenspiel der Optionen -print0 bei find sowie -0 bei
xargs sichert, das man auch Dateinamen korrekt verarbeiten kann,
die Leerzeichen enthalten
find ~ -mmin -300
sucht unterhalb des Homeverzeichnisses nach Einträgen, die vor
weniger als 300 Minuten modifiziert wurden
find ~ -mmin +300
sucht unterhalb des Homeverzeichnisses nach Einträgen, die vor
mehr als 300 Minuten modifiziert wurden
find ~ -mmin 300
sucht unterhalb des Homeverzeichnisses nach Einträgen, die vor
genau 300 Minuten modifiziert wurden
find ~ -daystart -mtime -2
sucht unterhalb des Homeverzeichnisses nach Einträgen, die vor
weniger als 2 Tagen modifiziert wurden
find ~ -daystart -mtime +2
sucht unterhalb des Homeverzeichnisses nach Einträgen, die vor
mehr als 2 Tagen modifiziert wurden
find ~ -daystart -mtime 2
sucht unterhalb des Homeverzeichnisses nach Einträgen, die vor
genau 2 Tagen modifiziert wurden
find ~ -printf '%p %Td.%Tm.%TY\n' | fgrep 29.12.1998
sucht unterhalb des Homeverzeichnisses nach Einträgen, die am 29.12.1998
zuletzt modifiziert wurden; das mit fgrep zu suchende Datum ist hierbei in
der Form TT.MM.JJJJ anzugeben; jede Ausgabezeile enthält den Pfadnamen
des Eintrags, ein Leerzeichen sowie das Datum in der Form TT.MM.JJJJ
Mit dem Kommando sort steht ein sehr leistungsfähiges Sortierwerkzeug für Texte zur Verfügung, das diese zeilenweise sortiert. Die Texte können in Dateien stehen oder von sort aus einer Pipe gelesen werden.
Kommando:
sort
Optionen:
-f Groß- und Kleinschreibung nicht unterscheiden -i nur druckbare Zeichen beachten (nicht druckbare Zeichen ignorieren) -k Sortierschlüssel festlegen (die Angabe der Schlüssel wird unten erläutert) -n an Hand des numerischen Wertes (und nicht lexikographisch) sortieren -o Name der Ausgabe-Datei festlegen -r Sortierreihenfolge umkehren (d.h. absteigend statt aufsteigend sortieren) -t Feldtrenner festlegen -u Dubletten streichen
Anmerkungen:
sort liest standardmäßig die zu sortierenden Daten von der Standardeingabe und schreibt die sortierten Daten auf die Standardausgabe
wenn man mindestens einen Dateinamen als Argument angibt, werden die angegebenen Dateien an Stelle der Standardeingabe sortiert
durch die Option -o kann man den Namen der Ausgabe-Datei festlegen; diese Ausgabe-Datei kann auch gleichzeitig Eingabe-Datei sein (sort kann also eine Datei "an Ort und Stelle", d.h. ohne Umweg über eine andere Datei sortieren)
jede Eingabe-Zeile wird logisch in Felder bzw. Spalten unterteilt; der Standard-Feldtrenner ist ein Übergang von einem Nicht-Leerzeichen zu einem Leerzeichen; mit der Option -t kann man einen anderen Trenner vorgeben
die einzelnen Felder/Spalten werden von 1 beginnend fortlaufend durchnummeriert und können als Sortierschlüssel verwendet werden (Option -k, die mehrfach auftreten kann); gibt man keinen Sortierschlüssel an, wird die gesamte Eingabe-Zeile als Schlüssel verwendet
Angabe der Sortierschlüssel:
allgemeine Syntax für einen Sortierschlüssel: -k POS1,POS2
durch POS1 und POS2 wird festgelegt, dass sich der Sortierschlüssel von Spalte POS1 bis Spalte POS2 erstreckt; das Leerzeichen nach -k kann entfallen
POS2 ist optional; man kann also auch nur -k POS1 angeben; dann erstreckt sich der Sortierschlüssel von Spalte POS1 bis zum Zeilenende
bei der Angabe mehrerer Sortierschlüssel ist die Reihenfolge relevant; weiter links stehende Schlüssel haben immer eine höhere Wertigkeit als weiter rechts stehende Schlüssel; der zuerst angegebene Schlüssel ist also immer der primäre Schlüssel
mit der Option -u werden beim Sortieren Dubletten gestrichen; d.h., sofern mehrere Zeilen existieren, die bzgl. der angegebenen Sortierschlüssel identisch sind, wird nur die erste dieser Zeilen ausgegeben
Achtung: die Dubletten-Kontrolle bezieht sich immer auf die angegebenen Schlüssel; wenn man also z.B. die Tabelle
Januar 11 abc Januar 12 xyz Januar 11 xyz
primär nach Spalte 1 und sekundär nach Spalte 2 sortiert, wird nur die erste Januar-Zeile ausgegeben, da beide Januar-Zeilen bzgl. der Schlüssel (also "Januar" und "11") identisch sind
hinter der Spalten-Nummer kann man bei POS1 und POS2 auch noch eine Zeichenposition sowie einbuchstabige Optionen angeben, wobei diese Optionen ggf. globale Optionen außer Kraft setzen; fehlt die Angabe der Zeichenposition, wird sie automatisch mit 1 angenommen
Beispiele:
1.5rn Spalte 1, Zeichenposition 5, Optionen r und n 2n Spalte 2, Zeichenposition 1 (implizit), Option n
Beispiele:
sort abc.txt
sortiert die Datei abc.txt aufsteigend und schreibt das Ergebnis auf die
Standardausgabe; Sortierschlüssel ist die gesamte Eingabe-Zeile
sort -urn -o abc.txt abc.txt
sortiert die Datei abc.txt absteigend (Option -r) und schreibt das Ergebnis in die
Datei abc.txt (Option -o); Sortierschlüssel ist die gesamte Eingabe-Zeile;
es wird numerisch und nicht lexikographisch sortiert (Option -n); Dubletten werden
gestrichen (Option -u)
sort -t\| -k1,2r -k3,3n -o abc.txt abc.txt
sortiert die Datei abc.txt unter Verwendung von 2 Schlüsseln und schreibt das Ergebnis in die
Datei abc.txt (Option -o); Sortierschlüssel 1 sind die Spalten 1 und 2; nach diesem
primären Schlüssel wird absteigend sortiert (Option -r); Sortierschlüssel 2 ist Spalte 3, nach der
numerisch aufsteigend sortiert wird; Spaltentrenner ist der senkrechte Strich (Option -t),
wobei dieser durch Voranstellen des Backslashs vor der Interpretation durch
die Shell geschützt wird, die den senkrechten Strich als Pipe-Zeichen werten würde
daten_generator | sort -t\| -k1,1 2,2r -k4,4nr -o ausgabe.txt
sortiert die Ausgabe des Kommandos daten_generator, die via Pipe gelesen wird,
unter Verwendung von 3 Schlüsseln und schreibt das Ergebnis in die Datei
ausgabe.txt (Option -o); Sortierschlüssel 1 ist die Spalte 1; nach dieser
wird lexikographisch aufsteigend sortiert (Standard bei fehlender Option); Sortierschlüssel 2
ist Spalte 2, nach der absteigend sortiert wird (Option -r); Sortierschlüssel 3 ist Spalte 4,
nach der numerisch absteigend sortiert wird (Optionen -n und -r); Spaltentrenner ist der
senkrechte Strich (Option -t), wobei dieser wie oben durch Voranstellen des Backslashs vor der
Interpretation durch die Shell geschützt wird
Mit dem Kommando du kann man sich anzeigen lassen, wieviel Platz die als Argumente angegebenen Dateien und Verzeichnisse auf der Platte belegen. Damit kann man "Speicherplatzfresser" aufspüren, was z.B. bei einer hohen Auslastung der AFS-Quota sinnvoll ist.
Die Ausgabe der Größe erfolgt standardmäßig als Anzahl der Blöcke der Größe 1024 Byte (1 KB).
Kommando:
du (disk usage)
Optionen:
-a die Größe aller Dateien und nicht nur die Größe der Verzeichnisse anzeigen
-c am Ende die Summe aller zuvor angezeigten Größen ausgeben
-h die Größenangabe erfolgt "menschenlesbarer", d.h., der Zahl folgt eine Maßeinheit
(Potenz von 1024 Byte); Beispiele: 1K, 234M, 2G
-H wie -h, aber in Potenzen von 1000 statt 1024 sowie teilweise
leicht modifizierten Kürzeln der Maßeinheit
-s nur die Summe (Gesamtgröße) für jedes Argument anzeigen
--max-depth maximale Suchtiefe (Anzahl Verzeichnisebenen) festlegen
Anmerkung: Die Optionen -a und -s schließen einander aus. Man kann sie also nicht zusammen benutzen.
Beispiele:
du
du ohne Argumente zeigt den Speicherplatzbedarf des aktuellen
Verzeichnisses an, wobei der Platzbedarf aller Unterverzeichnisse beliebiger
Tiefe ebenfalls angezeigt wird
du -a
zeigt den Speicherplatzbedarf des aktuellen Verzeichnisses an, wobei der
Platzbedarf aller darunter befindlichen Dateien (Option -a) und Verzeichnisse
beliebiger Tiefe ebenfalls angezeigt wird
du -a | sort -k1,1n
die Ausgabe des oben erläuterten Kommandos du -a wird hier nach der
Spalte 1, die den Speicherplatzbedarf angibt, numerisch aufsteigend sortiert; damit
stehen die "Speicherplatzfresser" am Ende der Ausgabeliste; möchte man sie lieber
am Anfang haben, muss man die Option r ergänzen, also -k1,1nr
du -a | sort -k1,1n > liste
die Ausgabe des zuvor erläuterten Kommandos wird in die Datei liste des
aktuellen Verzeichnisses geschrieben, so dass man sie anschließend mit einem geeigneten
Werkzeug (z.B. einem Text-Editor wie Kate oder KWrite oder einem Pager wie
less) betrachten kann
du -a | sort -k1,1n | less
wieder das obige Kommando, wobei hier das Ergebnis sofort an den Pager less
weitergegeben und nicht in einer Datei gespeichert wird
du -s
zeigt den summierten Speicherplatzbedarf (Option -s) des aktuellen Verzeichnisses an;
man kann damit also den Speicherplatzbedarf desjenigen Teilbaums der Verzeichnishierarchie
ermitteln, der beim aktuellen Verzeichnis beginnt
du -s .
entspricht dem Kommando du -s; mit dem Punkt wird das aktuelle Verzeichnis explizit benannt
du -s A* .mozilla
ermittelt den summierten Speicherplatzbedarf (Option -s) für alle Dateien und
Verzeichnisse des aktuellen Verzeichnisses, deren Name mit einem A beginnt, sowie
für die Datei bzw. das Verzeichnis .mozilla
du -s * /tmp
ermittelt den summierten Speicherplatzbedarf (Option -s) für alle Dateien und
Verzeichnisse des aktuellen Verzeichnisses, deren Name nicht mit einem Punkt beginnt
(diese werden durch das Muster * nicht erfasst) sowie für das Verzeichnis /tmp
du -sc * /tmp
wie das vorherige Kommando, allerdings wird am Ende noch eine Summe aller
zuvor ermittelten Größen ausgegeben (Option -c)
du -s .[^.]*
ermittelt den summierten Speicherplatzbedarf (Option -s) für alle Dateien und
Verzeichnisse des aktuellen Verzeichnisses, deren Name mit einem Punkt beginnt;
das Muster besagt: Punkt, gefolgt einem Zeichen ungleich Punkt, gefolgt von beliebig
vielen anderen Zeichen (ggf. keine); darüber schließen wir die beiden speziellen
Namen . (das aktuelle Verzeichnis selbst) sowie .. (das Vaterverzeichnis) aus
du --max-depth=1
Anzeige der summierten Größen des aktuellen Verzeichnisses sowie aller Unterverzeichnisse
bis zur maximalen Tiefe 1; damit tauchen in der Ausgabe neben dem Punkt für das aktuelle
Verzeichnis nur die Unterverzeichnisse auf, deren Namen im aktuellen Verzeichnis zu finden sind,
aber keine, die tiefer liegen (wobei diese natürlich in die Summierung eingehen)
Kommandos:
cmp (compare) diff (difference)
Anmerkungen:
cmp führt einen zeichenweisen Vergleich zweier Dateien durch und meldet die Stelle, an der der erste Unterschied auftritt; bei identischen Dateien meldet cmp gar nichts
diff versucht, alle Unterschiede zwischen Dateien herauszufinden und so anzuzeigen, dass man die eine Datei in die andere überführen kann (ggf. mittels eines Programms auf dem Computer); diff eignet sich primär für Textdateien, wozu z.B. auch HTML-Seiten und PS-Dateien gehören
Beispiele:
cmp eins zwei
Vergleich der beiden Dateien namens eins und zwei mittels cmp
diff eins zwei
dito mittels diff statt cmp
diff -u eins zwei
Option -u gibt das Vergleichsergebnis sehr übersichtlich aus, so dass
man leicht erkennt, welche Zeilen hinzugekommen sind, gelöscht
oder geändert wurden
diff -ru ABC DEF
Option -r realisiert einen rekursiven Vergleich der bei den
Verzeichnissen ABC und DEF beginnenden Teilbäume
Kommandos:
gzip Kompression mittels gzip gunzip Dekompression von mit gzip komprimierten Daten zcat wie gunzip, aber Ergebnis auf die Standardausgabe ausgeben bzip2 Kompression mittels bzip2 bunzip2 Dekompression von mit bzip2 komprimierten Daten bzcat wie bunzip2, aber Ergebnis auf die Standardausgabe ausgeben
Anmerkung: gzip komprimiert im allgemeinen deutlich schneller als bzip2; dafür erreicht bzip2 speziell bei Textdateien oft deutlich bessere Kompressionsraten
Beispiele:
gzip eins zwei
die Dateien eins und zwei mittels gzip komprimieren
gzip abc.tar
die Datei abc.tar (ein Tar-Archiv) mittels gzip komprimieren
gzip *.html *.ps
alle .html- und .ps-Dateien mittels gzip komprimieren
gunzip *gz *tgz
alle Dateien, deren Namen auf gz oder tgz enden, dekomprimieren,
sofern diese durch gzip komprimiert wurden
zcat text.gz | less
die mittels gzip komprimierte Datei text.gz dekomprimieren und das
Resultat mittels less seitenweise anzeigen
bzip2 eins zwei
die Dateien eins und zwei mittels bzip2 komprimieren
bzip2 abc.tar
die Datei abc.tar (ein Tar-Archiv) mittels bzip2 komprimieren
bzip2 *.html *.ps
alle .html- und .ps-Dateien mittels bzip2 komprimieren
bunzip2 *bz2 *tbz
alle Dateien, deren Namen auf bz2 oder tbz enden, dekomprimieren,
sofern diese durch bzip2 komprimiert wurden
bzcat text.bz2 | less
die mittels bzip2 komprimierte Datei text.bz2 dekomprimieren und das
Resultat mittels less seitenweise anzeigen
Umgang mit ZIP-Archiven:
Kommandos:
zip unzip
Anmerkung: zip erstellt ZIP-Archive, unzip entpackt sie (extrahiert den Inhalt)
Beispiele:
zip alles.zip *.html *.ps
ZIP-Archiv alles.zip erstellen, darin alle .html- und
.ps-Dateien aufnehmen
zip -r alles.zip public_html PUBLIC/*.ps
ZIP-Archiv alles.zip erstellen, darin rekursiv den beim
Verzeichnis public_html beginnenden Teilbaum sowie alle
.ps-Dateien aus dem Verzeichnis PUBLIC aufnehmen
unzip -v alles.zip
Inhalt des ZIP-Archivs alles.zip auflisten
unzip alles.zip
ZIP-Archiv alles.zip entpacken, also Inhalt extrahieren
Umgang mit Tar-Archiven:
Kommando:
tar [Optionen] [Dateien]
Optionen:
c Archiv erstellen x Dateien aus dem Archiv extrahieren f Name des Archivs (folgt im nächsten Argument) t Archivinhalt ausgeben v Verbose-Modus (detailliertere Ausgabe) z Kompression/Dekompression mit gzip/gunzip I Kompression/Dekompression mit bzip2/bunzip2 k beim Extrahieren keine existierenden Dateien überschreiben p beim Extrahieren alle Dateirechte nach Möglichkeit erhalten
Beispiele:
tar cf archiv.tar *.html PUBLIC
Tar-Archiv archiv.tar erstellen; .html-Dateien sowie
das komplette Verzeichnis PUBLIC aufnehmen
tar cfv archiv.tar *.html PUBLIC
dito, zusätzliche alle Aktionen anzeigen
tar cfvz archiv.tgz *.html PUBLIC
dito, wobei das Tar-Archiv zusätzlich mit gzip komprimiert wird
tar cfvI archiv.tbz *.html PUBLIC
dito, aber mit bzip2 statt mit gzip komprimieren
tar tfvz archiv.tgz
ausführliche Anzeige des Inhalts des mit gzip komprimierten
Tar-Archivs
tar tfvI archiv.tbz
ausführliche Anzeige des Inhalts des mit bzip2 komprimierten
Tar-Archivs
tar xfvzkp archiv.tgz
Entpacken des mit gzip komprimierten Tar-Archivs; alle Aktionen
protokollieren, alle Dateirechte erhalten und keine Dateien
ohne Rückfrage überschreiben
tar xfvIkp archiv.tbz
dito für ein mittels bzip2 komprimiertes Tar-Archiv
bzcat archiv.bz2 | tar tfv -
Anwendung von tar in einer Pipeline; bzcat dekompromiert das
Archiv archiv.bz2 und übergibt das Resultat an tar, das nun den
Inhalt des dekomprimierten Archivs anzeigt (das Minus besagt,
das tar von der Standardeingabe und damit aus der Pipeline liest)
Anzeige der aktuell verfügbaren AFS-Token:
Kommando:
tokens
typischerweise hat ein Nutzer nur ein Token, weil er nur in einer AFS-Zelle arbeitet (bei uns in der Zelle tu-chemnitz.de); es ist aber möglich, Nutzer in mehreren Zellen zu sein; dann kann man mehrere Token haben (für jede Zelle eins); darauf gehen wir hier aber nicht ein
Beschaffung eines neuen AFS-Tokens:
Kommando:
klog
Beispiele:
klog
Beschaffung eines Tokens für den aktuellen Nutzer, also jenen, der
das Kommando klog aufruft
klog otto
Token für Nutzer otto beschaffen (damit ist ein Wechsel der
AFS-Identität möglich)
für die Token-Beschaffung benötigt man das AFS-Passwort des Nutzers, für den man ein Token anfordert
sofern man keine PAG-Shell verwendet, steht das durch klog beschaffte neue Token global, d.h. in der gesamten aktuellen Sitzung zur Verfügung (denn dieser Sitzung ist bei uns automatisch beim Anmelden eine PAG zugeordnet worden, in der das Token gehalten wird)
Zerstörung des AFS-Tokens:
Kommando:
unlog
Starten einer PAG-Shell:
Kommando:
pagsh
durch PAG-Shells kann man in einer Sitzung parallel mehrere Token für dieselbe AFS-Zelle halten und nutzen
das können Token für unterschiedliche AFS-Nutzerkennzeichen oder auch Token für dasselbe Nutzerkennzeichen, aber mit unterschiedlicher Laufzeit sein
eine PAG-Shell hat nach dem Start kein Token; man muss also erst mit klog ein Token anfordern
die PAG-Shell ist eine normale Shell, die eben nur in einer neuen PAG gestartet wird und die man in gewohnter Weise als Kommandointerpreter benutzen kann
typischerweise wird durch pagsh eine bash gestartet; durch das Kommando tcsh kann man sich aus der bash heraus aber jederzeit eine tcsh starten (könnte für tcsh-Nutzer von Interesse sein, weil dadurch deren spezielle Einstellungen der Nutzerumgebung wirksam werden)
nach Beenden der PAG-Shell (durch Strg-D oder das Kommando exit) ist das darin befindliche Token nicht mehr verfügbar
Beispiel:
tcsh-Nutzer hot startet eine PAG-Shell, d.h. eine bash in einer neuen PAG
aus dieser bash heraus startet er eine tcsh, also seine Standard-Shell (z.B. weil er damit vertrauter ist oder seine spezifischen Einstellungen, die er für die tcsh vorgenommen hat, nutzen möchte)
in der neuen PAG holt er sich ein Token für Nutzer otto; die AFS-Identität lautet jetzt in der neuen PAG (also sowohl in der bash als auch der tcsh) otto, die Linux-UID weiterhin hot
nachdem hot mit dem Token von otto die gewünschten Kommandos ausgeführt hat, beendet er die PAG (zuerst die tcsh und dann die bash) durch exit
hot@alfredo 2 > pagsh bash$ tcsh hot@alfredo 1 > tokens Tokens held by the Cache Manager: --End of list-- hot@alfredo 2 > klog Password: hot@alfredo 3 > klog otto Password: hot@alfredo 4 > id ; tokens uid=4324(hot) gid=102(urz) groups=34155,48167,102(urz) Tokens held by the Cache Manager: User's (AFS ID 20934) tokens for afs@tu-chemnitz.de [Expires Apr 12 17:54] --End of list-- ... beliebige Shell-Kommandos hot@alfredo 15 > exit exit bash$ exit
Anzeige der AFS-ACL:
Kommando:
fs la
Beispiele:
fs la im aktuellen Verzeichnis
fs la ~ im Homeverzeichnis
fs la ~hot/PUBLIC im Verzeichnis PUBLIC unterhalb des
Homeverzeichnisses
es ist zu beachten, dass AFS-ACLs immer Verzeichnissen und nicht einzelnen Dateien zugeordnet sind und natürlich nur im AFS und nicht in lokalen Linux-/Unix-Dateisystemen existieren
Ändern der AFS-ACL:
Kommando:
fs sa
Beispiele:
fs sa . otto write
Nutzer otto bekommt im aktuellen Verzeichnis Schreibrecht
fs sa ~hot/GLOBAL urz:ub_mitarbeiter read
alle UB-Mitarbeiter bekommen im Verzeichnis ~hot/GLOBAL Leserecht
fs sa ~hot/GLOBAL otto none urz:ub_mitarbeiter write
Nutzer otto bekommt unter ~hot/GLOBAL keinerlei Rechte, und
alle UB-Mitarbeiter bekommen in demselben Verzeichnis Schreibrecht
Ändern der AFS-ACLs aller Verzeichnisse eines Teilbaums:
Kommando:
chacl -R
Beispiel:
chacl -R ~/USER/otto otto write
Nutzer otto bekommt im Teilbaum unter ~/USER/otto Schreibrecht
Anzeige der Quota:
Kommando:
fs lq
Beispiel:
fs lq im aktuellen Verzeichnis fs lq ~ im Homeverzeichnis fs lq ~hot/PUBLIC im Verzeichnis ~hot/PUBLIC
Anlegen einer eigenen AFS-Gruppe:
Kommando:
pts creategroup
Beispiel:
pts creategroup hot:libero
Anlegen der Gruppe hot:libero, deren Eigentümer
der vor dem Doppelpunkt benannte Nutzer hot ist
Löschen einer AFS-Gruppe:
Kommando:
pts delete
Beispiel:
pts delete hot:libero
Löschen der Gruppe hot:libero
Anzeige der Mitglieder einer AFS-Gruppe:
Kommando:
pts membership
Beispiel:
pts membership hot:libero
Anzeige aller Mitglieder der Gruppe hot:libero
Hinzufügen von Nutzern zu einer AFS-Gruppe:
Kommando:
pts adduser
Beispiel:
pts adduser -user otto hot -group hot:libero
die Nutzer otto und hot werden zur Gruppe
hot:libero hinzugefügt
Löschen von Nutzern aus einer AFS-Gruppe:
Kommando:
pts removeuser
Beispiel:
pts removeuser -user otto hot -group hot:libero
die Nutzer otto und hot werden aus der Gruppe
hot:libero gelöscht
Anzeige der aktuellen Nutzer an einem Rechner:
Kommando:
finger
Beispiel:
finger am lokalen Rechner finger @miller am entfernten Rechner miller
Anzeige der zuletzt angemeldeten Nutzer an einem Rechner:
Kommando:
last
Anzeige der Linux-Identität von Nutzern:
Kommando:
id
Beispiele:
id Identität des aktuellen Nutzers anzeigen id otto Identität von Nutzer otto ermitteln
Wechsel der Linux-Identität von Nutzern:
Kommando:
su
Beispiele:
su Wechsel zur Identität des Systemadministrators root
su otto Wechsel zur Identität otto
su - otto dito, aber kompletten Anmeldevorgang realisieren, um die
Nutzerumgebung so wie bei einer Anmeldung einzustellen
für diesen Identitätswechsel benötigt man das Passwort des Nutzers, dessen Identität man annehmen möchte
bei uns wechselt su auch die AFS-Identität, sofern man als Argument das Kennzeichen eines AFS-Nutzers angibt, d.h., es fragt dann nach dem AFS-Passwort und beschafft ein Token
Anzeige des Prozess-Baums:
Kommando:
pstree
Option:
-p PIDs zusätzlich anzeigen
Beispiele:
pstree
Anzeige des kompletten Prozess-Baums (alle Prozesse
aller Nutzer) ohne PIDs
pstree -p
Anzeige des kompletten Prozess-Baums mit PIDs
pstree hot
Anzeige des Prozess-Baums ohne PIDs für Nutzer hot
pstree -p hot
Anzeige des Prozess-Baums mit PIDs für Nutzer hot
Anzeige der Prozess-Liste:
Kommando:
ps
Beispiele:
ps guxww
Anzeige aller Prozesse des aktuellen Nutzers (also
desjenigen, der ps aufruft) im langen Format,
d.h., hier werden im Gegensatz zu pstree
auch lange Kommandos komplett angezeigt
ps aguxww
Anzeige aller Prozesse (also nicht nur des aktuellen
Nutzers) im langen Format
Signale (TERM oder KILL) an über ihre PID ausgewählte Prozesse senden, um sie zu beenden:
Kommando:
kill
Optionen:
-s zu sendendes Signal (wird numerisch oder symbolisch angegeben) -l Ausgabe einer Liste der symbolischen Signalnamen
Beispiele:
kill 1003 Signal TERM an Prozess 1003 (d.h. mit PID 1003) schicken kill 1003 1005 Signal TERM an die Prozesse 1003 und 1005 schicken kill -s 9 1003 Signal KILL an Prozess 1003 schicken kill -s KILL 1003 dito kill -9 1003 -9 ist die Kurzform von -s 9 kill -KILL 1003 -KILL ist die Kurzform von -s KILL kill -l Ausgabe der Liste der symbolischen Signalnamen
Signale (TERM oder KILL) an über Kommandos ausgewählte Prozesse senden, um sie zu beenden:
Kommando:
killall
Optionen:
-i Rückfrage an den Nutzer vor dem Senden des Signals
-v Verbose-Modus (Meldung ausgeben, wenn das Signal erfolgreich
gesendet wurde)
Beispiele:
killall -i netscape-communicator
Signal TERM an alle Netscape-Communicator-Prozesse senden
killall -v -i -KILL netscape-communicator soffice.bin
Signal KILL an alle Netscape-Communicator- und Staroffice-Prozesse senden
killall -v -i -9 netscape-communicator soffice.bin
dito, aber mit numerischer Signalangabe
Kommando:
man
Beispiel:
man cp Manual-Seite zum Kommando cp anzeigen
viele Kommandos verfügen über eine Hilfe-Option, die oft -h, --help oder help lautet und manchmal mehr oder aktuellere Informationen liefert als die über man abrufbare Manual-Seite
bei cp kann man sich z.B. mit
cp --help
diese Hilfe ausgeben lassen
Kommando:
ssh
Beispiele:
ssh miller
Anmeldung auf Rechner miller mit demselben Nutzerkennzeichen, mit dem
das ssh-Kommando lokal gestartet wurde
ssh otto@miller
Anmeldung als Nutzer otto auf Rechner miller
ssh miller soffice
Anmeldung auf miller und dort Start des Kommandos soffice,
dessen grafische Ausgaben auf dem lokalen Rechner erscheinen,
da ssh diese Ausgaben geeignet weiterleitet
durch die SSH (Secure Shell) kann man sich auf einem entfernten Rechner anmelden und dort eine Shell nutzen, wobei die Ausgaben grafischer Programme an die lokale Maschine weitergeleitet werden, wenn man lokal auf einem grafischen Bildschirm arbeitet
die Kommunikation zwischen lokalem und entferntem Rechner erfolgt verschlüsselt, so dass man sie weder abhören noch unbemerkt manipulieren kann
gegenüber der entfernten Maschine muss man sich als derjenige Nutzer authentifizieren, dessen Identität man annehmen will; diese Authentifizierung erfolgt im Standardfall durch das AFS-Passwort
über die SSH kann man unter Verwendung der Kommandos zum Prozess-Management auch Verklemmungen auf entfernten Rechnern beheben, sofern man die Berechtigung hat, die verklemmten Prozesse zu beenden (bei normalen Nutzern nur jene Prozesse, die dem betreffenden Nutzer gehören)