Linuxbefehle

Linux - Unix

Befehle - Zugriffsrechte - Dateitypen - Verzeichnisstruktur

1. wichtige Befehle

 

ls         listet den Inhalt eines Verzeichnisses auf

-a (all) listet auch Dateien, die mit ».« beginnen

-d zeigt Unterverzeichnisse wie normale Dateien statt ihres Inhalts

-i zeigt die Inode-Nummer zu jeder Datei

-l (long) zeigt auch Typ, Zugriffsrechte, Anzahl der Hardlinks, Besitzer, Gruppe, Größe in Byte und Veränderungsdatum

-n zeigt Benutzer und Gruppe mit ID anstelle der Namen

 

cd         Wechsel des Verzeichnisses

cd Wechsel in das Heimatverzeichnis

cd .. Wechsel in das nächsthöhere Verzeichnis

cd / Wechsel in das Wurzelverzeichnis

 

su Benutzer wechseln

 

mount verknüpft vorhandene Dateisysteme zu einem Dateibaum

umount hängt Dateisysteme vom Dateibaum wieder ab

mount -t iso9660 /dev/cdrom /mnt/cdrom

umount /mnt/cdrom

mount -t vfat /dev/hda1 /mnt/dosc

umount /mnt/dosc

mount /dev/sda4 /mnt/zip

mount -t nfs Rechnername:Pfad /mnt

umount /mnt

 

smbmount //Rechnername/Pfad /mnt

umount /mnt

 

insmod Modul einbinden

modprobe Modul einbinden

rmmod Modul entfernen

z. B.

modprobe ppa Iomega-Zip Laufwerk am Parallelport als Modul einbinden

 

Systemzeit ändern:

date mmddHHMM

 

Hardware-Uhr stellen:

hwclock --set --date=“mm/dd/yyyy HH:MM:SS”

 

Systemzeit entsprechend Hardware-Uhr stellen:

hwclock --hctosys

 

Hardware-Uhr entsprechend Systemzeit stellen:

hwclock --systohc

 

blockweise kopieren

dd if=/dev/hda6 bs=512 count=1 of=/mnt/dosc/boot.lin

 

 

2. Zugriffsrechte

 

Der Eigentümer

Jeder Datei, mit der wir imSystem arbeiten, werden ein Benutzer als Eigentümer, sowie eine Gruppe zugeordnet. Damit gilt für diese Datei:

--> Ich gehöre dem Benutzer X und in die Gruppe Y

Außerdem werden noch die Zugriffsrechte der verschiedenen Klassen auf die Datei festgelegt:

--> für den Eigentümer

z. B.: der Eigentümer darf alles

--> für die Gruppe, in die sie gehört

z. B.. die Gruppe darf lesen und schreiben

--> für alle anderen Benutzer

z. B.: alle anderen dürfen nur lesen

 

Möchte also jemand mit einer Datei arbeiten, werden zur Überprüfung der Zugriffsrechte die folgenden Schrittte durchgeführt:

Bist Du der Eigentümer?

Dann gelten die Rechte für den Eigentümer.

Gehören wir (Benutzer und Datei) in die gleiche Gruppe?

Dann gelten die Rechte für die Gruppe.

Ansonsten gelten die Rechte wie für alle anderen Benutzer.

 

Gruppe ändern: chgrp

Um die Gruppe einer Datei oder eines Verzeichnisses zu verändern, steht das Kommando chgrp (engl.: change group, verändere Gruppe) zur Verfügung. Der generelle Aufruf dieses Kommandos lautet:

chgrp <Name der neuen Gruppe> <Liste der Dateien/Verzeichnisse

 

Eigentümer ändern: chown

Und um den Eigentümer zu verändern, verwenden wir das Kommando chown (engl.: change owner). Der generelle Aufruf dieses Kommandos lautet:

chown <Name des neuen Eigentümers> <Liste der Dateien/Verzeichnisse>

Dieses Kommando darf aber nur vom Superuser (root) ausgeführt werden.

 

Wer darf was: Zugriffsrechte im Detail

Betrachtet man die Möglichkeiten, was man mit den Daten tun kann ergeben sich die folgenden grundlegenden Zugriffsarten:

  • Lesen (read = r)
    Dies bedeutet, man kannt die Daten auf dem Bildschirm ansehen, also lesen. Für Verzeichnisse bedeutet dieses Recht: Man kann das Inhaltsverzeichnis lesen, also das Is-Kommando benutzen.

  • Schreiben (write = w)
    Damit ist eine Änderung der Daten erlaubt. Es dürfen sowohl die bereits vorhandenen Daten geändert, als auch neue Daten hinzugefügt werden. Wenn wir Daten verändern können, muß man sie auch lesen können, das Schreibrecht beinhaltet also automatisch auch das Leserecht.

    Achtung! Das Recht zu Schreiben bedeutet auch die Möglichkeit, Daten zu löschen.

  • Ausführen (execute = x)
    Für Programme und Dateien, die Kommandofolgen enthalten, legt dieses Recht fest, daß der entsprechende Benutzer diese ausführen kann, das heißt das Programm starten und damit arbeiten kann.

    Für Verzeichnisse bedeutet dieses Recht, daß man in das Verzeichnis wechseln darf. Es bedeutet aber nicht, daß man sich den Inhalt des Verzeichnisses (z. B. mit ls) anschauen kann; dazu benötigt man das Recht zu lesen. Weiß man jedoch, wie eine Datei in diesem Verzeichnis heißt, kann man mit dieser arbeiten (zum Beispiel den Inhalt anschauen).

Durch das Kommando ls –l kann man sich diese Informationen anzeigen lassen:

[gast]> ls -ld texte

drwxrwxr-x    2 gast     Users    1024 Sep 16 11:02 texte/

Die ersten zehn Zeichen (d rwx rwx r-x) legen dabei die Zugriffsrechte folgendermaßen fest:

  • das erstes Zeichen (hier: d) bestimmt den Dateityp

  • die nächsten drei Zeichen (in unserem Beispiel rwx) bestimmen die Zugriffsrechte für den Eigentümer

  • die Zeichen 5 bis 7 (wieder rwx) sind die Zugriffsrechte für die Gruppe

  • und die letzten drei Zeichen (r-x) enthalten die Zugriffsrechte für alle anderen Benutzer

Zugriffsrechte ändern: chmod

