Startseite ]  [ Netz-Schule ]  [ Linux-Schule ]  [ Map ]

  Know How
  Glossar

   
  Linux-Schule Know How  

Linux Grundlagen

Ja über das Thema wird dermaßen viel geredet das ich mich, völlig entgegen meiner sonstigen Gewohnheit, entschieden habe die Klappe zu halten und einfach nur zu vermitteln versuche, was ich für die Grundlagen halte. Mit Begründung - versteht sich aber mehr nicht. Allgemeines Gelaber zu tausend Themen findet Ihr an anderer Stelle in diesem Quell des Wissens und der Weisheit - genannt Website :-)

Die Seiten richten sich gezielt an Einsteiger. Profis werden hier nichts neues finden. Deswegen bitte ich um Feedback inwieweit der Stoff verstanden wird, ob was fehlt oder ob etwas falsch erklärt wurde. Wer Fragen hat kann auch gerne einfach mailen, mit der Zeit fließt dann alles in die Seite ein.

Grundlagenübersicht

Linux Linux Befehle Linux Bashvariablen
Allgemeines
Laufwerke
Verzeichnisse
Dateisystem
Systemverhalten
Dateihandling
Welche gibt es
Umgezogen nach BASH

Allgemeines

über die Namensgebung bei Linux zu sagen beschränkt sich meistens auf die verwirrenden Namensgebungen für Laufwerke und Endgeräte. Da diese aber gesondert in den unten stehenden Tabellen behandelt werden, versuche ich hier Euch nur die generelle Namensgebung nahezubringen, sprich : "Warum heisst ein Diskettenlaufwerk,nicht einfach A: ?".

Die Antwort ist einfach. Unter Linux gibt es keine Laufwerke :-) Jedes Gerät, unabhängig davon was es ist, wird über Gerätedateien angesprochen ( Device ). Das hängt eng mit dem Unixstandard zusammen und ermöglicht die konkurrenzlos flexible Handhabung vorallem im Netz. Diese Geräte werden in das Dateisystem eingehängt ( gemounted ) und stehen unter frei wählbaren Namen zur Verfügung. Laufwerkswechsel fallen also weg, es wird lediglich mit dem "cd" Befehl gearbeitet.Das ist logischer als die Namensgebung von MS-DOS, denn warum soll eine Floppy nicht auch "Floppy" heißen, sondern "A:" ? Intern verwaltet Linux die Namen natürlich etwas anders.

Linux spricht die Geräte über Gerätedateien an die im Verzeichnis "/dev" zu finden sind. Die Benamsung erfolgt nach Schema : Kürzel für die Geräteart und ein Buchstabe oder eine Zahl für das Gerät.Geräte am IDE Bus zum Beispiel beginnen mit dem Kürzel hd, "hd" steht für Harddisk ( Festplatte ) weil es damals noch keine CD-ROM's gab. So ergibt sich für Platten und CD-ROM's folgendes Schema :

Erste IDE Festplatte
IDE-Gerät 1. IDE-Gerät ev. Unterteilung
hd a 1

Die kompletten Namen gibt es weiter unten unter Laufwerke.

Wer das Schema verstanden hat, kann eigentlich alle Geräte ziemlich schnell benennen und identifizieren, was vorallem bei der Installation und dem Installieren diverser Geräte wie Modems und Scannern wichtig ist.

Weitere Stolperfallen sind Begriffe wie "mounten" und "unmounten", die eng mit dem Dateisystem zusammenhängen. Da Linux eben keine Laufwerke kennt, entfällt auch das unter Windows so einfache "reinlegen und go". Linux will implizit wissen wann und ob eine Datenträger gewechselt wird. Das heisst, bevor ein Datenträger aus dem Laufwerk entfernt wird muß man Linux auch sagen das man ihn entnehmen will. Dann erst werden letzte Änderungen geschrieben.Macht man dies nicht droht Datenverlust. Genauso gilt : Nach dem Einlegen muß man Linux Bescheid geben das ein Datenträger zur Verfügung steht. Dieses Vorgehen hängt noch mit den Grundlagen des Filesystems zusammen. Wichtig also ist die Reihenfolge :

Datenträger einlegen - mounten - arbeiten - unmounten - Datenträger entfernen

