Unixkommandos
Verfasst: Di 21 Mär, 2006 14:25
1. Das Kommando man
2. Ausdrucken einer manpage
3. Verzeichniskommandos
3.1 Verzeichnisse anlegen
3.2 Verzeichnisse löschen
3.3 Navigieren im Verzeichnisbaum
3.4 Shortcuts
3.5 Anlage des Arbeitsverzeichnisses
4. Dateikommandos
4.1 Dateien im Verzeichnis auflisten
5. Dateirechte
5.1 Rechte setzen
5.2 Definieren genereller Zugangsrechte in neuen Dateien
5.3 Dateien kopieren
5.4 Dateinamen verändern
5.5 Dateien löschen
6. Dateien durchsuchen
7. Dateien anzeigen
7.1 Das Kommando more
7.1 Das Kommando cat
7.3 Das Kommando head
7.4 Das Kommando tail
8. Nach Mustern suchen
8.1 Ein einzelnes Merkmal aus einem String filtern
8.2 Jede Übereinstimmung mit einem bestimmten Wort herausfiltern
9. Prozessmonitoring
9.1 Das Kommando ps
9.2 Das Kommando top
9.3 Die Kommandos who und w
9.4 Prozesse killen
10. Auslastung von anderen Workstations im Netz checken
11. Prozessprioritäten verändern
12. Festplattenplatz checken
13. Das Kommando history
14. Unixtools
14.1 Pipes
14.2 Input/Output Redirection
14.3 Das Komanndo sort
14.4 Das Kommando diff
14.5 Zeilen, Wörter und Character zählen
14.6 Das Kommando ispell
14.7 Das Passwort ändern
15. Anhang
Unixkommandos
1. Das man Kommando
Um Informationen über ein Unixkommando zu erhalten, kannst du die Onlinemanualseiten verwenden. Syntax: man command (z.B. man file gibt alle Befehle aus, die mit „file“ zusammenhaengen) Wenn du den Namen des benötigen Kommandos nicht weisst, führe man mit der -k Option aus
man -k keyword
Um zum Beispiel rauszufinden, welche Kommandos mit dem Begriff directories verbunden sind , musst du
man -k directory
eingeben. Dieses Kommando gibt dir Informationen über alles Kommandos, die mit dem Begriff directory verbunden sind zusammen mit einer kurzen Beschreibung, was dieses Kommando tut.
2. Eine man page ausdrucken
Um eine man page auszudrucken, musst du den output deines Befehls in eine Datei schicken und von dort aus den Druckbefehl geben, wie in dem nachfolgenden Beispiel:
Um eine Datei anzulegen, die den output deiner Anfrage in Bezug auf das Kommando ls aufnimmt, musst du
man ls > ls.txt
an der Konsole eingeben. Du kannst dann die erstellte Textdatei mit dem Befehl lpr ls.txt an deinen Drucker senden. Mit lprm job jobnummer kannst du den Druck abbrechen.
3. Verzeichnis Kommandos
3.1.Ein Verzeichnis anlegen (mkdir)
Mit dem Kommando mkdir kannst du Verzeichnisse anlegen.
Syntax: mkdir [Optionen] directory
Wenn du eingeloggt bist unter z.B. /users/dir/ kannst du ein Verzeichnis memos anlegen, indem du den Befehl
mkdir memos
eingibst. Dieser Befehl legt das Verzeichnis /users/memos an. Wenn man möchte, kann man auch mehr als ein Verzeichnis anlegen. Bist du wieder unter /users/dir angemeldet, kannst du mit dem Kommando
mkdir projekte beispiele
die Verzeichnisse /users/dir/projekte und /users/dir/beispiele anlegen. Du kannst auch ein Verzeichnis anlegen, imdem du seine absolute Position bestimmst. Wenn du dich gerade im Verzeichnis /users/dir/beispiele befindest, kannst du mit dem Befehl
mkdir /users/dir/projekte/neu
das Unterverzeichnis neu anlegen, ohne dich im Verzeichnis projekte zu befinden.
3.2.Verzeichnisse löschen (rmdir)
Um ein Verzeichnis zu löschen, benutze das Kommando rmdir. Bedenke, dass alle Dateien, die sich in diesem Verzeichnis befinden, gelöscht sein müssen, bevor du das Verzeichnis selbst löschen kannst.
Syntax: rmdir directory
Im Verzeichnis /users/dir/projekte löscht das Kommando
rmdir neu
das Unterverzeichnis neu. Wenn du dich im Verzeichnis /users/dir/ befindest, löscht das Kommando
rmdir projekte/neu
das Verzeichnis neu. Alternativ dazu kannst du auch das Kommando Syntax: rm -ri directory verwenden. Hierbei musst du sehr vorsichtig sein, denn dieses Kommando löscht rekursiv alle Unterverzeichnisse und Dateien unterhalb des angegebenen Verzeichnisses.
3.3. Sich innerhalb des Verzeichnisbaumes bewegen
Um die Richtung in deinem Verzeichnisbaum zu wechseln, benutze das Kommando cd. Benutzt du das Kommando ohne eine Option hinzuzufuegen, landest du in deinem Homeverzeichnis.
Syntax: cd directory
Um zum Beispiel vom Verzeichnis /users/dir/ in das Verzeichnis /users/dir/projekte zu wechseln, gibst du das Kommando
cd projekte
Um vom Unterverzeichnis /users/dir/projekte in das Verzeichnis /users/dir/memos zu wechseln, tippe das Kommando
cd /users/dir/memos
3.4. Verzeichnisshortcuts
Du kannsst Verzeichnisabkuerzungen (directory shortcuts) nehmen, wenn du den Verzeichnisnamen spezifizierst. Die nachfolgenden Beispiele zeigen die Verwendung mit dem Kommando cd, aber sie können mit allen Unixkommandos gebraucht werden, wenn du die Dateinamen spezifizierst. Du kannst dein Homeverzeichnis als Ausgangspunkt nehmen, wenn du die Pfadangaben mit einer tilde (~) spezifizierst. Die tilde instruiert die shell, den Pfadnamen von
deinem Homedirectory aus zu verwenden.
Wenn du also zum Beispiel aus dem Verzeichnis /users/dir/projekte/neu in das Verzeichnis /users/dir/memos wechseln moechetest, tippe das Kommandoart
cd ~/memos
Du kannst das Kommando cd auch verwenden, um in das Homeverzeichnis eines anderen Users zu springen, immer vorausgesetzt, dass du die Rechte dazu hast. Benutze das Kommando
cd ~ username
Zusätzlich kannst du die .. Notation verwenden, um dich in deinem Verzeichnisbaum zu bewegen. Die Notation .. bezieht sich auf das nächsthöhere Verzeichnis als das, in dem du dich gerade befindest. Um vom Verzeichnis /users/dir/neu in das Unterverzeichnis /users/dir/projekte zu springen, benutze das Kommando
cd ../projekte
Die Notation .. weisst das System an, eine Ebene höher zu steigen und dann in das angegebene Unterverzeichnis zu welchseln. Du kannst aber auch das Kommando cd .. verwenden, um Ebene für Ebene in den Unterverzeichnissen zu welchseln.
3.5 Angabe des Arbeitsverzeichnisses
Wenn du dich in deinem Verzeichnisbaum bewegst und wissen willst, wo du dich gerade befindest, kann du das Kommando
Syntax: pwd
eingeben.
4. Dateikommandos
4.1 Dateien in einem Verzeichnis auflisten
Um die Dateien in einem Verzeichnis aufzulisten, benutze das Kommndo ls .
Syntax: ls [Optionen] [Dateiname]
Benutzt du das Kommando ls ohne zusätzliche Angaben, bekommst du eine Auflistung der Dateien des Verzeichnisses, in dem du dich gerade befindest. Das Kommando zeigt nur die Namen der Dateien an, die in den Verzeichnis vorhanden sind. Einige der häufigsten Optionen findest du in den nachfolgenden Beispielen:
1. Um alles versteckten Dateien anzuzeigen, wie z.B. .login oder .cshrc in deinem Homeverzeichnis, tippe
ls -a
2. Um eine ausfuehliche Liste mit den dazugehörigen Dateirechten, der Groesse und des Datums zu erhalten tippe
ls -l
3. Um eine absteigende Liste aller Dateien im Arbeitsverzeichniss und der Dateien von Unterverzeichnissen, die sich
eventuell im Arbeitsverzeichniss befinden zu erhalten,tippe das Kommando
ls -R
4. Manchmal ist es sinnvoll, das Kommando ls in Verbindung mit anderen Unixkommandos zu verwenden. Wenn zum
Beispiel zu viele Dateien in einem Verzeichnis abgelegt sind, um auf den Bildschirm angezeigt werden zu können,
kann man das System anweisen, diese Seitenweise anzuzeigen , indem man das Kommando
ls -l | more
eingibt.
5. Um eine Untergruppe von Dateien zu finden, benutze das ls Kommando mit dem Unixsuchbefehl grep. Um alle
Dateien zu finden, die an einem bestimmten Datum erstellt worden sind, tippe
ls -l | grep ´Jun 25 ‘
5. Dateirechte (chmod)
5.1. Rechte setzen
Dateien sind mit Dateirechten versehen, dass heisst, das nicht jeder User in jeder Datei alles tun darf (also Lesen, Schreiben, Ausfuehren). Nachfolgend die Rechte (in symbolischer und numerischer) Ausfuehrung:
r 4 Leserecht
w 2 Schreibrecht
x 1 Executieren (Ausfuehren)
Mit dem Kommando chmod kannst du die Rechte an einer Datei für drei Gruppen
1. User (u) [user]
2. Gruppe (g) [group]
3. Andere (o) [others]
indem du
Syntax: chmod ugo Dateiname
eingibst. Das Zugangsrecht für jede Klasse von Usern erhältst du, indem die entsprechenden Nummern (s.o.) fuer jeden Typ des Zugangs addierst. Wenn z.B. der Besitzer (owner) der Datei Lese-, Schreib- und Ausfuehrungsrecht an einer Datei haben soll, musst du 4 + 2 + 1 = 7 rechnen. Um einer Gruppe (group) Lese- und Schreibrecht einzuraeumen, musst du 4 + 2 = 6 rechnen. Um allen Anderen (others) Leserechte fuer die Datei einzuraeumen, vergibst du eine 4. Das daraus resultierende Kommando zum setzen der Dateirechte heisst dann
chmod 764 Dateiname
Du kannst Wildcards in der Dateispezifikation benutzen oder eine Vielzahl von Dateien durch Leerzeilen getrennt. Die nachfolgende Auflistung bestimmt den Besitzer der Datei projekte mit Lese- und Schreibrechten sowie alle Anderen mit ausschließlich Leserechten. Dies kannst du mit dem Kommando chmod 644 festlegen.
-rw-r--r-- 1 projekte 5417 Jun 6 05:28 test
Um das Recht, diese Datei auszufuehren hinzuzufuegen, gibst du das Kommando chmod 755 Dateiname ein, das die nachfolgend aufgefuehrten Dateirechte aktiviert:
-rwxr-xr-x 1 projekte 5417 Jun 6 05:28 test
Du kannst auch fuer alle Gruppen (user, group, others) gleichzeitig das Recht einfuegen, die entsprechende Datei auszufuehren, indem du das Kommando
chmod +x Dateiname eingibst. Um den schreibenden Zugriff auf eine Datei zu entfernen, tippst du das Kommando
chmod g-w, o-w Dateiname
5.2. Definieren genereller Zusgangsrechte von neuen Dateien
Wenn du neue Dateien anlegst, kannst du mit dem Kommando umask in deinem .login file generelle Rechte setzen.
Syntax: umask ugo
Die Zugangsberechtigungen spezifiziert durch das Kommando umask sind das Gegenstueck zum chmod Kommando. Damit eine bestimmte Klasse von Zugangsberechtigten bestimmte Rechte nicht erhält, gibst du das Kommando wie in den nachfolgenden Beispielen:
1. Um der Gruppe (group) und Anderen (others) die Schreibrechte zu verwehren, tippe
umask 022
2. Um der Gruppe (group) und Anderen (others) jeglichen Zugriff auf die Datei zu nehmen, tippe
umask 077
5.3 Dateien kopieren
Um Dateien zu kopieren, brauchst du das Kommando cp
Syntax: cp [Optionen] alterDateiname neuerDateiname
5.4 Dateinamen verändern
Um eine Datei umzubennen, benutze das Kommando mv
Syntax: mv [Optionen] alterDateiname neuerDateiname
5.5 Dateien löschen
Benutze das Kommando rm, um eine Datei zu löschen
Syntax: rm [Optionen] Dateiname
Du kannst Wildcards benutzen, um mehrere Dateien zu löschen. Wenn du mit Wildcards Dateien löschen möchtest, ist es am besten, wenn das rm Kommando dich vor dem Löschen jeder einzelnen Datei fragt. Um dies zu erreichen, tippst du
rm -i *.doc
Wenn du diesen Befehl so eingibst, wirst du vom System vor jedem Löschvorgang gefragt, ob du die Datei mit der Endung .doc löschen möchtest. Wenn du diese Frage mit y beantwortest, wird die entsprechende Datei gelöscht. Antwortest du mit n (oder mit einer beliebigen anderen Antwort), wird die Datei nicht gelöscht.
6. Dateien durchsuchen (grep)
Manchmal ist es notwendig, Dateien nach einem bestimmten String zu durchsuchen. Das Kommando für so eine Suche ist grep.
Syntax: grep string Dateieins [Dateizwei......]
Wenn du keine andere Option angibst, sucht grep buchstabengetreu. Dass heisst, wenn du alle Dateien in einem bestimmten Verzeichnis nach dem String Mai durchsuchen möchtest, tippst du
grep Mai *
Möchtest du alle Dateien finden, in denen der Begriff Mai vorkommt, auch solche die Begriffe wie Maiblume, Maigang oder Maibock enthalten, tippst du
grep -i Mai *
Dann erscheinen auch Begriffe wie Maiblume, Maigang etc....
Es ist sinnvoll, dass grep Kommando mit einer Kommandoverknüpfung (pipe) wie more zu benutzen, damit die Ausgabe seitenweise stattfindet, wie zum Beispiel
grep -i May * | more
7. Dateien anzeigen (more, cat, head and tail)
In einem Unixsystem gibt es eine Anzahl von Kommandos, die Dateien anzeigen. Dieser Abschnitt wird einige von diesen Kommandos erklären.
7.1 Das more Kommando
Wenn du das Kommando more eingibst, wird der Inhalt einer Datei Seite für Seite auf deinem Monitor angezeigt. Willst du die nächte Seite sehen, drückst du die Leerzeilentaste. Um sich zeilenweise weiterzubewegen, drückst du die Entertaste. Das more Utility hat aber auch einige Basisfunktionen wie Stringsuche, vor- und zurückgehen in Dateien und wechseln in den Editor vi. Mit der Tastenkombination Strg-c brichst du eine more session ab.
Syntax: more [Optionen] Dateiname
Nachfolgend aufgefuehrte Optionen sind hilfreich bei der Arbeit mit more:
1. q Damit kommst du augenblicklich aus more raus
2. ib Seitenweise zurückgehen, ersetze i durch die Nummer der Seite
3. if Seitenweise nach vorn gehen, ersetzte i durch die Nummer der Seite
4. /string Vorwärtssuchen nach einem String
7.2 Das Kommando cat
Mit dem Kommando cat kann man auch den Inhalt einer Datei auf dem Monitor darstellen.
Syntax: cat Dateiname
Du kannst cat auch verwenden, um schnell eine kleine Datei zu erstellen, indem du
cat > Dateiname
eingibst. Nachdem du Enter gedrückt hast, kann du deinen Text eingeben. Drücke die Tastenkombination Strg-D, um die Eingabe zu speichern und die Datei zu verlassen. Mit cat kann man zusätzlich zwei Dateien miteinander verbinden, wenn du das Kommando
cat Dateieins >> Dateizwei
eingibst. Diese Kommando hängt Dateieins an das Ende von Dateizwei.
7.3 Das Kommando head
Um die ersten 10 Zeilen einer Datei anzuzeigen, gebrauche das Kommando head
Syntax: head [-Anzahl] Dateiname
Mit der Option Anzahl kannst du festlegen, wieviel Zeilen angezeigt werden. Das nachfolgend aufgefuehrte Kommando zeigt die ersten 20 Zeilen einer Datei.
head -20 Dateiname
7.4.Das Kommando tail
Um die letzten 10 Zeilen einer Datei anzuzeigen, gebrauche das Kommando tail
Syntax: tail [Anzahl] Dateiname
Mit der Option Anzahl kannst du festlegen, wieviel Zeilen angezeigt werden. Das nachfolgend aufgefuehrte Kommando zeigt die letzten 20 Zeiler einer Datei.
tail -20 Dateiname
Es ist hilfreich, die Kommandos head und tail mit dem Kommando more zu „pipen“ (siehe Abschnitt 6) , damit das Ergebnis seitenweise angezeigt werden kann.
8. Nach Mustern suchen
In den vorherigen Kapiteln hast du Beispiele gesehen, wie man nach exakt definierten Strings suchen kann. Es gibt aber einige Metacharakter in Unix, die mehr Flexibiltät bei der Suche nach Strings zeigen.
8.1. Jedes einzelne Merkmal aus einem String herausfiltern
Mal angenommen, du suchst eine Datei, in der die Zahl DM 10 000,- vorkommt. Dann musst du grep 10,... proposal Damit kannst du Zahlen herausfiltern wie 10,234 und 10,256. Gibst du aber 10234 ein, ohne ein Komma zu setzen, wirst du nichts finden.
8.2. Jedes einzelne Merkmal aus einem Dateinamen herausfiltern
Um spezielle Dateinamen herausfiltern, benutze ein Fragezeichen (?) um jedes einzelne Merkmal herauszufiltern und verbinde die Fragezeichen, um eine genau bestimmte Anzahl von Merkmalen zu repräsentieren. Dies sieht z.Beispiel so aus:
ls -l plot?.dat
Gibst du dieses Kommndo ein, werden alle Dateien wie plot1.dat, plot2.dat oder plots.dat angezeigt. Plot22.dat kannst du aber mit dieser Eingabe nicht finden.
8.3. Jede Übereinstimmung mit einem bestimmten Wort herausfiltern
Du kannst in einem Begriff oder Dateinamen einen asterisk (*) verwenden, um einen Begriff oder Namen zu ersetzen. Um zum Beispiel alle Abkömmlinge des Begriffes Wetter zu finden, tippe
grep ´Wetter*´Dateiname
Das System zeigt dir dann Wörter wie Wetterbericht, Wetterverschlechterung, Wetterleuchten......etc. Suchst du zum Beispiel alle Dateien, die mit .doc enden, tippe
ls -l *.doc
9. Prozessmonitoring
Wenn du in einer X-Windowsumgebung (grafische Benutzeroberfläche) arbeitest, ist es wichtig zu wissen, dass du als einzelner User nur beim puren einloggen in das System schon ein Minimum von 5 Prozessen in Gang setzt. Dies kann sich expotentiell steigern, je nachdem welche Software du benutzt und wieviel Fenster geöffnet sind. Du solltest dir darüber bewußt sein, dass all diese Prozesse CPU-Kapazität belegen. Dieser Abschnitt beschreibt einige
Unixkommandos, mit denen du deine Prozesse überwachen kannst.
9.1. Das Kommando ps
Das ps Kommando ist ein allgemeines Tool, um den Prozesstatus zu überwachen. Das Kommando zeigt dir prozentual an, wieviel Kapazität der CPU für den jeweiligen Prozess gebunden wird. Es zeigt ausserdem an, wieviel Prozent des Speichers belegt sind, die gesamt CPU-Zeit und andere statistische Werte. Diese Werte werden nicht in Echtzeit erhoben, zeigen dir aber eine Momentaufnahme des Systems.
Syntax: ps [Optionen]
Das Kommando ps ohne irgendwelche Zusätze zeigt dir die laufenden Prozesse. Um alle Prozesse des System anzuzeigen, tippe
ps -ef | more
Auch hier empfiehlt es sich, dass Kommando zu „pipen“, da der Output sonst kaum lesbar ist. Um weitere Informationen zu erhalten, tippe
ps -aux | more
Um Informationen über einen bestimmten User im System zu erhalten, verknüpfe das ps Kommando mit grep wie hier gezeigt:
ps -aux | grep Username
In der untenstehenden Tabelle findest du beispielhaft einige Informationen aufgelistet, die das Kommando ps ausgeben kann:
UID PID PPID C STIME TTY TIME CMD
root 157 1 0 Mar 18 ? 00:03:00 /usr/sbin/inetd-s
root 260 1 0 Mar 18 ? 00:02:00 /usr/sbin/vold
dir 10566 10564 0 07:02:31 Pts/4 00:01:00 /usr/local/bin/tcsh
meier 11741 11739 1 11:12:30 Pts/8 00:00:00 /-csh
dir 10644 10510 0 07:09:25 Pts/2 00:14:00 Emacs NEW_CUTILS.c
braun 11656 11440 0 10:53:35 Pts/7 00:00:00 Idt -soft ppi-ceasar.cgm
Begriff Beschreibung
UID Useridentifikation des Prozesses
PID Prozessidentifikationsnummer
PPID Prozessidentifikatonsnummer des Parentprozesses
C Prozessorutilisation zur Zeitplanung
STIME Startzeit des Prozesses
TTY Kontrollierendes Terminal des Prozesses, ? Für kein kontrollierendes Terminal
TIME Addierte Ausfuehrungszeit des Prozesses
CMD Kommandoname
9.2. Das Kommando top
Das Kommando top ist ein Pseudorealtime Kommando, das nützlich ist, um auf dem System laufende Prozesse sowie wechselnde Prozessprioritäten zu untersuchen.
Syntax: top
Du unterbrichst das Kommando mit dem Befehl q. Um andere Optionen anzuzeigen, tippe h
9.3 Die Kommandos who und w
Mit den Kommandos who und w kannst du feststellen, wer zur Zeit am System angemeldet ist. Das Kommando w gibt dir zusätzliche Informationen über die Loginzeit und die Pausenzeiten für verschiedene Prozesse.
Syntax: who
Syntax: w
9.4 Prozesse killen
Es gibt verschiedene Wege, einen Prozess auf einer Workstation zu beenden (killen). Um einen Job zu killen, der im Vordergrund läuft musst du Strg-c drücken. Du kannst aber auch das Kommando kill in Verbindung mit der Prozess ID benutzen. (Die PID erhälst du, wenn du das Kommando ps eingibst).
Syntax: kill -9 pid
Um einen Job zu killen, der im Hintergrund läuft, benutze das Kommando jobs, um zuerst die job ID (n) zu finden. Dann gib
kill -9 %n
ein.
10. Die Auslastung von anderen Workstations checken
Wenn dir eine Workstation stark belastet erscheint, kannst du die Belastung von anderen Workstations mit dem Kommando
Syntax: ruptim [Workstation]
herausfinden. In der nachfolgenden Tabelle findest du einen Beispieoutput dieses Kommandos:
oak number of users: 1 load average: 0.26, 0.16, 0.00
fir number of users: 15 load average: 0.26, 0.06, 0.00
pine number of users: 25 load average: 0.21, 0.03, 0.01
juniper number of users: 15 load average: 0.39, 0.12, 0.01
cypress number of users: 9 load average: 0.22, 0.04, 0.00
balsam number of users: 15 load average: 0.18, 0.15, 0.00
Die letzen drei Rubriken zeigen die Durchschnittswerte für 1-, 5- und 15 Minuten. Die Werte zeigen an, ob die CPU unterbeschäftigt ( 1.0). Wenn du eine Fehlermeldung wie permission denied erhälst, wenn du das Kommando ausfuehrst, musst du deine .rhosts Dateien entsprechend verändern. Die .rhosts Dateien sollten sowohl dein System als auch das, welches du checken möchtest, aufführen.
11. Prozessprioritäten verändern
Die Prioritäten aller Prozesse eines Unixsystems werden dynamisch kalkuliert. Der Wechsel der Priorität eines Prozesses hängt mit der von ihm benutzen CPU-Zeit zusammen. Wenn du ein Programm startest, dass mehrere Minuten CPU-Zeit beanspruchen wird, verändere die Priorität des Prozesses, damit der Rechner nicht lahmgelegt wird. Du kannst die Priorität verändern, imdem du das Kommando
Syntax: nice -number argument
benutzt. Je höher die Nummer, desto geringer ist die Priorität des Prozesses. Ausgehend von 10 kannst du Nummern vergeben bis 20. Du kannst aber nur die Nummer nach oben hin ansteigen lassen. Ein Prozess also, der mit einem Ausgangswert von 18 startet, kann nicht mit einem nice -10 Vorrang gewährt werden. Um z.B. ein Programm mit dem Namen a.out mit einer niedrigen Priorität zu starten, tippe
nice -n 19 a.out
Wenn du den Prozess schon gestartet hast, ohne das Kommando zu benutzen, kannst du mit dem Kommando renice die Priorität des Programmes ändern.
Syntax: renice -number process_id
Du kannst aber auch mit dem Kommando top mit der Option r gefolgt von der Prioritätsnummer und der PID die Priorität ändern.
12. Festplattenverbrauch
Das Kommando df zeigt dir an, wieviel Festplattenplatz auf allen, von deiner Workstation erreichbaren Dateisystemen verbraucht wird.
Syntax: df -k
Wenn du wissen möchtest, wieviel Platz du in deinem von Hard- oder Softquotas begrenztem Verzeichnis verbrauchst,
benutze das Kommando du.
Syntax: du [optionen] directory
Benutzt du das Kommando ohne Option, wird es dir die Summe deines Quotaverbrauches für das Directory, dass du spezifiziert hast, angeben, sowie aller Subdirectories darunter.
Syntax: du /users/usersname
Möchte man den totalen Quotaverbrauch angzeigt bekommen, gibt man
Syntax: du -s /users/username
ein. Um sich seinen persönlichen Quotaverbrauch angzeigen zu lassen, gibt man
Syntax: du -s ~
ein. Auf Sun, Compaq Alpha und Linux Workstations zeigt das Kommando quota den aktuell verbrauchten Festplattenplatz an.
Syntax: quota -v username
13. Kommando History
Wenn du möchtest, kann deine Shell eine Liste kürzlich exekutierten Kommandos anlegen, die du dann wieder aufrufen kannst. Lege in den Dateien .login und .cshrc folgende Anweisung an:
syntax: set history=nn
wobei nn als Platzhalter für die Anzahl der Kommandos steht, die in der Liste gespeichert werden sollen. Mehr als 40 Kommandos sollten nicht gespeichert werden. Es gibt verschiedene Wege, um die einmal gespeicherten Kommandos wieder aufzurufen. Gibst du an der Shell !! ein, wird das zuletzt eingegebene Kommando aufgerufen.
Gibst du an der Shell nur history ein, bekommst du eine Liste zu kürzlich ausgeführen Kommandos mit einer angefügten Nummer angezeigt. Um ein Kommando erneut auszuführen, brauchst du nur
Syntax: !line_number
eingeben. Wie schon gesagt, gibt es auch noch andere Wege, um ein einmal ausgeführtes Kommando erneut aufzurufen. Gib an der Shell einfach nur die ersten Buchstaben des Kommandos ein. Hast du z.B.
Syntax: ls -lR | grep drw
eingegeben, um dir rekursiv deine Verzeichnisstruktur anzeigen zu lassen, brauchst du, um das Kommando nochmal ausführen zu lassen, nur
Syntax: !ls
einzugeben. Die Shell wird dann das letzte Kommando, dass mit ls begann, ausführen.
14. Unix Tools
Das Unix-Betriebssystem kennt eine grosse Variationsbreite von Tools, die es dir gestatten, verschiedene Kommandos zu kombinieren und dir den Output dieser Kommandos anzeigen zu lassen.
14.1 Pipes
Mit Pipes kannst du verschiedene Unixkommandos kombinieren. Das Pipesymbol ist die vertikale Linie | auf deinem
Keyboard. Um z.B. einen kuerzlich von einem bestimmten User initieren Systemprozess zu suchen, gib an der Shell
Syntax: ps -ef | grep username
ein.
Möchtest du in einem Directory nach einem bestimmten String suchen und die Ausgabe soll Seite für Seite auf deinem
Destop angezeigt werden, gib an der Shell
Syntax: ls -l | grep ’string’ | more
ein.
14.2 I/O Redirection
Normalerweise wird das Ergebnis des Kommandoaufrufes am „standard out“ (stdout), deinem Bildschirm, ausgegeben. Manchmal ist es jedoch sinnvoll, dass Ergebnis z.B. in eine Datei schreiben zu lassen. Unter Unix ist es möglich, die Ausgabe eines Kommandos in eine Datei schreiben zu lassen oder umgekehrt aus der Datei lesen zu lassen. Das Symbol > schreibt den Output in eine Datei, das Symbol source.txt
das Ergebnis in ein Verzeichnis schreiben lassen.
Wenn du möchtest, dass das Mail-Utility Informationen aus einem Verzeichnis „input.txt“ ausliest, gib an der Shell das Kommando
Syntax: mail user@host < input.txt
ein.
14.3 Das Kommando sort
Das Kommando sort sortiert die Zeilen einer Datei; wenn keine anderen Optionen angegeben sind, in ASCII-Reihenfolge.
Snytax: sort filename
Du kannst das sort Kommando auch mit anderen Kommandos kombinieren, wenn du Pipes benutz. Um den Output eines who Kommandos zu sortieren, benutze
who | sort
14.4 Das Kommando diff
Manchmal ist es sinnvoll herauszufinden, ob zwischen zwei Dateien Unterschiede bestehen. Mit dem Kommando diff kannst du dies rausfinden.
Syntax: diff [optionen] Datei1 Datei2
14.5 Zeilen, Wörter und Character zählen
Es kann von großem Nutzen sein, die Anzahl der Wörter, Zeilen und Character einer Datei zu kennen. Das Kommando wc erfüllt diese Aufgabe. Ohne Optionen aufgerufen erfüllt das Kommando alle drei Anforderungen.
Syntax: wc [Optionen] Dateiname
Auch hier kannst du das Kommando mit anderen über eine Pipe kombinieren. Wenn du z.B. die Nummer einer Datei in einem Verzeichnis finden möchtest, gib
Syntax: ls -l | wc -l
ein.
14.6 Das ispell Kommando
Das Kommando ispell untersucht Dateien nach falsch geschriebenen Wörtern.
Syntax: ispell Dateiname
Das Kommando markiert jedes Wort, dass es nicht in seinem Wörterbuch findet. Das so markierte Wort wird zu Beginn der Datei angezeigt gefolgt von einer Liste von Wörtern, die entsprechend verwendet werden könnten. Um eines davon auszuwählen, musst du nur die Nummer des Wortes angeben. Wenn dir keines dieser Worte gefällt und du ein anderes haben möchtest, gib R ein und drücke Enter. Wenn das markierte Wort das Richtige ist, drücke die Leerzeilentaste oder gib I ein, damit das Word in dein persönliches Wörterbuch aufgenommen wird.
Wenn du ispell zusammen mit einer TeX Datei verwenden willst, benutze die Option -t.
14.7 Passwort ändern
Wenn du dich zum ersten Mal in ein neues System einlogst, ändere dein Passwort. Benutze dazu das Kommando
Syntax: passwd
ohne irgendwelche Optionen. Du wirst nach deinem alten Passwort gefragt, anschließend nach deinem neuen Passwort. Danach musst du das neue Passwort nochmals bestätigen. Das eingegebene Passwort wird auf dem Bildschirm nicht angezeitgt. Für die Sicherheit auf deinem System bist du selbst veranwortlich. Um Diese zu gewährleisten, solltest du dein Passwort oft ändern, mindestens jedoch zweimal jährlich. Nachfolgend aufgefuehrte Hinweise sollen dir helfen, das richtige Passwort zu finden:
1. Das Passort sollte mindestens 6 Zeichen enthalten, davon mindestens zwei Zeichen, die nicht aus dem Alpahbet kommen
2. Vermeide einfache Namen (z.B. deinen Vor- oder Nachnamen). Verwende auch keine Namen aus deiner unmittelbaren Umgebung (z.B. Familiennamen)
3. Schreibe dein Passwort nicht auf.
4. Gib dein Passwort niemand anders.
5. Benutze keine Wörter, die man in Wörterbüchern findet, weil viele Passwortknackerprogramme darauf beruhen, ganze Wörterbücher auszuprobieren, um das Passwort zu raten.
15.Anhang
Quelle: UCAR 1998 contact mmminfo@ncar.ucar.edu
Übersetzung: Jürgen Grünebaum contact info@raescom.de
Dieser Text darf kopiert und weitergegeben werden.
2. Ausdrucken einer manpage
3. Verzeichniskommandos
3.1 Verzeichnisse anlegen
3.2 Verzeichnisse löschen
3.3 Navigieren im Verzeichnisbaum
3.4 Shortcuts
3.5 Anlage des Arbeitsverzeichnisses
4. Dateikommandos
4.1 Dateien im Verzeichnis auflisten
5. Dateirechte
5.1 Rechte setzen
5.2 Definieren genereller Zugangsrechte in neuen Dateien
5.3 Dateien kopieren
5.4 Dateinamen verändern
5.5 Dateien löschen
6. Dateien durchsuchen
7. Dateien anzeigen
7.1 Das Kommando more
7.1 Das Kommando cat
7.3 Das Kommando head
7.4 Das Kommando tail
8. Nach Mustern suchen
8.1 Ein einzelnes Merkmal aus einem String filtern
8.2 Jede Übereinstimmung mit einem bestimmten Wort herausfiltern
9. Prozessmonitoring
9.1 Das Kommando ps
9.2 Das Kommando top
9.3 Die Kommandos who und w
9.4 Prozesse killen
10. Auslastung von anderen Workstations im Netz checken
11. Prozessprioritäten verändern
12. Festplattenplatz checken
13. Das Kommando history
14. Unixtools
14.1 Pipes
14.2 Input/Output Redirection
14.3 Das Komanndo sort
14.4 Das Kommando diff
14.5 Zeilen, Wörter und Character zählen
14.6 Das Kommando ispell
14.7 Das Passwort ändern
15. Anhang
Unixkommandos
1. Das man Kommando
Um Informationen über ein Unixkommando zu erhalten, kannst du die Onlinemanualseiten verwenden. Syntax: man command (z.B. man file gibt alle Befehle aus, die mit „file“ zusammenhaengen) Wenn du den Namen des benötigen Kommandos nicht weisst, führe man mit der -k Option aus
man -k keyword
Um zum Beispiel rauszufinden, welche Kommandos mit dem Begriff directories verbunden sind , musst du
man -k directory
eingeben. Dieses Kommando gibt dir Informationen über alles Kommandos, die mit dem Begriff directory verbunden sind zusammen mit einer kurzen Beschreibung, was dieses Kommando tut.
2. Eine man page ausdrucken
Um eine man page auszudrucken, musst du den output deines Befehls in eine Datei schicken und von dort aus den Druckbefehl geben, wie in dem nachfolgenden Beispiel:
Um eine Datei anzulegen, die den output deiner Anfrage in Bezug auf das Kommando ls aufnimmt, musst du
man ls > ls.txt
an der Konsole eingeben. Du kannst dann die erstellte Textdatei mit dem Befehl lpr ls.txt an deinen Drucker senden. Mit lprm job jobnummer kannst du den Druck abbrechen.
3. Verzeichnis Kommandos
3.1.Ein Verzeichnis anlegen (mkdir)
Mit dem Kommando mkdir kannst du Verzeichnisse anlegen.
Syntax: mkdir [Optionen] directory
Wenn du eingeloggt bist unter z.B. /users/dir/ kannst du ein Verzeichnis memos anlegen, indem du den Befehl
mkdir memos
eingibst. Dieser Befehl legt das Verzeichnis /users/memos an. Wenn man möchte, kann man auch mehr als ein Verzeichnis anlegen. Bist du wieder unter /users/dir angemeldet, kannst du mit dem Kommando
mkdir projekte beispiele
die Verzeichnisse /users/dir/projekte und /users/dir/beispiele anlegen. Du kannst auch ein Verzeichnis anlegen, imdem du seine absolute Position bestimmst. Wenn du dich gerade im Verzeichnis /users/dir/beispiele befindest, kannst du mit dem Befehl
mkdir /users/dir/projekte/neu
das Unterverzeichnis neu anlegen, ohne dich im Verzeichnis projekte zu befinden.
3.2.Verzeichnisse löschen (rmdir)
Um ein Verzeichnis zu löschen, benutze das Kommando rmdir. Bedenke, dass alle Dateien, die sich in diesem Verzeichnis befinden, gelöscht sein müssen, bevor du das Verzeichnis selbst löschen kannst.
Syntax: rmdir directory
Im Verzeichnis /users/dir/projekte löscht das Kommando
rmdir neu
das Unterverzeichnis neu. Wenn du dich im Verzeichnis /users/dir/ befindest, löscht das Kommando
rmdir projekte/neu
das Verzeichnis neu. Alternativ dazu kannst du auch das Kommando Syntax: rm -ri directory verwenden. Hierbei musst du sehr vorsichtig sein, denn dieses Kommando löscht rekursiv alle Unterverzeichnisse und Dateien unterhalb des angegebenen Verzeichnisses.
3.3. Sich innerhalb des Verzeichnisbaumes bewegen
Um die Richtung in deinem Verzeichnisbaum zu wechseln, benutze das Kommando cd. Benutzt du das Kommando ohne eine Option hinzuzufuegen, landest du in deinem Homeverzeichnis.
Syntax: cd directory
Um zum Beispiel vom Verzeichnis /users/dir/ in das Verzeichnis /users/dir/projekte zu wechseln, gibst du das Kommando
cd projekte
Um vom Unterverzeichnis /users/dir/projekte in das Verzeichnis /users/dir/memos zu wechseln, tippe das Kommando
cd /users/dir/memos
3.4. Verzeichnisshortcuts
Du kannsst Verzeichnisabkuerzungen (directory shortcuts) nehmen, wenn du den Verzeichnisnamen spezifizierst. Die nachfolgenden Beispiele zeigen die Verwendung mit dem Kommando cd, aber sie können mit allen Unixkommandos gebraucht werden, wenn du die Dateinamen spezifizierst. Du kannst dein Homeverzeichnis als Ausgangspunkt nehmen, wenn du die Pfadangaben mit einer tilde (~) spezifizierst. Die tilde instruiert die shell, den Pfadnamen von
deinem Homedirectory aus zu verwenden.
Wenn du also zum Beispiel aus dem Verzeichnis /users/dir/projekte/neu in das Verzeichnis /users/dir/memos wechseln moechetest, tippe das Kommandoart
cd ~/memos
Du kannst das Kommando cd auch verwenden, um in das Homeverzeichnis eines anderen Users zu springen, immer vorausgesetzt, dass du die Rechte dazu hast. Benutze das Kommando
cd ~ username
Zusätzlich kannst du die .. Notation verwenden, um dich in deinem Verzeichnisbaum zu bewegen. Die Notation .. bezieht sich auf das nächsthöhere Verzeichnis als das, in dem du dich gerade befindest. Um vom Verzeichnis /users/dir/neu in das Unterverzeichnis /users/dir/projekte zu springen, benutze das Kommando
cd ../projekte
Die Notation .. weisst das System an, eine Ebene höher zu steigen und dann in das angegebene Unterverzeichnis zu welchseln. Du kannst aber auch das Kommando cd .. verwenden, um Ebene für Ebene in den Unterverzeichnissen zu welchseln.
3.5 Angabe des Arbeitsverzeichnisses
Wenn du dich in deinem Verzeichnisbaum bewegst und wissen willst, wo du dich gerade befindest, kann du das Kommando
Syntax: pwd
eingeben.
4. Dateikommandos
4.1 Dateien in einem Verzeichnis auflisten
Um die Dateien in einem Verzeichnis aufzulisten, benutze das Kommndo ls .
Syntax: ls [Optionen] [Dateiname]
Benutzt du das Kommando ls ohne zusätzliche Angaben, bekommst du eine Auflistung der Dateien des Verzeichnisses, in dem du dich gerade befindest. Das Kommando zeigt nur die Namen der Dateien an, die in den Verzeichnis vorhanden sind. Einige der häufigsten Optionen findest du in den nachfolgenden Beispielen:
1. Um alles versteckten Dateien anzuzeigen, wie z.B. .login oder .cshrc in deinem Homeverzeichnis, tippe
ls -a
2. Um eine ausfuehliche Liste mit den dazugehörigen Dateirechten, der Groesse und des Datums zu erhalten tippe
ls -l
3. Um eine absteigende Liste aller Dateien im Arbeitsverzeichniss und der Dateien von Unterverzeichnissen, die sich
eventuell im Arbeitsverzeichniss befinden zu erhalten,tippe das Kommando
ls -R
4. Manchmal ist es sinnvoll, das Kommando ls in Verbindung mit anderen Unixkommandos zu verwenden. Wenn zum
Beispiel zu viele Dateien in einem Verzeichnis abgelegt sind, um auf den Bildschirm angezeigt werden zu können,
kann man das System anweisen, diese Seitenweise anzuzeigen , indem man das Kommando
ls -l | more
eingibt.
5. Um eine Untergruppe von Dateien zu finden, benutze das ls Kommando mit dem Unixsuchbefehl grep. Um alle
Dateien zu finden, die an einem bestimmten Datum erstellt worden sind, tippe
ls -l | grep ´Jun 25 ‘
5. Dateirechte (chmod)
5.1. Rechte setzen
Dateien sind mit Dateirechten versehen, dass heisst, das nicht jeder User in jeder Datei alles tun darf (also Lesen, Schreiben, Ausfuehren). Nachfolgend die Rechte (in symbolischer und numerischer) Ausfuehrung:
r 4 Leserecht
w 2 Schreibrecht
x 1 Executieren (Ausfuehren)
Mit dem Kommando chmod kannst du die Rechte an einer Datei für drei Gruppen
1. User (u) [user]
2. Gruppe (g) [group]
3. Andere (o) [others]
indem du
Syntax: chmod ugo Dateiname
eingibst. Das Zugangsrecht für jede Klasse von Usern erhältst du, indem die entsprechenden Nummern (s.o.) fuer jeden Typ des Zugangs addierst. Wenn z.B. der Besitzer (owner) der Datei Lese-, Schreib- und Ausfuehrungsrecht an einer Datei haben soll, musst du 4 + 2 + 1 = 7 rechnen. Um einer Gruppe (group) Lese- und Schreibrecht einzuraeumen, musst du 4 + 2 = 6 rechnen. Um allen Anderen (others) Leserechte fuer die Datei einzuraeumen, vergibst du eine 4. Das daraus resultierende Kommando zum setzen der Dateirechte heisst dann
chmod 764 Dateiname
Du kannst Wildcards in der Dateispezifikation benutzen oder eine Vielzahl von Dateien durch Leerzeilen getrennt. Die nachfolgende Auflistung bestimmt den Besitzer der Datei projekte mit Lese- und Schreibrechten sowie alle Anderen mit ausschließlich Leserechten. Dies kannst du mit dem Kommando chmod 644 festlegen.
-rw-r--r-- 1 projekte 5417 Jun 6 05:28 test
Um das Recht, diese Datei auszufuehren hinzuzufuegen, gibst du das Kommando chmod 755 Dateiname ein, das die nachfolgend aufgefuehrten Dateirechte aktiviert:
-rwxr-xr-x 1 projekte 5417 Jun 6 05:28 test
Du kannst auch fuer alle Gruppen (user, group, others) gleichzeitig das Recht einfuegen, die entsprechende Datei auszufuehren, indem du das Kommando
chmod +x Dateiname eingibst. Um den schreibenden Zugriff auf eine Datei zu entfernen, tippst du das Kommando
chmod g-w, o-w Dateiname
5.2. Definieren genereller Zusgangsrechte von neuen Dateien
Wenn du neue Dateien anlegst, kannst du mit dem Kommando umask in deinem .login file generelle Rechte setzen.
Syntax: umask ugo
Die Zugangsberechtigungen spezifiziert durch das Kommando umask sind das Gegenstueck zum chmod Kommando. Damit eine bestimmte Klasse von Zugangsberechtigten bestimmte Rechte nicht erhält, gibst du das Kommando wie in den nachfolgenden Beispielen:
1. Um der Gruppe (group) und Anderen (others) die Schreibrechte zu verwehren, tippe
umask 022
2. Um der Gruppe (group) und Anderen (others) jeglichen Zugriff auf die Datei zu nehmen, tippe
umask 077
5.3 Dateien kopieren
Um Dateien zu kopieren, brauchst du das Kommando cp
Syntax: cp [Optionen] alterDateiname neuerDateiname
5.4 Dateinamen verändern
Um eine Datei umzubennen, benutze das Kommando mv
Syntax: mv [Optionen] alterDateiname neuerDateiname
5.5 Dateien löschen
Benutze das Kommando rm, um eine Datei zu löschen
Syntax: rm [Optionen] Dateiname
Du kannst Wildcards benutzen, um mehrere Dateien zu löschen. Wenn du mit Wildcards Dateien löschen möchtest, ist es am besten, wenn das rm Kommando dich vor dem Löschen jeder einzelnen Datei fragt. Um dies zu erreichen, tippst du
rm -i *.doc
Wenn du diesen Befehl so eingibst, wirst du vom System vor jedem Löschvorgang gefragt, ob du die Datei mit der Endung .doc löschen möchtest. Wenn du diese Frage mit y beantwortest, wird die entsprechende Datei gelöscht. Antwortest du mit n (oder mit einer beliebigen anderen Antwort), wird die Datei nicht gelöscht.
6. Dateien durchsuchen (grep)
Manchmal ist es notwendig, Dateien nach einem bestimmten String zu durchsuchen. Das Kommando für so eine Suche ist grep.
Syntax: grep string Dateieins [Dateizwei......]
Wenn du keine andere Option angibst, sucht grep buchstabengetreu. Dass heisst, wenn du alle Dateien in einem bestimmten Verzeichnis nach dem String Mai durchsuchen möchtest, tippst du
grep Mai *
Möchtest du alle Dateien finden, in denen der Begriff Mai vorkommt, auch solche die Begriffe wie Maiblume, Maigang oder Maibock enthalten, tippst du
grep -i Mai *
Dann erscheinen auch Begriffe wie Maiblume, Maigang etc....
Es ist sinnvoll, dass grep Kommando mit einer Kommandoverknüpfung (pipe) wie more zu benutzen, damit die Ausgabe seitenweise stattfindet, wie zum Beispiel
grep -i May * | more
7. Dateien anzeigen (more, cat, head and tail)
In einem Unixsystem gibt es eine Anzahl von Kommandos, die Dateien anzeigen. Dieser Abschnitt wird einige von diesen Kommandos erklären.
7.1 Das more Kommando
Wenn du das Kommando more eingibst, wird der Inhalt einer Datei Seite für Seite auf deinem Monitor angezeigt. Willst du die nächte Seite sehen, drückst du die Leerzeilentaste. Um sich zeilenweise weiterzubewegen, drückst du die Entertaste. Das more Utility hat aber auch einige Basisfunktionen wie Stringsuche, vor- und zurückgehen in Dateien und wechseln in den Editor vi. Mit der Tastenkombination Strg-c brichst du eine more session ab.
Syntax: more [Optionen] Dateiname
Nachfolgend aufgefuehrte Optionen sind hilfreich bei der Arbeit mit more:
1. q Damit kommst du augenblicklich aus more raus
2. ib Seitenweise zurückgehen, ersetze i durch die Nummer der Seite
3. if Seitenweise nach vorn gehen, ersetzte i durch die Nummer der Seite
4. /string Vorwärtssuchen nach einem String
7.2 Das Kommando cat
Mit dem Kommando cat kann man auch den Inhalt einer Datei auf dem Monitor darstellen.
Syntax: cat Dateiname
Du kannst cat auch verwenden, um schnell eine kleine Datei zu erstellen, indem du
cat > Dateiname
eingibst. Nachdem du Enter gedrückt hast, kann du deinen Text eingeben. Drücke die Tastenkombination Strg-D, um die Eingabe zu speichern und die Datei zu verlassen. Mit cat kann man zusätzlich zwei Dateien miteinander verbinden, wenn du das Kommando
cat Dateieins >> Dateizwei
eingibst. Diese Kommando hängt Dateieins an das Ende von Dateizwei.
7.3 Das Kommando head
Um die ersten 10 Zeilen einer Datei anzuzeigen, gebrauche das Kommando head
Syntax: head [-Anzahl] Dateiname
Mit der Option Anzahl kannst du festlegen, wieviel Zeilen angezeigt werden. Das nachfolgend aufgefuehrte Kommando zeigt die ersten 20 Zeilen einer Datei.
head -20 Dateiname
7.4.Das Kommando tail
Um die letzten 10 Zeilen einer Datei anzuzeigen, gebrauche das Kommando tail
Syntax: tail [Anzahl] Dateiname
Mit der Option Anzahl kannst du festlegen, wieviel Zeilen angezeigt werden. Das nachfolgend aufgefuehrte Kommando zeigt die letzten 20 Zeiler einer Datei.
tail -20 Dateiname
Es ist hilfreich, die Kommandos head und tail mit dem Kommando more zu „pipen“ (siehe Abschnitt 6) , damit das Ergebnis seitenweise angezeigt werden kann.
8. Nach Mustern suchen
In den vorherigen Kapiteln hast du Beispiele gesehen, wie man nach exakt definierten Strings suchen kann. Es gibt aber einige Metacharakter in Unix, die mehr Flexibiltät bei der Suche nach Strings zeigen.
8.1. Jedes einzelne Merkmal aus einem String herausfiltern
Mal angenommen, du suchst eine Datei, in der die Zahl DM 10 000,- vorkommt. Dann musst du grep 10,... proposal Damit kannst du Zahlen herausfiltern wie 10,234 und 10,256. Gibst du aber 10234 ein, ohne ein Komma zu setzen, wirst du nichts finden.
8.2. Jedes einzelne Merkmal aus einem Dateinamen herausfiltern
Um spezielle Dateinamen herausfiltern, benutze ein Fragezeichen (?) um jedes einzelne Merkmal herauszufiltern und verbinde die Fragezeichen, um eine genau bestimmte Anzahl von Merkmalen zu repräsentieren. Dies sieht z.Beispiel so aus:
ls -l plot?.dat
Gibst du dieses Kommndo ein, werden alle Dateien wie plot1.dat, plot2.dat oder plots.dat angezeigt. Plot22.dat kannst du aber mit dieser Eingabe nicht finden.
8.3. Jede Übereinstimmung mit einem bestimmten Wort herausfiltern
Du kannst in einem Begriff oder Dateinamen einen asterisk (*) verwenden, um einen Begriff oder Namen zu ersetzen. Um zum Beispiel alle Abkömmlinge des Begriffes Wetter zu finden, tippe
grep ´Wetter*´Dateiname
Das System zeigt dir dann Wörter wie Wetterbericht, Wetterverschlechterung, Wetterleuchten......etc. Suchst du zum Beispiel alle Dateien, die mit .doc enden, tippe
ls -l *.doc
9. Prozessmonitoring
Wenn du in einer X-Windowsumgebung (grafische Benutzeroberfläche) arbeitest, ist es wichtig zu wissen, dass du als einzelner User nur beim puren einloggen in das System schon ein Minimum von 5 Prozessen in Gang setzt. Dies kann sich expotentiell steigern, je nachdem welche Software du benutzt und wieviel Fenster geöffnet sind. Du solltest dir darüber bewußt sein, dass all diese Prozesse CPU-Kapazität belegen. Dieser Abschnitt beschreibt einige
Unixkommandos, mit denen du deine Prozesse überwachen kannst.
9.1. Das Kommando ps
Das ps Kommando ist ein allgemeines Tool, um den Prozesstatus zu überwachen. Das Kommando zeigt dir prozentual an, wieviel Kapazität der CPU für den jeweiligen Prozess gebunden wird. Es zeigt ausserdem an, wieviel Prozent des Speichers belegt sind, die gesamt CPU-Zeit und andere statistische Werte. Diese Werte werden nicht in Echtzeit erhoben, zeigen dir aber eine Momentaufnahme des Systems.
Syntax: ps [Optionen]
Das Kommando ps ohne irgendwelche Zusätze zeigt dir die laufenden Prozesse. Um alle Prozesse des System anzuzeigen, tippe
ps -ef | more
Auch hier empfiehlt es sich, dass Kommando zu „pipen“, da der Output sonst kaum lesbar ist. Um weitere Informationen zu erhalten, tippe
ps -aux | more
Um Informationen über einen bestimmten User im System zu erhalten, verknüpfe das ps Kommando mit grep wie hier gezeigt:
ps -aux | grep Username
In der untenstehenden Tabelle findest du beispielhaft einige Informationen aufgelistet, die das Kommando ps ausgeben kann:
UID PID PPID C STIME TTY TIME CMD
root 157 1 0 Mar 18 ? 00:03:00 /usr/sbin/inetd-s
root 260 1 0 Mar 18 ? 00:02:00 /usr/sbin/vold
dir 10566 10564 0 07:02:31 Pts/4 00:01:00 /usr/local/bin/tcsh
meier 11741 11739 1 11:12:30 Pts/8 00:00:00 /-csh
dir 10644 10510 0 07:09:25 Pts/2 00:14:00 Emacs NEW_CUTILS.c
braun 11656 11440 0 10:53:35 Pts/7 00:00:00 Idt -soft ppi-ceasar.cgm
Begriff Beschreibung
UID Useridentifikation des Prozesses
PID Prozessidentifikationsnummer
PPID Prozessidentifikatonsnummer des Parentprozesses
C Prozessorutilisation zur Zeitplanung
STIME Startzeit des Prozesses
TTY Kontrollierendes Terminal des Prozesses, ? Für kein kontrollierendes Terminal
TIME Addierte Ausfuehrungszeit des Prozesses
CMD Kommandoname
9.2. Das Kommando top
Das Kommando top ist ein Pseudorealtime Kommando, das nützlich ist, um auf dem System laufende Prozesse sowie wechselnde Prozessprioritäten zu untersuchen.
Syntax: top
Du unterbrichst das Kommando mit dem Befehl q. Um andere Optionen anzuzeigen, tippe h
9.3 Die Kommandos who und w
Mit den Kommandos who und w kannst du feststellen, wer zur Zeit am System angemeldet ist. Das Kommando w gibt dir zusätzliche Informationen über die Loginzeit und die Pausenzeiten für verschiedene Prozesse.
Syntax: who
Syntax: w
9.4 Prozesse killen
Es gibt verschiedene Wege, einen Prozess auf einer Workstation zu beenden (killen). Um einen Job zu killen, der im Vordergrund läuft musst du Strg-c drücken. Du kannst aber auch das Kommando kill in Verbindung mit der Prozess ID benutzen. (Die PID erhälst du, wenn du das Kommando ps eingibst).
Syntax: kill -9 pid
Um einen Job zu killen, der im Hintergrund läuft, benutze das Kommando jobs, um zuerst die job ID (n) zu finden. Dann gib
kill -9 %n
ein.
10. Die Auslastung von anderen Workstations checken
Wenn dir eine Workstation stark belastet erscheint, kannst du die Belastung von anderen Workstations mit dem Kommando
Syntax: ruptim [Workstation]
herausfinden. In der nachfolgenden Tabelle findest du einen Beispieoutput dieses Kommandos:
oak number of users: 1 load average: 0.26, 0.16, 0.00
fir number of users: 15 load average: 0.26, 0.06, 0.00
pine number of users: 25 load average: 0.21, 0.03, 0.01
juniper number of users: 15 load average: 0.39, 0.12, 0.01
cypress number of users: 9 load average: 0.22, 0.04, 0.00
balsam number of users: 15 load average: 0.18, 0.15, 0.00
Die letzen drei Rubriken zeigen die Durchschnittswerte für 1-, 5- und 15 Minuten. Die Werte zeigen an, ob die CPU unterbeschäftigt ( 1.0). Wenn du eine Fehlermeldung wie permission denied erhälst, wenn du das Kommando ausfuehrst, musst du deine .rhosts Dateien entsprechend verändern. Die .rhosts Dateien sollten sowohl dein System als auch das, welches du checken möchtest, aufführen.
11. Prozessprioritäten verändern
Die Prioritäten aller Prozesse eines Unixsystems werden dynamisch kalkuliert. Der Wechsel der Priorität eines Prozesses hängt mit der von ihm benutzen CPU-Zeit zusammen. Wenn du ein Programm startest, dass mehrere Minuten CPU-Zeit beanspruchen wird, verändere die Priorität des Prozesses, damit der Rechner nicht lahmgelegt wird. Du kannst die Priorität verändern, imdem du das Kommando
Syntax: nice -number argument
benutzt. Je höher die Nummer, desto geringer ist die Priorität des Prozesses. Ausgehend von 10 kannst du Nummern vergeben bis 20. Du kannst aber nur die Nummer nach oben hin ansteigen lassen. Ein Prozess also, der mit einem Ausgangswert von 18 startet, kann nicht mit einem nice -10 Vorrang gewährt werden. Um z.B. ein Programm mit dem Namen a.out mit einer niedrigen Priorität zu starten, tippe
nice -n 19 a.out
Wenn du den Prozess schon gestartet hast, ohne das Kommando zu benutzen, kannst du mit dem Kommando renice die Priorität des Programmes ändern.
Syntax: renice -number process_id
Du kannst aber auch mit dem Kommando top mit der Option r gefolgt von der Prioritätsnummer und der PID die Priorität ändern.
12. Festplattenverbrauch
Das Kommando df zeigt dir an, wieviel Festplattenplatz auf allen, von deiner Workstation erreichbaren Dateisystemen verbraucht wird.
Syntax: df -k
Wenn du wissen möchtest, wieviel Platz du in deinem von Hard- oder Softquotas begrenztem Verzeichnis verbrauchst,
benutze das Kommando du.
Syntax: du [optionen] directory
Benutzt du das Kommando ohne Option, wird es dir die Summe deines Quotaverbrauches für das Directory, dass du spezifiziert hast, angeben, sowie aller Subdirectories darunter.
Syntax: du /users/usersname
Möchte man den totalen Quotaverbrauch angzeigt bekommen, gibt man
Syntax: du -s /users/username
ein. Um sich seinen persönlichen Quotaverbrauch angzeigen zu lassen, gibt man
Syntax: du -s ~
ein. Auf Sun, Compaq Alpha und Linux Workstations zeigt das Kommando quota den aktuell verbrauchten Festplattenplatz an.
Syntax: quota -v username
13. Kommando History
Wenn du möchtest, kann deine Shell eine Liste kürzlich exekutierten Kommandos anlegen, die du dann wieder aufrufen kannst. Lege in den Dateien .login und .cshrc folgende Anweisung an:
syntax: set history=nn
wobei nn als Platzhalter für die Anzahl der Kommandos steht, die in der Liste gespeichert werden sollen. Mehr als 40 Kommandos sollten nicht gespeichert werden. Es gibt verschiedene Wege, um die einmal gespeicherten Kommandos wieder aufzurufen. Gibst du an der Shell !! ein, wird das zuletzt eingegebene Kommando aufgerufen.
Gibst du an der Shell nur history ein, bekommst du eine Liste zu kürzlich ausgeführen Kommandos mit einer angefügten Nummer angezeigt. Um ein Kommando erneut auszuführen, brauchst du nur
Syntax: !line_number
eingeben. Wie schon gesagt, gibt es auch noch andere Wege, um ein einmal ausgeführtes Kommando erneut aufzurufen. Gib an der Shell einfach nur die ersten Buchstaben des Kommandos ein. Hast du z.B.
Syntax: ls -lR | grep drw
eingegeben, um dir rekursiv deine Verzeichnisstruktur anzeigen zu lassen, brauchst du, um das Kommando nochmal ausführen zu lassen, nur
Syntax: !ls
einzugeben. Die Shell wird dann das letzte Kommando, dass mit ls begann, ausführen.
14. Unix Tools
Das Unix-Betriebssystem kennt eine grosse Variationsbreite von Tools, die es dir gestatten, verschiedene Kommandos zu kombinieren und dir den Output dieser Kommandos anzeigen zu lassen.
14.1 Pipes
Mit Pipes kannst du verschiedene Unixkommandos kombinieren. Das Pipesymbol ist die vertikale Linie | auf deinem
Keyboard. Um z.B. einen kuerzlich von einem bestimmten User initieren Systemprozess zu suchen, gib an der Shell
Syntax: ps -ef | grep username
ein.
Möchtest du in einem Directory nach einem bestimmten String suchen und die Ausgabe soll Seite für Seite auf deinem
Destop angezeigt werden, gib an der Shell
Syntax: ls -l | grep ’string’ | more
ein.
14.2 I/O Redirection
Normalerweise wird das Ergebnis des Kommandoaufrufes am „standard out“ (stdout), deinem Bildschirm, ausgegeben. Manchmal ist es jedoch sinnvoll, dass Ergebnis z.B. in eine Datei schreiben zu lassen. Unter Unix ist es möglich, die Ausgabe eines Kommandos in eine Datei schreiben zu lassen oder umgekehrt aus der Datei lesen zu lassen. Das Symbol > schreibt den Output in eine Datei, das Symbol source.txt
das Ergebnis in ein Verzeichnis schreiben lassen.
Wenn du möchtest, dass das Mail-Utility Informationen aus einem Verzeichnis „input.txt“ ausliest, gib an der Shell das Kommando
Syntax: mail user@host < input.txt
ein.
14.3 Das Kommando sort
Das Kommando sort sortiert die Zeilen einer Datei; wenn keine anderen Optionen angegeben sind, in ASCII-Reihenfolge.
Snytax: sort filename
Du kannst das sort Kommando auch mit anderen Kommandos kombinieren, wenn du Pipes benutz. Um den Output eines who Kommandos zu sortieren, benutze
who | sort
14.4 Das Kommando diff
Manchmal ist es sinnvoll herauszufinden, ob zwischen zwei Dateien Unterschiede bestehen. Mit dem Kommando diff kannst du dies rausfinden.
Syntax: diff [optionen] Datei1 Datei2
14.5 Zeilen, Wörter und Character zählen
Es kann von großem Nutzen sein, die Anzahl der Wörter, Zeilen und Character einer Datei zu kennen. Das Kommando wc erfüllt diese Aufgabe. Ohne Optionen aufgerufen erfüllt das Kommando alle drei Anforderungen.
Syntax: wc [Optionen] Dateiname
Auch hier kannst du das Kommando mit anderen über eine Pipe kombinieren. Wenn du z.B. die Nummer einer Datei in einem Verzeichnis finden möchtest, gib
Syntax: ls -l | wc -l
ein.
14.6 Das ispell Kommando
Das Kommando ispell untersucht Dateien nach falsch geschriebenen Wörtern.
Syntax: ispell Dateiname
Das Kommando markiert jedes Wort, dass es nicht in seinem Wörterbuch findet. Das so markierte Wort wird zu Beginn der Datei angezeigt gefolgt von einer Liste von Wörtern, die entsprechend verwendet werden könnten. Um eines davon auszuwählen, musst du nur die Nummer des Wortes angeben. Wenn dir keines dieser Worte gefällt und du ein anderes haben möchtest, gib R ein und drücke Enter. Wenn das markierte Wort das Richtige ist, drücke die Leerzeilentaste oder gib I ein, damit das Word in dein persönliches Wörterbuch aufgenommen wird.
Wenn du ispell zusammen mit einer TeX Datei verwenden willst, benutze die Option -t.
14.7 Passwort ändern
Wenn du dich zum ersten Mal in ein neues System einlogst, ändere dein Passwort. Benutze dazu das Kommando
Syntax: passwd
ohne irgendwelche Optionen. Du wirst nach deinem alten Passwort gefragt, anschließend nach deinem neuen Passwort. Danach musst du das neue Passwort nochmals bestätigen. Das eingegebene Passwort wird auf dem Bildschirm nicht angezeitgt. Für die Sicherheit auf deinem System bist du selbst veranwortlich. Um Diese zu gewährleisten, solltest du dein Passwort oft ändern, mindestens jedoch zweimal jährlich. Nachfolgend aufgefuehrte Hinweise sollen dir helfen, das richtige Passwort zu finden:
1. Das Passort sollte mindestens 6 Zeichen enthalten, davon mindestens zwei Zeichen, die nicht aus dem Alpahbet kommen
2. Vermeide einfache Namen (z.B. deinen Vor- oder Nachnamen). Verwende auch keine Namen aus deiner unmittelbaren Umgebung (z.B. Familiennamen)
3. Schreibe dein Passwort nicht auf.
4. Gib dein Passwort niemand anders.
5. Benutze keine Wörter, die man in Wörterbüchern findet, weil viele Passwortknackerprogramme darauf beruhen, ganze Wörterbücher auszuprobieren, um das Passwort zu raten.
15.Anhang
Quelle: UCAR 1998 contact mmminfo@ncar.ucar.edu
Übersetzung: Jürgen Grünebaum contact info@raescom.de
Dieser Text darf kopiert und weitergegeben werden.