Die Zugriffsrechte werden mit dem Kommando chmod (engl.: change mode) geändert. Der generelle Aufruf dieses Kommandos lautet:

chmod <Neue Zugriffsrechte> <Dateien/Verzeichnisse>

Die neuen Zugriffsrechte setzen sich aus den folgenden Teilen zusammen:

chmod <Klasse> <Operation> <Zugriffsrecht> <Liste der Dateien/Verzeichnisse>

Die möglichen Klassen werden wie folgt abgekürzt:

 

Zeichen

Klasse

Bedeutung

 

 

 

u

user

für den Benutzer

g

group

für die Gruppe

o

other

für alle anderen

a

all

für alle (user und group und others)

Fehlt die Angabe der Klasse, so wird u verwendet, d. h., es werden die Rechte für den Benutzer verändert.

Als Operationen stehen zur Verfügung:

 

Option

Bedeutung

 

 

+

Recht hinzufügen

-

Recht wegnehmen

=

Recht nur für die angegebene Klasse hinzufügen, für alle anderen wegnehmen

 

Die Zugriffsrechte sind:

 

Zeichen

Zugriffsrecht

Bedeutung

 

 

 

r

read

Lesen

w

write

Schreiben oder Verändern

x

execute

Ausführen oder Wechseln in das Verzeichnis

s

set UserID

Ausführung mit den Rechten des Besitzers

 

Die Darstellung der Zugriffsrechte kann auch als Zahl erfolgen (im Oktalsystem). Für jede Gruppe werden di-e Werte für die entsprechenden Zugriffsrechte addiert:

 

Zeichen

Wert

 

 

r

4

w

2

x

1

kein Recht

0

 

Das Zugriffsrecht rw- ergibt somit 4+2+0 = 6

Für jede Klasse werden nun die »numerischen« Zugriffsrechte hintereinandergeschrieben:

rwxr-xr-x => 4+2+1   4+0+1   4+0+1 => 755

Voreinstellungen

Wird eine neue Datei oder ein neues Verzeichnis erzeugt, wird die folgende Zuordnung für user, group und Zugriffsrechte vorgenommen:

 

Wert

Voreinstellung

 

 

user

Benutzer, der die Datei erstellt

group

Gruppe, in der sich der Benutzer gerade befindet

Zugriffsrechte

rw-r--r-- (weiteres siehe unter umask)

 

umask

Um die Zugriffsrechte für neue Dateien/Verzeichnisse individuell zu gestalten, wird bei der Erstellung auf eine sogenannte Maske zurückgegriffen: in dieser Maske wird angegeben, welche Rechte von den Standardwerten (rwxrwxrwx, jeder darf alles) entzogen werden. Die Angabe der Maske erfolgt in oktaler Form

Als Standardmaske wird 022 verwendet.

022 => 0+0+0  0+2+0  0+2+0 => ---  -w-  -w-

Wenn wir von den Standardzugriffsrechten rw-rw-rw- für normale Dateien die Schreibrechte für Gruppe und Andere wegnehmen, bleibt nur noch rw- r-- r-- übrig.

Die aktuelle Maske kann über das Kommando umask angezeigt werden. Mit diesem Kommando kann die Maske auch geändert werden:

 

3. Dateitypen:

Das Linux-Dateisystem zeichnet sich neben der hierarchischen Baumstruktur durch seine einheitliche Schnittstelle zum Benutzer aus: Der Benutzer arbeitet ausschließlich mit Dateien und Verzeichnissen.

Dies betrifft besonders die Verwendung von Geräten, z. B. Drucker, Festplatte, Modem und andere. Auch sie werden wie Dateien behandelt, und jeder Zugriff, egal ob ein Text gespeichert oder ein Zeichen gedruckt wird, erfolgt über einen Dateinamen.

Dabei unterscheidet man verschiedene Typen von Dateien, die im folgenden beschrieben werden.

plain file

Plain files können als »normale« Dateien in Form einer Folge von Zeichen bezeichnet werden. Für das Betriebssystem besitzen diese Dateien keine Struktur und kein Format. Ob Textdatei, eine Grafik oder eine Datenbank - jede Datei wird vom Betriebssystem gleich verwaltet und behandelt. Die gewünschte Struktur erhalten Dateien erst durch die Anwendungsprogramme, die den Inhalt in der entsprechenden Weise inter­pretieren.

Plain files sind durch einen Strich »-« als erstem Zeichen in der Spalte der Zugriffsrechte gekennzeichnet.

-rw-r--r--          1 gast          users           30 Aug 16 14:40 README

directory

Verzeichnisse werden durch ein führendes »d« in den Zugriffsrechten gekennzeichnet.

drwxr-xr-x          2 gast         users 1024 Sep 14 13:26 texte/

special file

Das Linux-Dateisystem enthält für jedes Gerät (Bildschirm, Maus, Drucker, Hauptspeicher, Laufwerke) eine Datei, die dieses Gerät symbolisiert. Jeder Zugriff auf diese Datei bewirkt den entsprechenden Zugriff auf das Gerät. Diese Dateien befinden sich alle im Verzeichnis /dev und werden als Gerätedateien
(engl: devicefile oder specialfile) bezeichnet.

Das Floppylaufwerk A wird z. B. durch den Dateinamen /dev/fd0 repräsentiert. Wird aus dieser »Datei« gelesen, passiert in Wirklichkeit ein Lesezugriff von der Diskette in Laufwerk A. Das Kopieren einer Datei auf die »Datei« /dev/lp bewirkt, daß die Datei ausgedruckt wird.

Gerätedateien werden durch ein »b« oder »c« als erstes Zeichen unter den Zugriffsrechten gekennzeichnet. Das Zeichen »b« oder »c« legt fest, wie auf diese Geräte zugegriffen werden kann. Ein »b« kennzeichnet blockorientierte Geräte (engl.: block device). Bei diesen Geräten wie Festplatte und Diskettenlaufwerk kann auf jedes beliebige Zeichen über seine Position zugegriffen werden. Zeichenorientierte Geräte (engl.: character device) erlauben nur einen sequentiellen Zugriff, d. h., die Zeichen können nur der Reihe nach gelesen oder geschrieben werden. Hierzu gehören alle Geräte an der seriellen Schnittstelle: Modem, Maus und der Drucker.

link