Mehr gibt es eigentlich nicht an reinen Linuxfachbegriffen, falls doch reicht wie üblich eine kurze Mail mit der Aufforderung doch gefälligst diesen oder jenen Begriff aufzunehmen. Es ist leider so daß man als langjähriger Linuxer Sachen für selbstverständlich hält, die es eben nicht sind. Da diese Seiten sich an Einsteiger richten, bin ich in der Hinsicht wirklich auf Eure Hilfe angewiesen.

Seitenanfang      Grundlagenübersicht

Laufwerks- und Gerätenamen

Die folgende Tabelle ist nicht annähernd komplett aber sie enthält die häufigsten Gerätenamen und dient grundsätzlich auch nur dazu das oben beschriebene Schema noch etwas zu verdeutlichen. Linux fängt, wie auch alle Programmiersprachen, bei 0 an zu zählen !

Name Linuxname Reihenfolge Partition Name
1.Diskettenlaufwerk /dev/fd 0 - /dev/fd0
2.Diskettenlaufwerk /dev/fd 1 - /dev/fd1
1.(E)-IDE Gerät /dev/hd a - /dev/hda
1.(E)-IDE Festplatte Partition 1 /dev/hd a 1 /dev/hda1
1.(E)-IDE Festplatte Partition 2 /dev/hd a 2 /dev/hda2
2.(E)-IDE Gerät /dev/hd b - /dev/hdb
2.(E)-IDE Festplatte 1.Partition /dev/hd b 1 /dev/hdb1
3.(E)-IDE Gerät /dev/hd c - /dev/hdc
Die meisten CD-ROM's sind (E)-IDE Geräte - nicht nur Festplatten.
1. SCSI Festplatte /dev/sd a - /dev/sda
2. SCSI Festplatte /dev/sd b - /dev/sdb
Atztech CD ROM /dev/atzcd - - /dev/atzcd
Goldstar CD ROM /dev/gscd0 - - /dev/gscd0
Mitsumi CD ROM /dev/mcd - - /dev/mcd
1. SCSI CD ROM /dev/scd 0 - /dev/scd0
2. SCSI CD ROM /dev/scd 1 - /dev/scd1
Die Numerierung für z.B. Mitsumi ROM gilt wie bei den Platten auch von 0 - x
1. SCSI Streamer (rewinds) /dev/rmt 0 - /dev/rmt0
1. SCSI Streamer (non-rewind) /dev/nrmt 0 - /dev/nrmt0
1. Floppy Streamer /dev/ftape 0 - /dev/ftape0
PS/2 Maus /dev/inportbm - - /dev/inportbm
Logitech Busmaus /dev/logibm - - /dev/logibm
Serielles ( COM 1 ) /dev/ttys 0 - /dev/ttys0
Serielles ( COM 2 ) /dev/ttys 1 - /dev/ttys1
Gilt für die meisten Mäuse, Laserdrucker, Modems und ähnliches. Immer bei 0 anfangen !
Paralleles ( LPT 1 ) /dev/lp 0 - /dev/lp0
Paralleles ( LPT 2 ) /dev/lp 1 - /dev/lp1
Gilt für die meisten Scanner, Drucker, ZIP Laufwerke und sonstiges. Immer bei 0 anfangen !

Seitenanfang     Namenstabelle      Grundlagenübersicht

Verzeichnisse und Strukturen

Die meisten Linuxeinsteiger und Windowsumsteiger haben Probleme mit der komplizierteren Verzeichnisstruktur. Das diese sich auch noch, je nach gemounteten Zusatzgeräten, verändern kann sorgt dann für totale Verwirrung. Da diese Strukturen aber einen erheblichen Anteil der täglichen Arbeit beeinflussen und ausmachen, kommt man nicht umher sich etwas eingehender damit zu beschäftigen. Als erstes eine kleine Tabelle mit den "Standardverzeichnissen" unter Linux, die bei jeder Distribution gleich sein sollten

