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)