In vielen Fällen ist es sinnvoll, auf die gleiche Datei unter verschiedenen Namen zugreifen zu können. Um nicht die gleiche Datei zweimal zu verwenden, wird bei einer Datei ein Verweis erstellt, ein sogenannter link. Wird nun auf diesen Verweis zugegriffen, findet das Linux-Betriebssystem automatisch die richtige Stelle. Im Inhaltsverzeichnis befindet sich einfach hinter beiden Einträgen die gleiche Dateinummer (inode).

Beispiel:

Das Kommando touch erstellt eine neue Datei:

[tmp]> touch original

[tmp]> ls -il

44025 -rw-r--r-- 1 gast          users          0 Sep 14 15:09 original

 

Wird nun mit dem Kommando ln aus der Datei original eine neue Datei link erzeugt,

[tmp]> ln original link

die einen Verweis auf die bereits existierende Datei original darstellen soll, so wird dem neuen Dateinamen die gleiche inode zugewiesen. Damit wird jeder Zugriff auf die Datei link zum tatsächlichen Zugriff auf die bereits existierende Datei original.

[tmp]> ls -il

44025 -rw-r--r--          1 gast          users          0 Sep 14 15:09 link

44025 -rw-r--r--          1 gast          users          0 Sep 14 15:09 original

Beide Namen verweisen auf die gleiche inode 44025.

Das Kopieren der Datei würde eine neue Datei mit gleichem Inhalt erzeugen. Damit hätten beide verschiedene Dateinummern (inodes).

[tmp]> cp original kopie

[tmp]> ls -il

44026 -rw-r--r--          1 gast          users          0 Sep 1,4 15:17 kopie

44025 -rw-r--r--          2 gast          users          0 Sep 14 15:09 link

44025 -rw-r--r--          2 gast          users          0 Sep 14 15:09 original

Man erkennt sofort an den verschiedenen inodes, daß es sich um unterschiedliche Dateien handelt.

Wird nun die kopierte Datei kopie verändert, ist die Originaldatei davon nicht betroffen, da es sich um zwei verschiedene Dateien handelt. Wenn hingegen an der Datei link gearbeitet wird, erscheinen diese Änderungen auch in der Originaldatei: Es handelt sich lediglich um zwei verschiedene Namen für die gleiche Datei.

 

Symbolischer Link

Im Unterschied zum normalen Link entspricht der symbolische Link einem Querverweis. Während beim link nur ein neuer Eintrag im Inhaltsverzeichnis erfolgt (mit gleicher Dateinummer (inode)), wird nun eine neue Datei angelegt, in dieser steht aber nur ein Querverweis auf die inode (so etwa wie: siehe Seite 44025).

Der symbolische Link wird erstellt durch ln -s.

[tmp]> ln -s original symlink

[tmp]> ls –l original symlink

-rw-r--r-          2 gast          users          0 Sep 14 15:09 original

lrwxrwxrwx          1 gast          users          8 Sep 14 15:19 symlink -> original

Symbolische Links werden durch ein »l« in den Zugriffsrechten gekennzeichnet.

Pipe

Mehrere Kommandos können zu einer Kette verbunden werden. Dabei werden die Daten von einem Kommando zum nächsten dieser Kette weitergereicht. Das Bindeglied zwischen den einzelnen Kommandos bilden sogenannte pipes.

Pipes werden vom Betriebssystem angelegt und existieren nur, solange die Kommandokette abgearbeitet wird.

[gast]>ls | grep "e" | sort

scripte users texte

Die Ausgabe des Kommandos ls wird über eine pipe (symbolisiert durch den vertikalen Strich | ) an das Kommando grep und von dort an das Kommando sort weitergegeben.

 

named pipe

Gegenüber der »normalen« pipe hat die named pipe einen Namen und ist als Datei im Dateisystem eingetragen. Sie ist in einem beliebigen Verzeichnis als Datei (mit Dateinamen) des Dateityps pipe angelegt. Eine named pipe kann mit dem Kommando /etc/mknod angelegt werden. Das folgende Kommando legt eine named pipe mit dem Namen FIFO an. Ein »p« kennzeichnet diesen Dateityp in den Zugriffsrechten.

[tmp]>mknod FIFO p

[tmp]>ls -l FIFO

prw-r--r-- 1 gast users 0 Aug 1 15:36 FIFO

Über eine solche Pipe können zwei beliebige Prozesse (Kommandos) miteinander kommunizieren. Dabei schreibt ein Prozeß Daten in die pipe, und ein anderer Prozeß liest Daten aus der pipe. Diese beiden Prozesse müssen nicht miteinander verwandt sein, sie können von verschiedenen Benutzern und an verschiedenen Terminals gestartet werden.

Beispiel:

Erstes Terminal  ( Umschalten mit Alt + F1 )

[tmp]> sort /etc/passwd > /tmp/FIFO

Zweites Terminal  ( Umschalten mit Alt + F2 )

[tmp]> grep "usr" < /tmp/FIFO

games:*:12:100:games:/usr/games

man:*:13:15:man:/usr/man

 

3. Verzeichnisstruktur

/

Das Verzeichnis stellt die „Wurzel“ (englisch „root“), also den Ursprung des Linux-Verzeichnisbaums dar. Es ist nicht zu verwechseln mit dem Verzeichnis „/root“ also dem Verzeichnis des Administrators „root“.

 

/boot

Das Verzeichnis boot enthält neben dem startbaren Linux-Kernel „vmlinuz“ auch bei der Installation von LILO erstellte Sicherheitskopien des Boot-Sektors der Festplatte (boot.xxxx), die zur Restauration eines beschädigten Boot-Sektors verwendet werden können.

 

/cdrom

Der übliche Mount-Point eines CD-ROM-Laufwerks unter Linux:

mount -o ro -t iso9660 /dev/cdrom /cdrom

 

/dev

Unter /dev finden Sie alle Geräte („devices“), die von Linux angesprochen werden können. Es ist üblich, daß alle Geräte vordefiniert sind, also auch Hardware, die bisher überhaupt nicht im System vorhanden ist. Diese teilen sich in sogenannte“block-devices“ und „character-devices“ auf. Block-Devices sind alle Speichermedien, wie IDE-, SCSI-Festplatten oder CDROM-Laufwerke(/dev/hda1, /dev/sda1). Unter Character-Devices sind alle anderen Peripheriegeräte zusammengefaßt, wie zum Beispiel Soundkarten (/dev/audio, dev/dsp), Mäuse und Terminals (/dev/tty?) und Terminalfenster (/dev/ttyp?)

 