/ Rootdirectory (Wurzelverzeichnis) - das oberste Verzeichnis im Dateisystem.
/bin Alle Programme und Befehle die zur Systeminitialisierung nötig sind, sowie alle die immer zur Verfügung stehen sollen.
dev Gerätetreiber ( Laufwerke, Geräte, Netzwerkperipherie )
etc Konfigurationsdateien für das System
/home Homedirectory ( Benutzerverzeichnisse ) das alle Benutzerverzeichnisse als Unterverzeichnisse enthält
/lib Bibliotheken ( Libraries ) die vom System, Compilern oder Applikationen benötigt werden.
/proc Das Prozeßdateisystem zur Verwaltung der laufenden Prozesse ( Tasks ) ,wird dringend vom System benötigt.
/sbin sollte alle Programme und Dateien beinhalten die entweder das System oder root im laufenden Betrieb brauchen. Dateien zur Systeminitialisierung gehören ebenfalls dazu.
/usr Benutzerrelevante Befehle und Programme.
/usr/bin Allgemein für alle Benutzer benötigte Befehle.
/usr/doc Diverse Dokumentationen die keine Manpages sind
/usr/include Headerdateien für C Compiler.
/usr/local Standort für selbstinstallierte Anwendungen und lokale Ergänzungen des Systems.
/usr/man Die man-pages des Manpageprojektes.
/usr/sbin Befehle und Kommandos des Systemverwalters ( root )
/usr/src Quelltexte des Systems,nicht zur Aufbewahrung für normale Anwendungssourcen verwenden bitte.
/var Systemdaten die sich während der Laufzeit ändern ( Variable Daten )
/var/log Standort für Logdateien des Systems oder Serverprogrammen
/var/tmp Standort für temporäre Dateien
/var/spool Standort für temporäre Dateien die noch verarbeitet werden ( Druckerdateien, E-Mails etc. )

Seitenanfang     Grundlagenübersicht      Verzeichnistabelle

Dateisystem

Zu den ersten Aufgaben eines jeden Betriebsystems gehört die Arbeit mit Dateien.Die logische Strukturierung, Pflege und Erweiterung des Dateisystems gehört von daher zu dem Grundwissen das man zum qualifizierten Arbeiten haben sollte. Das Linuxdateisystem, ext2, ist deutlich strukturiert aufgebaut. Die Basis bildet das "root" oder "Wurzelverzeichnis" als Spitze des Verzeichnisbaums.Dieses Verzeichnis ist auch gemeint wenn irgendeine Pfadangabe mit dem "/" beginnt. Übersetzt heisst

"cd /var/spool/mail" nämlich nichts anderes als :

  • cd / ( wechsele ins Rootverzeichnis )
  • cd var ( wechsele ins Unterverzeichnis var )
  • cd spool ( wechsele ins Unterverzeichnis spool )
  • cd mail ( wechsele ins Unterverzeichnis mail )
  • Im Baum unten rot dargestellt
Hier kommt ein Ausschnitt des Verzeichnisbaumes als Tabelle :
/
etc boot var usr
rc.d spool lib bin sbin
rc1.d rc0.d lpd mail

Es gibt im Verzeichnisbaum 2 "Aliasnamen" die man benutzen kann. Einmal den . der das aktuelle Verzeichnis darstellt oder zweimal verwendet .. das nächsthöhere Verzeichnis benennt ,( das Elternverzeichnis ) also und die Tilde ( ~ ) die das Arbeitsverzeichnis des aktuellen Users bezeichnet. Statt cd /home kann man also auch cd ~ oder nur cd eingeben.Wie im DOS auch ist die Navigation unter Linux kinderleicht.Die Parameter entnehmt bitte den manpages

Verzeichnis wechseln mit cd

cd Verzeichnisname und das war es auch schon. Wie unter DOS auch kann man hier mit cd /usr/bla auch aus anderen Verzeichnisbereichen in ein Verzeichnis springen (absolute Adressierung) oder mit cd usr in ein untergeordnetes Verzeichnis derselben Struktur gehen (relative Adressierung ausgehend vom Standort).

Verzeichnis anlegen mit mkdir

mkdir Verzeichnisname und fertig. Auch hier ist natürlich die absolute und relative Adressierung möglich.

Verzeichnis löschen mit rmdir

rmdir Verzeichnisname und fertig.Die absolute und relative Adressierung ist auch hier möglich. Ihr solltet sicher sein das die Verzeichnisse leer sind. Ein wiederherstellen von Dateien ist unter Linux nicht möglich !!!

Verzeichnis einhängen mit mount