/etc

In diesem Verzeichnis sind wichtige Dateien zur Systemkonfiguration abgelegt:

conf.modules: Konfigurationsdatei der Kernel-Module

fstab: Dateisystemtabelle mit allen mountbaren Partitionen

group: verwaltet Gruppenzugehörigkeiten der Benutzer

hosts: Manuelle Zuordnung von Rechnernamen zu IP-Adressen. Dies ist nur nötig, wenn keine Verbindung zu einem Name-Server besteht

inetd.conf: Konfiguration der verwendeten Internet-Dienste, wie Telnet, FTP, Finger, Systat, Netstat

inittab: Konfigurationsdatei für den Init-Prozeß. Hier können Sie unter anderem festlegen, ob Sie Ihr Linux als Single- oder als Multi-User-System betreiben wollen

lilo.conf: Konfigurationsdatei des Boot-Managers LILO

passwd: Früher waren in dieser Datei die Paßwörter der Benutzer enthalten. Mittlerweile dient sie nur noch als Benutzerdatenbank, die die grundlegenden Benutzerparameter enthält

printcap: Einstellungen der im System installierten Drucker

profile: Systemweites Login-Skript der Kommandozeileninterpreter (Shells)

rc.config: zentrale Konfigurationsdatei des Systems

shadow: Dieses Verzeichnis enthält die Paßwörter der Benutzer in verschlüsselter Form

XF86Config: Einstellungen des lokalen X-Servers

 

/floppy

Unter /floppy sollte normalerweise das 3,5“-Laufwerk des Rechners gemountet werden.

 

/home

Beinhaltet die privaten Verzeichnisse aller Benutzer mit Ausnahme des Super-Users. Meist wird /home auf einer separaten Partition angelegt, um bei Beschädigung des Dateisystems einen Datenverlust zu vermeiden.

 

/lib

Hier sollten alle dynamisch gelinkten Systembibliotheken (shared objects) zu finden sein. Diese werden folgendermaßen bezeichnet: <Bibliotheks-Name>.so.<Versionsnummer>.

/lib/modules/<Kernel-Version>

Dieses Verzeichnis beinhaltet Kernel-Module zur Unterstützung bestimmter Hardware. Alle verfügbaren Module befinden sich in einem mit der Kernel-Version gekennzeichneten Unterverzeichnis. Diese sind wiederum nach Hardware-Gruppen gruppiert: block, cdrom, fs, misc, net, scsi.

 

/lost+found

Dabei handelt es sich um das ,Fundbüro" einer Ext2fs-Partition. Wann immer beim Check der Partition Fehler auftreten, werden Dateien, die nicht zuzuordnen sind, in diesem Verzeichnis abgelegt. Wenn Sie eine Partition mit dem Befehl mke2fs" erzeugen, wird dieses Verzeichnis automatisch generiert

 

/mnt

wird als temporärer Mount-Point für CD-ROM-Laufwerke oder Wechsehnedien verwendet.

 

/opt

ist optionalen Progranimpaketen vorbehalten. Hier werden auch die beiden Linux-Desktops KDE und GNOME installiert

 

/proc

ist das Prozeß-Dateisystem," das als Schnittstelle zur Abfrage von Kernel-Parametern dient Zu jedem laufenden Prozeß wird ein Unterverzeichnis /proc/ <Prozeß-ID> erzeugt, indem sich alle zugehörigen Informationen des Betriebssystems aus den folgenden (wichtigsten) Dateien abrufen lassen:

cmdline: enthält die Kommandozeile des Prozesses, sofern dieser nicht ausgelagert wurde

cwd: gibt einen Link zu dem Arbeitsverzeichnis der jeweiligen Programmes an und kann über cd /proc/<Prozeß-ID>/cwd; /bin/pwd ermittelt werden

exe: ist ein Zeiger auf das ausgeführte Programm und liefert die Position auf dem Datenträger im Format [device]:inode zurück. Durch den Aufruf /proc/<Prozeß-ID>/exe kann eine Kopie des bestehenden Prozesses gestartet werden

maps: enthält den vom Programm belegten Speicherbereich und dessen Zugriffsrechte

root: ein Link auf das root-Dateisystem

stat: Prozeßstatus, der unter anderem von dem Utility ps verwendet wird.

cpuinfo: enthält die CPU-Informationen

devices: listet alle Characterund Block-Devices auf

dma: listet alle verwendeten ISA-DMA-Kanäle auf

filesystems: enthält alle Datei systeme, die von dem laufenden Kernel erkannt werden. Eignet sich zur Fehlerdiagnose bei scheinbar unbekannten Dateisystemen bei Verwendung von mount

interrupts: zeigt die belegten Interrupts an

ioports: alle Schnittstellen und Geräte samt des verwendeten Ein- und Ausgabe-Adreßbereichs

kcore: ist ein Abbild des physikalischen Speichers (+ 4 KB) und kann in bestimmten Fällen

zum Debuggen des Kernels benutzt werden

meminfo: In der Datei meminfo ist die aktuelle Speicherbelegung des Systems abgelegt

net/: In diesem Proc-Unterverzeichnis sind alle wichtigen Netzwerk-Informationen, etwa IP-Adressen oder Debugging-Informationen für IPX-, TCP-, UDP-Protokolle hinterlegt

pci: listet alle beim Systemstart gefundenen PCI-Geräte auf

scsi/: Dieses Unterverzeichnis enthält alle Treiber- und Host-Informationen der angeschlossenen SCSI-Geräte

 

/sbin

Dieses Verzeichnis beinhaltet Systemprogramme und Utilities, die beim System-Start benötigt werden. Die hier befindlichen Befehle sind dem System-Administrator vorbehalten

 

/sbin/init.d

enthält die Boot-Skripte. Ist eine dieser Dateien beschädigt oder fehlerhaft, ist es möglich, daß Linux nicht mehr gestartet werden kann. Daher sollten die Skripte nur von den dafür vorgesehenen Konfigurations-Utilities durchgeführt werden.

 

/tmp

Dieses Verzeichnis dient ähnlich dem Windows tmp-Verzeichnis zur Aufnahme temporärer Dateien.

 

/usr

Neben und /home ist /usr das dritte Verzeichnis, das auf einer separaten Partition eingerichtet werden sollte. Da in diesem Verzeichnis die gesamte Anwendungs-Software installiert wird, sollten Sie den Platz auf dieser Partition großzügig bemessen.

 

/usr/bin

Dieses Verzeichnis enthält alle zur Distribution gehörigen ausführbaren Programme.

 

/usr/doc

Hier befinden sich diverse Hilfstexte als TeX- und ASCII-Dokumente sowie die Sammlung der Linux-How-Tos, die zu fast allen Fragen rund um Linux Antworten parat haben. Falls Sie zu einem Programm keinen „man page“, finden, lohnt sich immer ein Blick in dieses Verzeichnis.

 

/usr/include

Header-Dateien zur C+, C++-Programmentwicklung.

 

/usr/lib

Hier befinden sich dynamisch gelinkte Bibliotheken (*.so.*) und Bibliothek-Archive (*.a), die von der installierten Software benötigt werden.

 

/usr/local

Dieses Verzeichnis enthält alle Dateien, die nicht zur Standard-Distribution gehören. Die Unterverzeichnisse haben die gleiche Struktur wie die im übergeordneten Verzeichnis /usr.

 

/usr/man

Enthält die Hilfstexte (manual pages) aller ordentlich dokumentierten Programme , die sich mit man <Sektion> <Programmname>, aufrufen lassen.

 

/usr/sbin

.Privatbefehle, des Systemadministrators, die nicht beim Systemstart benötigt werden.

 

/var

Dieses Verzeichnis dient zur Aufnahme von Konfigurationsdateien. Neben Dateien, die je nach installierter Software unterschiedlich sein können, finden Sie unter /var/adm die Systemverwaltung der installierten Software-Pakete der Distribution, Installations-Skripte und diverse Voreinstellungen. Treten Probleme beim Systemstart oder bei der Konfiguration des HTTP-Servers auf, finden Sie die protokollierten Fehlermeldungen unter /var/log.

 

K O M M A N D O  -  R E F E R E N Z

Erläuterungen:

  • Datei bezeichnet eine Datei mit oder ohne Verzeichnisspezifikation, mit Jokerzeichen auch mehrere Dateien. In aller Regel läßt sich Datei auch durch eine Umleitung mit < oder | ersetzen.

  • Verzeichnis bezeichnet einen relativen oder absoluten Verzeichnisnamen, mit Jokerzeichen auch mehrere Namen.

  • [ ] bedeutet, daß der Term zwischen den Klammern optional ist.

  • { } bedeutet, daß genau einer der Terme zwischen den Klammern anwendbar ist.

  • Muster ist ein String von Charakters wie etwa »TxchBlafasel«.

  • Ausdruck ist ein normaler oder erweiterter Ausdruck entsprechend »ed«. Die recht komplexe Syntax erfahren Sie über »man ed« oder »man grep«.

  • Modus sind die Zugriffsrechte auf eine Datei:

Oktale Angabe von Modus:
3- oder 4stellige Oktalziffern - zum Beispiel »744« - in der Reihenfolge Eigentümer, Gruppe, andere.
Die einzelnen Ziffern errechnen sich durch Addition von Lesen (»4«), Schreiben (»2«) und Ausführen (»1«). Bei einer vierten, führenden Ziffer wird das Ausführen der Datei mit den Rechten des Dateibesitzers erlaubt: »4« erlaubt das Ausführen mit den Rechten des Eigentümers (Set-UID). »2« erlaubt das Ausführen mit den Rechten der Gruppe (Set-GID).

Buchstaben-Angabe von Modus:
Dem Eigentümer (»u«), der Gruppe (»g«), anderen (»o«) oder allen (»a«) werden mit einem Operator ein oder mehrere Rechte zugewiesen. Gültige Operatoren sind dabei das Zuweisen (»=«), Setzen (»+«) und Entziehen (»-«). Gültige Rechte sind das Lesen (»r«), Schreiben (»w«), Ausführen (»x«) und das Ausführen mit den Rechten des Besitzers (SetID, »s«),
Beispiel für eine Rechte-Vergabe: »u=rwx, g=rx, o-w« erlaubt dem Eigentümer das Lesen, Schreiben und Ausführen. Der Gruppe wird das Lesen und Ausführen gestattet. Allen anderen wird das Recht zum Schreiben entzogen.

 

Kommandos für Verzeichnisse

 

 

ls

ls [-abcdfiklmnpqrtuxABCFGLNQRSX1] [-I Muster] [Verzeichnis] [Datei]

Listet den Inhalt eines Verzeichnisses auf

 

 

-a

(all) listet auch Dateien, die mit ».« beginnen

-b

zeigt nichtdruckbare Zeichen in Dateinamen als Backslash-Sequenzen mit alphabetischen oder oktalen Werten wie bei C

-c

sortiert Listen nach der Zeit der letzten Statusänderung

-d

zeigt Unterverzeichnisse wie normale Dateien statt ihres Inhalts

-f

sortiert Liste nach der gespeicherten Reihenfolge auf dem Datenträger

-i

zeigt die Inode-Nummer zu jeder Datei

-k

gibt die Dateigröße in Kilobyte an

-l

(long) zeigt auch Typ, Rechte, Anzahl der Hardlinks, Besitzer, Gruppe, Größe in Byte und Veranderungsdatum

-m

listet Dateinamen horizontal, durch Kommata getrennt

-n

zeigt Benutzer und Gruppe mit ID anstelle der Namen

-p

hängt ein »/« an jeden Verzeichnisnamen

-q

zeigt Fragezeichen anstelle von nicht druckbaren Zeichen

-r

(reverse) listet in umgekehrter Reihenfolge

-t

sortiert nach Veränderungsdatum anstelle des Namens

-u

sortiert nach letzter Zugriffszeit anstelle der Änderungszeit (zusammen mit –t)

-x

listet in horizontal sortierten Spalten

-A

listet alle Dateien außer ».« und »..«

-B

(backup) ignoriert Dateien mit der Endung »~«

-C

listet in vertikal sortierten Spalten

-F

hängt Typ-Symbole an die Dateinamen

-G

unterdrückt Anzeige der Gruppe bei -l

-L

listet den Inhalt der symbolisch gelinkten Verzeichnisse anstelle des Link-Files

-N

listet Dateinamen ohne Anführungszeichen

-Q

listet Dateinamen in Anführungszeichen

-R

(recursive) listet den Inhalt aller Unterverzeichnisse rekursiv

-S