mount /dev/hdc -t iso9660 /mnt/cdrom hängt den Inhalt der CD-ROM in Das Verzeichnis /mnt/cdrom Hierbei gibt es einige Besonderheiten :

  • 1.Das Verzeichnis das Ihr als "mountpoint" angebt muß existieren !
  • 2.Das CD ROM muß einen Datenträger enthalten !

Es ist nicht immer nötig den Type mit der Option -t anzugeben. Das hängt von den Einträgen in der Datei /etc/fstab ab auf die wir später noch genauer eingeben.

Verzeichnis aushängen mit umount

Hier muß nur umount Mountpoint angegeben werden. Keine Typenbezeichnung. Es gilt allerdings : Ihr dürft nicht im gemounteten Verzeichnis sein. Eigentlich logisch, da dieses Verzeichnis danach nicht mehr existiert - Ihr würdet Euch also außerhalb des Systems befinden.

Verzeichnisinhalt anzeigen mit ls

Die Eingabe von ls listet den Inhalt des aktuellen Verzeichnisses auf. Hierbei gibt es ein Unzahl von Optionen die Ihr bitte der manpage zu ls entnehmt. Auf vielen Systemen ist ls ein sogenanntes Alias für ls -laF. Auch auf den Begriff Alias gehe ich später noch ein und zwar unter "Linuxbefehle". An dieser Stelle steht absichtlich kein Link :-) Als Abschluß der Grundlagen noch kurz die Tabelle für die Ausgabe von ls.

Art Rechte Eigentümer Gruppe Größe Datum Name
d rwxr-xr-x root root 4096 Jun 5 1997 bin/

In diesem Falle ist es ein Verzeichnis d, die nächsten 3 Zeichen bezeichnen die Rechte des Eigentümers, die folgenden 3 die der Gruppe und die letzten 3 die des Restes der User. Eigentümer ist hier root, der zur Gruppe root gehört. Der Verzeichniseintrag ist 4 KByte groß und wurde am 05 Juni 1997 unter dem Namen bin erstellt.Die Rechte seien hier erwähnt weil sie die Grundlage der ganzen Linuxphilosophie in Bezug auf Sicherheit sind, für Einzelplatzsysteme sind sie nicht so wichtig. Eigentlich.

  • r - read ( lesen ). Erlaubt bei Dateien das Einsehen des Inhaltes und bei Verzeichnissen das wechseln via cd
  • w - write ( schreiben ). Erlaubt bei Dateien das Schreiben in die Datei und das Speichern, bei Verzeichnissen das Anlegen von Dateien und neuen Unterverzeichnissen.
  • x - execute ( ausführen ). Erlaubt bei Dateien das Ausführen ( Scripte ) und bei Verzeichnissen das Wechseln in selbige

Das soll es erstmal gewesen zum Thema Grundlagen. Ergänzungen, Fragen sind wie immer herzlich willkommen.

Seitenanfang     Grundlagenübersicht      Verzeichnis

Befehle - Systemverhalten

Befehle die das Systemverhalten beeinflußen sind während der laufenden Arbeit vielleicht nicht so wichtig, sollten aber auf jeden Fall genannt werden um User die sich etwas tiefer in Linux einarbeiten möchten auf die richtige Spur zu leiten. Systemverhalten wird hier im Sinne von Eingriffen ins System benutzt - dazu gehört das stoppen, manipulieren von Prozessen genauso wie das starten und stoppen von diversen Diensten wie dem Apache Webserver. Strenggenommen ist der Apache auch nur ein Prozess aber so genau will ich es an dieser Stelle nicht nehmen

Grundlage aller Verwaltung ist der Befehl top. Die Ausgabe besteht aus 2 Teilen. Der Statusanzeige im oberen Teil und der Auflistung aller laufenden Programme weiter unten.

Hier die Statuszeile (Header):