(size) sortiert nach der Dateigröße

-X

sortiert alphabetisch nach der Dateiendung

-1

Ausgabe einspaltig

-l Muster

ignoriert Dateien mit »Muster« im Namen

Beispiel:

»Is -IR«

Listet - vom aktuellen Verzeichnis beginnend - Dateien, Unterverzeichnisse und die Dateien in den Unterverzeichnissen mit allen Angaben auf

 

 

mkdir

mkdir [-p] [-m Modus] Verzeichnis

Erzeugt ein Verzeichnis

 

 

-m Modus

setzt die Rechte von »Verzeichnis« auf »Modus«, der wie beim Kommando »chmod« angegeben wird (Standard ist »0777«, minus der Bits von »umask«)

-p

nicht existierende Eltern-Unterverzeichnisse werden angelegt

Beispiel:

»mkdir -m 0750 test«

Erzeugt das Verzeichnis »test« im aktuellen Verzeichnis mit den Rechten »-rwxr-x--«

 

 

rmdir

rmdir [-p] Verzeichnis

Löscht leere Verzeichnis»

 

 

-p

löscht Verzeichnisse rekursiv

Beispiel:

»rm test«

Löscht das Verzeichnis »test« im aktuellen Verzeichnis

 

 

du

du [-abcklsxDLS] [Verzeichnis ...]

Zeigt den verbrauchten Plattenplatz verzeichnisweise

 

 

-a

(all) zeigt den Platzbedarf aller Dateien

-b

zeigt den Platzbedarf in Byte

-c

zeigt den summierten Platzbedarf

-k

gibt den Platzbedarf in Kilobytes an, unabhängig von der Umgebungsvariablen POSIXLY_CORRECT

-l

zählt auch die Größe der Hardlinks

-s

gibt nur die Summe für jedes Verzeichnis an

-x

ignoriert Verzeichnisse in anderen Dateisystemen

-D

verfolgt symbolische Links, wenn diese als Kommandozeilenargument übergeben werden

-L

symbolischen Links werden durch den Platzbedarf des referenzierten Verzeichnisses ersetzt

-S

zeigt den Platzbedarf jedes Verzeichnisses ohne Unterverzeichnisse einzeln an

Beispiel:

»du -s«

Zeigt den benutzten Platz für jedes Verzeichnis summiert an

 

 

pwd

pwd

Zeigt den Namen des aktuellen Verzeichnisses (print work directory)

 

 

Kommandos für Dateien

 

cp

cp [-abdfilprsuvxPRS] [-V {numbered,existing,simple}] Quelle Ziel

Kopiert Dateien

-a

(archiv) entspricht »-dpR«

-b

(backup) sichert Dateien vor dem Überschreiben

-d

(no-dereference) kopiert die Links und nicht die Dateien, auf die der Link zeigt

-f

(force) gleichnamige Dateien im Zielverzeichnis werden ohne Nachfrage überschrieben

-i

(interactive) erwartet Bestätigung vor dem Überschreiben

-l

(link) erzeugt Links anstelle von Kopien

-P

(path) die Quelldateien werden mit Pfad relativ zum Ziel kopiert

-p

(preserve) weist der Zieldatei die Attribute der Quelldatei zu (nicht SUID- und SGID-Bits)

-r

kopiert die Dateien der Unterverzeichnisse mit

-s

(symbolic link) macht symbolische Links anstelle von Kopien

-u

(update) überschreibt Ziel- nur durch neuere Quelldateien

-v

(verbose) ausführliche Meldungen

-x

(one-file-system) läßt Unterverzeichnisse anderer Dateisysteme aus

-R

(recursive) rekursives Kopieren

-S

(suffix) sichert die Dateien vor dem Überschreiben durch Anhängen von »~«

-V {numbered / existing/simple}

(version-control) erhält frühere Versionen einer Datei durch Backups. Default ist »existing«. »-V« besitzt eine höhere Priorität als die Umgebungsvariable »VERSION-CONTROL«

Beispiel:

»cp -b test/* /home/oskar/test.backup«

Kopiert alle Dateien im Unterverzeichnis »test«, ins Verzeichnis »/home/oskar/test.backup« und erstellt dort Sicherungskopien

 

 

mv

mv [-bfiuvS] [-V {numbered,existing,simple} Quelle Ziel

Verschiebt oder benennt Dateien/Verzeichnisse um

-b

(backup) sichert Dateien vor dem Überschreiben

-f

(force) gleichnamige Dateien im Zielverzeichnis werden ohne Nachfrage überschrieben

-i

(interactive) erwartet Bestätigung vor dem Überschreiben

-u

(update) überschreibt Ziel- nur durch neuere Quelldateien

-v

(verbose) ausführliche Meldungen

-S

(suffix) sichert die Dateien vor dem Überschreiben durch Anhängen von »~«

-V {numbered/ existing/simple}

(version-control) erhält frühere Versionen einer Datei durch Backups. Default ist »existing«. »-V« besitzt eine höhere Priorität als die Umgebungsvariable VERSION-CONTROL«

Beispiel:

»mv -i test/* /home/oskar/test.backup«

Verschiebt alle Dateien im Unterverzeichnis »test« ins Verzeichnis »/home/oskar/test.backup« und fragt vor jedem Überschreiben nach

     

 

 

cat

cat [-benstvAET] [Datei]

Liest beliebige Dateien und schreibt sie zur Standardausgabe. Häufig wird die Ausgabe in Programme oder Dateien umgelenkt

 

 

-b

alle nicht leeren Zeilen werden nummeriert

-e

entspricht »-vE«

-n

alle Zeilen werden nummeriert

-s

aufeinanderfolgende leere Zeilen werden zu einer leeren Zeile zusammengefaßt

-t

entspricht »-vT«

-v

alle Kontrollzeichen außer TAB und LF werden angezeigt

-A

entspricht »-vET«

-E

hängt ein $ an jedes Zeilenende an

-T

Tabulatoren werden als ^l angezeigt

Beispiel:

»cat -e test > test.neu«

Die Datei »test« wird gelesen, an jedes Zeilenende ein »$« angehängt und das Ganze in die Datei »test.neu« geschrieben

 

 

head

head [-c N[{b,k,m}]] [-n N] [Datei]

Liest den ersten Teil einer Datei und schreibt ihn zur Standardausgabe

-c N

zeigt die ersten »N« Byte

-c N{b,k,m}

zeigt die ersten »N« 512-Byte-, 1-Kilobyte- oder 1-Megabyte-Blöcke

-n N

zeigt die ersten »N« Zeilen

Beispiel:

»head -n 5 test.txt«

Zeigt die ersten fünf Zeilen der Datei »test.txt«

 

tail

tail [-c N[{b,k,m}]] [-n N] [-f] [Datei]

Liest den letzten Teil einer Datei und schreibt ihn zur Standardausgabe

 

 

-c N

zeigt die letzten »N« Byte

-c N{b,k,m}

zeigt die letzten »N« 512-Byte-, 1-Kilobyte- oder 1-Megabyte-Blöcke

-f

das Anwachsen von »Datei« wird überwacht; Abbruch nur per [Strg][C] möglich

-n N

zeigt die letzten »N« Zeilen

Beispiel:

»tail -c 5k test.txt«

Zeigt die letzten 5 Kilobyte der Datei »test.txt«

 

 

cmp

cmp [-cls] Datei1 [Datei2]

Vergleicht 2 Dateien Byte-weise und meldet Position und Zeilennummer der Unterschiede. Wird Datei2 nicht angegeben liest cmp von der Standardeingabe

 

 

-c

die abweichenden Zeichen werden angezeigt

-l

(list) gibt die Position und den oktalen Wert aller differierenden Zeichen in einer Liste aus

-s

(silent) in der Standardausgabe wird nichts ausgegeben

Exit-Status von cmp:

0 = Dateien stimmen überein

1 = Dateien differieren

2 = ein Fehler ist aufgetreten

Beispiel:

»cmp -c test.neu test.alt«

Die Dateien »test.neu« und »test.alt« werden verglichen, wobei die Unterschiede zeichenweise über die Standardausgabe angezeigt werden

 

rm

rm [-firvR] [-] Datei

Löscht Dateien. Fehlt die Schreibberechtigung für eine Datei, wird um Bestätigung nachgefragt

-f

(force) keine Nachfragen, keine Fehlermeldungen

-i

(interactive) erwartet Bestätigung

-r

(recursive) Unterverzeichnisse und deren Dateien werden auch gelöscht

-v

(verbose) ausführliche Meldungen

-

die folgenden Argumente sind keine Optionen. So können Dateien, die mit »-« beginnen, gelöscht werden

Beispiel:

»rm - -test.tif«

Die Datei »test.tif« wird gelöscht

 

 

ln

ln [-bfisv] [-V {numbered,existing,simple}] Quelle [Ziel]

Erzeugt Links auf Dateien oder Verzeichnisse

 

 

b

sichert Dateien, statt sie zu löschen (mit Option »-f«)

-f

(force) löscht bestehende, gleichnamige Dateien

-i

(interactive) fragt vor dem Löschen nach Bestätigung

-s

(symbolic) macht symbolische Links anstelle von harten

-v

(verbose) ausführliche Meldungen

-V {numbered/ existing/simple}

(version-control) erhält frühere Versionen einer Datei durch Backups. Default ist »existing«. »-V« besitzt eine höhere Priorität als die Umgebungsvariable »VERSION_CONTROL«

Beispiel:

»In -s /dev/hdc /dev/cdrom«

Ein symbolischer Link, »/dev/cdrom« wird auf »/dev/hdc« erzeugt

 

 

more

more [-cdflpsu] [-Zeilenzahl] [+/ Muster] [+ Zeilennummer] [Datei]

Zeigt Dateien Bildschirmseiten-weise an. Arbeitet mit Benutzereingaben. (Hilfe mit [H]-Taste)

 

 

-d

gibt einen Hilfe-Prompt aus

-f

lange Textzeilen, die umbrechen, werden nicht mitgezählt

-l

ignoriert den Seitenvorschub ^L

-p und -c

verhindern Bildschirmscrolling auf verschiedene Weise

-s

zeigt mehrere Leerzeilen als eine an

-u

unterdrückt Unterstreichungen

-Zeilenzahl

spezifiziert den Bildschirm mit »Zeilenzahl«-Zeilen

+/ Muster

beginnt Darstellung zwei Zeilen vor dem ersten Auftreten von »Muster«

-Zeilennummer

beginnt die Ausgabe bei »Zeilennummer«

Beispiel:

»more test.txt«

Die erste Seite der Datei »test.txt« wird angezeigt. Vorblättern kann man mit [Leertaste], rückwärts mit [B] und beenden mit [Q]

 

 

grep

grep [-EFGbchilnsvwx] [[-e] {Muster, Ausdruck} | -f Dateiname] [Datei]

Sucht in Dateien nach regulären Ausdrücken und Mustern

 

 

-E

{Muster, Ausdruck} ist ein erweiterter regulärer Ausdruck

-F

(Muster, Ausdruck) ist ein Muster (String)

-G

(Muster, Ausdruck} ist ein regulärer Ausdruck

-b

listet auch die Position der Fundstellen

-c

meldet nur die Gesamtzahl der Fundstellen

-h

unterdrückt die Dateinamen vor jeder Fundstelle

-i

ignoriert Groß- und Kleinschreibung

-l

meldet nur Dateinamen mit Fundstellen

-n

listet Zeilennummern zu jeder Fundstelle

-s

(silent) keine Ausgabe außer Fehlermeldungen

-v

zeigt nur Zeilen, die »Ausdruck« nicht enthalten

-w

meldet nur Zeilen. in denen »Ausdruck« als komplettes Wort vorkommt

-x

meldet nur Zeilen, in denen »Ausdruck« als ganze Zeile vorkommt

-e {Muster, Ausdruck}

sucht nach »Muster« oder »Ausdruck«

-f Dateiname

»Dateiname« enthält die Such-Ausdrücke

Beispiel:

»grep "[eE]xtra" test.txt«

Durchsucht die Datei »test.txt« nach »extra« und »Extra«

 

 

fgrep

entspricht »grep –F«

Sucht in Dateien nach Mustern

 

 

egrep

entspricht »grep -E«

Sucht In Dateien nach erweiterten regulären Ausdrücken

 

 

find

find [Verzeichnis] [Verzeichnis...] [Übereinstimmungskriterium]

Sucht in einem oder mehreren Verzeichnissen und deren Unterverzeichnissen nach Dateien mit bestimmten Eigenschaften

 

 

-name Dateiname

nach »Dateiname« wird gesucht

-path Muster'

nach Dateien, deren Pfadname zu »Muster« paßt. wird gesucht

-perm Modus

nach Dateien, die exakt die Zugriffsrechte »Modus« haben, wird gesucht

-type Typ

nach Dateien, deren »Typ« »b« (block), »c« (character), »d« (directory), »p« (named pipe), »f« (regular), »l« (symbolic link) oder »s« (socket) ist, wird gesucht

-links N

nach Dateien mit »N« Links wird gesucht

-size N

nach Dateien, die »N« 512-Byte-Blöcke groß sind, wird gesucht

-user Benutzer

nach Dateien, die »Benutzer« gehören, wird gesucht

-atime N

nach Dateien, auf die in den letzen »N« Tagen zugegriffen wurde, wird gesucht

-mtime N

nach Dateien, die in den letzen »N«Tagen verändert wurden, wird gesucht

-newer Dateiname

nach Dateien. die neuer als »Dateiname« sind, wird gesucht

-print

gibt den/die vollständigen, mit Pfad qualifizierten Dateinamen als Suchergebnis aus (Default)

-fprint Dateiname

schreibt den/die vollständigen, mit Pfad qualifizierten Dateinamen als Suchergebnis in die Datei »Dateiname«

-exec Kommando \;

führt »Kommando« für jede gefundene Datei aus. »{}« symbolisiert bei Bedarf die gefundene Datei für »Kommando«

! Übereinstim-mungskriterium

Nicht-Operator negiert »Übereinstimmungskriterium«

Übereinstim-mungskriterium -o Übereinstim-mungskriterium

ODER-Operator überschreibt den Default-UND-Operator

\(Übereinstim-mungskriterien \)

Gruppieren von »Übereinstimmungskriterien«

Beispiel:

»find .! -name "test*" -exec ls –l{}\;«

Sucht - beim aktuellen Verzeichnis beginnend - alle Dateien, die nicht mit »test« beginnen, und zeigt den Dateinamen in der Langform von »ls«

 

 

 

 

Kommandos für »root« und Kommandos, die nur restriktiv

ausgeführt werden dürfen

 

passwd

passwd [[-luS] [-x Max] [-w Warn) Benutzerkennung] [-g[r] Gruppe]

ändert das Passwort eines Benutzers oder einer Gruppe

 

 

Benutzer-kennung

nur für »root« verfügbar; ohne Angabe von »Benutzerkennung«, kann das eigene Paßwort geändert werden

-x

setzt die maximale Lebenszeit des Benutzerpaßworts auf »Max« Tage; darin muß der Benutzer sein Paßwort ändern

-w

setzt die Vorwarnzeit für die Änderung des Benutzerpaßworts auf »Warn« Tage

-l

sperrt das Paßwort des Benutzers, er kann sich fortan nicht mehr einloggen

-u

hebt eine mit »-l« hergestellte Paßwortsperre wieder auf, das alte Paßwort ist wieder gültig

-S

Paßwort-Status des Benutzers wird angezeigt

-g

ändert oder vergibt ein Gruppenpaßwort an Gruppe

-gr

löscht das Gruppenpaßwort von Gruppe

 

 

chown

chown [-Rcfv] [Besitzer] [:.] [Gruppe] Datei

wechselt den Eigentümer der Datei. Nur dem Eigentümer der Datei und »root« gestattet

-R

(recursive) Unterverzeichnisse werden einbezogen

-c

(changes) es werden nur die tatsächlich geänderten Dateinamen gelistet

-f

(force) keine Fehlermeldungen

-v

(verbose) ausführliche Meldungen

Beispiel:

»chown oskar.users text.txt«

Setzt die Datei text.txt auf Besitzer »oskar« und Gruppe »users«

 

 

chmod

chmod [-Rcfv] Modus Datei

wechselt die Zugriffsrechte auf Dateien oder Verzeichnisse. Nur dem Eigentümer und »root« erlaubt

-c

(changes) es werden nur die Dateinamen gelistet, deren Rechte tatsächlich geänderten wurden

-f

(force) keine Fehlermeldungen

-v

(verbose) ausführliche Meldungen

-R

(recursive) Unterverzeichnisse werden einbezogen

Beispiel:

»chmod -f a-w test.txt«

Die Schreibrechte für die Datei »test.txt« werden dem Besitzer, der Gruppe und anderen entzogen; eventuelle Fehlermeldungen werden unterdrückt

 

 

newgrp

newgrp [Gruppe]

Wechselt die Gruppe des aktuellen Benutzers. Dieser muß Mitglied der Gruppe sein

 

wird »Gruppe« nicht spezifiziert, wird zur Gruppe zum Zeitpunkt der Anmeldung gewechselt

 

 

fsck

fsck [-ANRV] [-t Filesystemtyp] [-{a,r}] Filesystem

Prüft und repariert Dateisysteme

-A

alle in »/etc/fstab« eingetragenen Filesysteme werden geprüft

-N

Was-wäre-wenn-Modus

-R

läßt bei »-A« das Root-Filesystem aus

-V

(verbose) ausführliche Meldungen

-a

automatische Reparatur ohne Nachfragen

-r

interaktive Reparatur

-t Filesystemtyp

spezifiziert den Typ des Filesystemtyps analog dem »mount«-Kommando. Normalerweise holt »fsck« den Typ aus »/etc/fstab«

 

 

mkfs

mkfs [-V] [-t Filestemtyp [-{c, l Dateiname}] Filesystem [Blöcke]

Einrichten von Dateisystemen

 

 

-V

(verbose) ausführliche Meldungen

-t Filesystemtyp

spezifiziert den Typ des Filesystems analog dem »mount«-Kommando. Wenn nichts angegeben wird, holt »mkfs« den Typ aus »/etc/fstab«

-c

prüft vor der Einrichtung auf Bad Blocks

-l Dateiname

liest eine Bad-Block-Liste aus »Dateiname«

 

 

rm -d

rm -d Verzeichnis

Löscht Unterverzeichnisse mit dem »unlink«-Systemaufruf statt mit »rmdir«. (Danach ist eine Reparatur des Dateisystems mit »fsck« nötig!)

 

 

startx -- :1 -nolisten tcp Klappt nicht immer, aber man damit versuchen, einen 2.  X-Server (grafische Obefrfläche) zu starten, nach man nach  <strg>+<alt>+<F1> angemeldet hat.