2:43pm  up  11:32,  1 user,  load average: 0.08, 0.03, 0.01
56 processes: 54 sleeping, 1 running, 1 zombie, 0 stopped
CPU states:  1.9% user,  0.3% system,  0.0% nice, 97.6% idle
Mem:   54760K av,  53168K used,   1592K free,  61868K shrd
Swap: 136544K av,    472K used, 136072K free  21096K cached
Der Header : zeigt in der ersten Zeile von links nach rechts an das es viertel vor drei Mittags ist und der Rechner seit 11 Stunden und 32 Minuten läuft. Die load averages beziehen sich auf die aktiven Prozesse in den letzten 5,10 und 15 Minuten bzw. deren Ressourcenverbrauch, erstmal nicht wichtig.Zeile 2 gibt die Gesamtzahl der laufenden Prozesse und deren Status aus. Im Moment schlafen 54, 1 tut irgendwas und 1 Prozess gammelt ohne Sinn und Zusammenhang im System rum.In Zeile 3 listet top die Gesamtauslastung des Systems unterteilt nach Userverbrauch, Systemverbrauch und Reservierten Ressourcen. Wie man sieht nimmt Linux unter X mit 6 offenen Fenstern, davon 2 Netscape und einer aktiven Internetverbindung wirklich nicht viel.Interessant ist auch Zeile 4 die uns den Gesamtarbeitsspeicher, den Verbrauch und einiges mehr gibt. Zeile 4 schließlich widmet sich ganz dem Swap-Speicher, auch hier Gesamtgröße, benutzte, freie und die gecachte im RAM. Gar nicht so heftig gell ? Eben.
PID USER PRI  NI  SIZE  RSS SHARE STAT  LIB %CPU %MEM   TIME COMMAND
1020 root 10  0  1036  1036  844  R      0  5.6  1.8   0:00 top
1    root  0  0   204   204  172  S      0  0.0  0.3   0:03 init
2    root  0  0     0    0     0 SW      0  0.0  0.0   0:00 kflushd
3    root  0  0     0    0     0 SW      0  0.0  0.0   0:00 kupdate
4    root  0  0     0    0     0 SW      0  0.0  0.0   0:00 kpiod
Die Statuszeile : ist auch nicht weiter heftig.PID ist die Process ID, also nur eine Nummer zur Identifizierung.USER sagt nur aus wer den Prozess gestartet hat und PRI zeigt ob und welche Priorität ein Prozess genießt. Diese läßt sich zuweisen, logisch.NI ist der Nice Level eines Prozesses, der NICE Level reserviert Ressourcen für Prozesse.SIZE zeigt den Platz den der Prozess für Code und Daten im Arbeitsspecher verbraucht.SHARE gibt den Verbrauch an Shared Memory an. Interessant sind auch STAT was den aktuellen Status des Prozesses angibt.
SSleeping ( ruhend ) RRunning ( läuft ) SWSleep in Swap (ruhend im Swapspeicher) Nur zur Verdeutlichung !

%CPU zeigt den Verbrauch der CPU,%MEM den Gesamtverbrauch an Arbeitsspeicher,TIME dann die Laufzeit und COMMAND den exakten Aufruf des Programmes.

Manipulationen

sind natürlich immer das liebste :-). Was also kann man mit Prozessen machen ? Generell erstmal fast alles. Hauptbefehl dafür ist kill. Trotz seines archaischen Namens ist er nicht nur dafür da um einen Prozess zu töten, sondern dient der Manipulation ganz allgemein. Die Syntax ist denkbar einfach : kill -X PID also kill -15 1 würde den init-Prozess killen, etwas das man tunlichst unterlassen sollte. Es gilt : Nur Prozesse killen die Ihr selbst gestartet habt bzw. wenn Ihr genau wißt was Ihr tut !!! Hier kurz die kill Optionen :

 1) SIGHUP      2) SIGINT      3) SIGQUIT     4) SIGILL
 5) SIGTRAP     6) SIGABRT     7) SIGBUS      8) SIGFPE
 9) SIGKILL    10) SIGUSR1    11) SIGSEGV    12) SIGUSR2
13) SIGPIPE    14) SIGALRM    15) SIGTERM    17) SIGCHLD
18) SIGCONT    19) SIGSTOP    20) SIGTSTP    21) SIGTTIN
22) SIGTTOU    23) SIGURG     24) SIGXCPU    25) SIGXFSZ
26) SIGVTALRM  27) SIGPROF    28) SIGWINCH   29) SIGIO
30) SIGPWR

Allerdings sollen nur die 5 wichtigsten genauer erklärt werden. Den Rest überlasse ich gerne den Manpages :-) Mit den nicht erwähnten Nummern lassen sich zum Beispiel Ausgaben auf Systemebene umleiten, andere PID's zuweisen, Speicherbereiche sperren und ähnliches. Diese Art Manipulation sollte man getrost unter "Linux für Fortgeschrittene" verbuchen.

1 - SIGHUP initialisiert den entsprechenden Prozess neu, eine Art "restart" 9 - SIGKILL beendet den Prozeß OHNE jegliche Datensicherung und gnadenlos ! Sollte nur im Notfall genommen werden
15 - SIGTERM versucht den Prozeß auf normale Weise zu beenden. Erst wenn das nicht geht nimmt man 9 19 - SIGSTOP stoppt den Prozeß. Ganz gut wenn man kurzfristig Ressourcen braucht aber einen laufenden Ressourcenintensiven Prozeß nicht beenden kann.
18 - SIGCONT setzt einen gestoppten Prozeß wieder in Gang.

Mehr braucht man, als Grundlage eigentlich nicht. Interessant und sehr nützlich ist das starten von Prozessen im Hintergrund. Linux bietet zwar generell 6 Textkonsolen aber es passiert sehr schnell das man auf einer Konsole einloggt, dann meinetwegen top startet um die Ressourcen zu überwachen und es schlicht vergißt oder nicht will das die Konsole blockiert wird. CD-Spieler auf der Konsole sind ein klassisches Beispiel. Deswegen bietet Linux die Möglichkeit alle Programme mit dem & als letzte Option zu starten und damit in den Hintergrund zu schicken.cdplay & würde also die CD starten und im Hintergrund weiterlaufen ohne die Konsole zu blockieren. In den Vordergrund holt man die Programme einfach mit fg und der PID. Die Ausgabe erfolgt weiterhin auf dem Bildschirm !!! Die PID läßt sich natürlich nicht nur über top ermitteln sondern auch einfach mit ps -C Aufrufname ermitteln. So würde ps -C cdplay alle laufenden CD Spieler listen. Im Zusammenhang mit den Umleitungsmechanismen die weiter hinten erklärt sind, lassen sich daraus sehr komfortable Scripte ( das Linuxpedant zur Batchdatei ) basteln, die Euch das Leben sehr erleichtern.

Soviel dazu. Widmen wir uns dem Dateihandling.

Seitenanfang     Systemverhalten

Dateihandling

Dateihandling umfaßt das Anzeigen von Dateien, manipulieren, Rechte verteilen und auch die sehr genialen Ein- und Ausgabeumleitungen. Diese allerdings nur in den Grundlagen. Das ist ein ewiges Thema.Auch hier gibt's wieder eine meiner heißgeliebten Tabellen.

Befehlsname Beschreibung Optionen / Befehle
cat
Anzeige
zeigt einfach den Inhalt der Datei an. Unabhängig davon ob es sich um eine Textdatei oder ein Binärformat handelt. Geeignet ist cat allerdings nur für kurze Dateien, da es die Datei einfach von vorne bis hinten auf den Monitor spult. Das provisorische Blättern in der Konsole mit Shift+BildAuf, Shift+BildAb ist zwar gelegentlich hilfreich aber wenig komfortabel. Deswegen gibt es : -b numeriert alle Zeilen die irgendeinen Inhalt haben.-n numeriert generell alle Zeilen, ob leer oder nicht. Nützliche Option.
less
Anzeige
was uns das komfortable Betrachten von Textdateien erlaubt. Leertaste,blättert eine Bildschirmseite weiter.j geht eine Zeile weiter,k eine zurück.Durch Eingabe von /Wort wird das gewünschte Wort gesucht und hingesprungen.q beendet less.
cp
Kopieren
kopieren von Dateien, der Linuxpedant zum "copy" Befehl unter DOS cp Quelldatei Zieldatei
cp -R /etc/* /tmp/
wären 2 Aufrufe. Der erste kopiert einfach Datei1 nach Datei2 im aktuellen Verzeichnis. Der zweite kopiert das komplette Verzeichnis /etc mitsamt allen Unterverzeichnissen und deren Inhalt nach /tmp. Das Verwenden von Wildcards wie *,? kommt nach der Tabelle.
rm
Löschen
regelt das löschen von Dateien. Nochmals der Hinweis : Unter Linux ist keine Wiederherstellung von gelöschten Dateien möglich rm Dateiname
rm Dateiname,Dateiname2
rm -r /tmp/
sind 3 Aufrufe. Der erste löscht eine Datei, der zweite löscht 2 Dateien und der letzte schließlich löscht alles unterhalb des Verzeichnisses /tmp. Dieser Befehl kann ruhig angewendet werden, da in /tmp keine wichtigen Dateien stehen.
ln
Handling
legt einen Link auf eine Datei an. Links sind nützlich wenn man nur eine Datei haben will, diese aber aus irgendwelchen Gründen, von verschiedenen Stellen aus bearbeiten können möchte.Änderungen des Links betreffen jeweils die Originaldatei ! ln -s Dateiname Linkname setzt einen Softlink ( einen reinen Verweis, ähnlich der Windowsverweise ) auf die Datei. Wer dann den Link via Editor aufruft, ändert die Originaldatei !
grep
Durchsuchen
durchsucht Dateien nach einer bestimmten Zeichenfolge und gibt, ohne Parameter, einfach die entsprechenden Zeilen aus, in denen das Wort vorkommt. grep -icl "bla" *.txt
Das sind die möglichen Aufrufe. Der Parameter i bedeutet das Groß- und Kleinschreibung ignoriert werden,c gibt nur aus wie oft der Ausdruck in einer Datei gefunden wurde wogegen l nur die Dateinamen ausgibt in denen der Begriff vorkam.
sort
Sortieren
sortiert den Inhalt einer Datei und sollte nur bei Dateien verwendet werden die dafür aufgebaut sind. Listen von E-Mailadressen zum Beispiel die pro Zeile eine Mailadresse beinhalten oder ähnliches. sort Dateiname > Dateiname 2
würde den Inhalt der einen Datei sortiert in die zweite ausgeben. Die Lösung für alle geplagten Excelnutzer die das mal eben machen wollten und nicht konnten.
unique
Sortieren
entfernt Doppeleinträge aus einer Datei die vorher mit sort behandelt wurde. Um bei dem Beispiel einer Mailadressendatei zu bleiben, verhindert das zum Beispiel das ein User mehrere Mails auf die gleiche Adresse bekommt. unique Dateiname > Dateiname 2
gibt alles in die zweite Datei aus und entfernt alle Doppeleinträge.

Wildcards

sind Platzhalter für Zeichen. Bei allen oben beschriebenen Befehlen können Wildcards eingesetzt werden um das kopieren, löschen oder einfach bearbeiten von Dateien zu erleichtern. Wildcards sind relativ einfach zu handhaben. Ein ? ersetzt ein Zeichen an der Stelle an der es angegeben wird, ein * ersetzt eine beliebige Anzahl von Zeichen an der Stelle wo er angegeben wird. In der Tabelle sieht das so aus :

Originalliste nach ls W?ber nach ls W??ber nach ls W*ber
Waber
Weber
Weiber
Wilder
Waber
Weber
Weiber Waber
Weber
Weiber

So easy. Es gibt noch die Möglichkeit Regular Expressions statt der Wildcards einzusetzen, aber das führt hier zuweit. Vielleicht baue ich es irgendwann nochmal ein, allerdings denke ich das man Regular Expressions ( reguläre Ausdrücke im Format ls [^U-Z] ) vielleicht doch lieber im Rahmen der Shellprogrammierung oder einer anderen Sprache lernen sollte. Das bringt uns direkt zum letzten Thema dieser Abteilung, wobei ich hier kurz die Ein- und Ausgabeumleitungen vorstellen will, da sie für Dateihandling und auch die Tools nicht unwichtig sind.

in Datei umleiten alle Ausgaben, dazu zählen auch Ausgaben die Kommandos wie ls liefern, können mit > in eine Datei umgeleitet werden ps -ax > prozesse würde eine Liste aller laufenden Prozesse in die Datei prozesse schreiben
aus Datei holen ist die Gegenrichtung. Hiermit können Inhalte einer Datei an einen Befehl übergeben werden. kill -19 <prozessliste würde alle Prozesse deren Nummer in der Datei stehen anhalten. Da genug Tools zur Ermittlung der PID zur Verfügung stehen und man diese natürlich auch in eine Datei umleiten kann, eröffnen sich hier einige Möglichkeiten.
Verketten verbindet zwei Befehle. Es benutzt also die Ausgabe des einen, direkt als Eingabe für den anderen. ps -ax ¦ lpr schickt die oben erwähnte Prozessliste direkt an den Drucker.
« zurück --- vor »