Dieser Abschnitt bietet eine grobe Orientierung zur Linuxwelt für den Neueinsteiger. Sollten Sie Linux schon eine Weile nutzen, so können Sie Ihr Wissen testen.
Die ultimativen Referenzen für Debian sind im Debian-Dokumentations-Projekt
(DDP)
zu finden. Viele dieser Dokumente werden in
/usr/share/doc/
installiert. Man sollte auch in
/usr/share/doc-base/
schauen, dies enthält Verweise auf die
Dokumentation auf dem System. Man kann export
CDPATH=.:/usr/share/doc:/usr/src/local zu ~/.bash_profile
hinzufügen, um einfacher auf die Dokumentationsverzeichnisse zuzugreifen.
Das Linux-Dokumentations-Projekt
(LDP)
hat die maßgeblichsten allgemeinen Linux-Referenzen. Der
LDP-Inhalt wird gewöhnlich in /usr/share/doc/HOWTO/
installiert.
Man kann durch Dokumente auf lokalen und entfernten FTP-Servern mittels F9 im Midnight Commander (vergleiche Midnight Commander (MC), Abschnitt 4.3) navigieren.
In einem gewöhnlichen Linux-System gibt es sechs unabhängige Pseudo-Terminals. Man kann zwischen diesen durch gleichzeitiges Drücken von Alt und F1–F6 wechseln. Jedes Pseudo-Terminal erlaubt ein unabhängiges Einloggen. Das Mehrbenutzersystem ist eine großartige Unix-Eigenschaft und sehr suchterzeugend.
Es ist unter Unix eine gute Angewohnheit, sich für die meisten Arbeiten als normaler Nutzer anzumelden. Ich muss zugeben, dass ich den Administrationszugang (root) öfters als nötig der Einfachheit halber und aus Schlamperei verwendete.
Nun verwende ich regelmäßig einen gewöhnlichen Zugang mit den Kommandos sudo, super oder su -c um begrenzten root-Zugang zu erhalten.
Nach der Systeminstallation richte ich gewöhnlich einen normalen Nutzerzugang ein. Ist der Nutzername "pinguin", so wird
# adduser pinguin
ihn erzeugen.
Ich nutze das vigr-Kommando, um /etc/group
wie folgt
zu editieren:
adm:x:4:admin src:x:40:admin, debian, ... ...
Im standardmäßig installierten System, können Mitglieder der
adm-Gruppe viele Logdateien in /var/log/
lesen und
xconsole
nutzen. Der staff-Gruppe gehört
/home
an, was den Mitgliedern das Verwalten von Nutzerzugängen
erlaubt. Der src-Gruppe gehört /usr/src/
an, was zur
Kernelkompilation, etc. genutzt wird. Für die offizielle Bedeutung von
Nutzern und Gruppen vergleichen Sie Nutzer und
Gruppen
.
Ich persönlich verwende die adm-Gruppe für Nutzer, die
administrative Aufgaben erfüllen und das exklusive su
-Privileg
haben (vergleichen Sie "Warum GNU
su
nicht die wheel Gruppe unterstützt",
Abschnitt 9.2.2) und src für CVS (siehe Concurrent Versions System (CVS) – System für
simultane Versionen, Abschnitt 12.1).
Überprüfen Sie adduser
, addgroup
, vipw
,
vipw -s, vigr
und vigr -s für die
korrekte Konfiguration von Nutzern und Gruppen.
Wie nahezu jedes moderne Betriebssystem, das Dateien im Speicher zwischenspeichert, muss Linux richtig heruntergefahren werden, bevor der Rechner ausgeschaltet werden kann. Das entsprechende Kommando im Mehrbenutzerbetrieb ist:
# shutdown -h now
Im Einzelnutzermodus ist
# poweroff -i -f
zu verwenden. Warten Sie bis das System "System halted" ausgibt und schalten Sie danach aus. Wenn APM im BIOS und Linux aktiviert ist, schaltet sich der Rechner selbstständig aus. Man vergleiche Großer Speicher und automatisches Abschalten, Abschnitt 3.7.4 für Details.
Die Standard-Shell bash
besitzt einige Fähigkeiten zur Bearbeitung
von alten Eingaben (der History). Benutzen Sie einfach die Cursor-auf Taste um
alte Eingaben zurückzuholen und danach wie üblich die Cursor-Tasten. Andere
wichtige Tastenkombinationen sind:
Strg-U: Lösche die Zeile bis vor den Cursor Strg-D: Beende die Eingabe markieren mit linker Maustaste: Auswahl in die Zwischenablage kopieren (gpm) mittlere Maustaste: Einfügen der Zwischenablage an der Cursorposition (gpm) Strg-V TAB: Eingabe eines Tabulators ohne Expandierung.
In einer normalen Linux Konsole funktioniert nur die linke Strg-Taste wie erwartet.
Ein typisches Kommando wird durch die folgende Shell-Zeile ausgeführt:
$ LC_ALL=de ls -la
Hier wird das Programm ls
im Vordergrund ausgeführt, mit der für
Deutsch auf de gesetzten Umgebungsvariablen LC_ALL.
-la ist das Kommandozeilen-Argument und bewirkt eine detaillierte
Ausgabe. Wird die Kommandozeile mit dem &-Zeichen
abgeschlossen, so wird das Kommando im Hintergrund ausgeführt. Dies ermöglicht
es Nutzern, mehrere Programme in einer einzigen Shell zu starten.
Die Ausführung des Kommandos kann durch folgende Tastenkombinationen beeinflusst werden.
Strg-C: Beenden des Programms Strg-Z: Temporäres Unterbrechen des Programms Strg-S: Unterbrechen der Bildschirmausgabe Strg-Q: Ausgabe wieder aktivieren Strg-Alt-Entf: Neustarten/Beenden des Systems (siehe /etc/inittab)
Für das Management der Programmausführung vergleiche bash(1)
für
jobs, fg, bg und kill.
Die folgenden Kommandos sind für Unix-Systeme fundamental:
ls, ls -al, ls -d, pwd, cd, cd ~Benutzer, cd -, cat /etc/passwd, less, bg, fg, kill, killall, uname -a, type Kommandoname, sync, netstat, ping, traceroute, top, vi, ps aux, tar, zcat, grep, ifconfig, ...
Sie können mehr über diese Kommandos herausfinden, indem Sie sie in der Kommandozeile oder nach man bzw. info eingeben. Viele Linux Kommandos geben eine kurze Meldung zur Benutzung aus, wenn sie mit einer der folgenden Methoden gestartet werden:
$ Kommandoname --help $ Kommandoname -h
whatis Kommandoname gibt eine einzeilige Zusammenfassung zu jedem Kommando mit einer Handbuchseite auf dem System aus.
Das X-Window-System lässt sich von der Konsole mit
# exec startx
starten. Ein Rechtsklick auf den Hintergrund bringt eine Menüauswahl zum Vorschein.
Einige bedeutende Tastenkombinationen für die Linux-Konsole sind ("Plus", "Minus" beziehen sich auf den numerischen Ziffernblock):
Alt-F1 bis F6: Wechsel auf anderes Pseudo-Terminal Strg-Alt-F1 bis F6: Wechsel auf anderes Pseudo-Terminal (aus X-Windows, DOSEMU, etc.) Alt-F7: Wechsel zu X-Windows Strg-Alt-Minus: Ändern der Auflösung in X-Windows Strg-Alt-Plus: Ändern der Auflösung in X-Windows (umgekehrte Reihenfolge) Strg-Alt-Rücktaste: Beenden des X11-Server-Programms Alt-X, Alt-C, Alt-V: In üblichen Windows/Mac-Tastenkombinationen zum Ausschneiden, Kopieren und Einfügen wird die Strg-Taste durch Alt in einigen Programmen wie Netscape Composer ersetzt.
Der Midnight Commander (MC) ist ein GNU "Schweizer Armeemesser" für die Linux-Konsole und andere textbasierte Umgebungen.
# apt-get install mc
Danach sollten Sie ~/.bashrc
(oder /etc/bash.bashrc
,
was von .bashrc
verwendet wird) entsprechend der Handbuchseite
mc(1)
unter -P ändern. Dies bewirkt eine Änderung
des Arbeitsverzeichnisses von MC beim Beenden.
Befindet man sich in einem Terminal wie z.B. kon
oder
Kterm
für japanische Unterstützung, das verschiedene graphische
Zeichen unterstützt, so hilft eventuell das Hinzufügen von -a zu
MCs Kommandozeile bei Problemen.
$ mc
MC bietet für alle Dateioperationen Menüpunkte an, so dass nur minimaler Aufwand nötig ist.
Standardmäßig gibt es zwei Verzeichnisansichten mit Dateilisten. Ein anderer
nützlicher Modus ist das Setzen des rechten Fensters auf "Info", um
Dateizugriffsrechte und andere Informationen zu sehen. Es folgen einige
wichtige Tastenkombinationen. Mit einem laufenden gpm
-Daemon kann
man auch die Maus nutzen. (Stellen Sie sicher, dass Sie die Shift-Taste
drücken, um das normale Verhalten von Entfernen und Einfügen im MC zu
erhalten.)
cd
wechselt das Verzeichnis im dargestellten Fenster.
cp
- oder mv
-Programm und dem
Kommandozeilen-Editor genutzt werden.
Der interne Editor besitzt ein interessantes Entfernen-und-Einfügen-Schema. Drücken von F3 markiert den Start einer Auswahl, ein zweites F3 markiert das Ende der Auswahl und hebt diese hervor. Danach kann man den Cursor bewegen. Beim Betätigen von F6 wird der hervorgehobene Bereich an die Cursorposition verschoben. Drückt man F5, so wird der ausgewählte Bereich an die aktuelle Cursorposition kopiert und eingefügt. F2 sichert die Datei und F10 beendet den Editor. Die meisten Cursortasten funktionieren wie üblich.
Dieser Editor kann direkt mit einer Datei aufgerufen werden:
$ mc -e Datei $ mcedit Datei
Es handelt sich nicht um einen Mehr-Fenster-Editor, aber man kann mehrere Linux-Konsolen nutzen, um den selben Effekt zu erreichen. Um zwischen Fenstern zu kopieren, sind die Alt-Fn Tasten zum Wechseln der virtuellen Konsole und "Datei->Datei einfügen" oder "Datei->In Datei kopieren" zum Verschieben eines Teils einer Datei in eine andere zu verwenden.
Dieser interne Editor kann durch einen beliebig anderen externen Editor ersetzt werden.
Viele Programme nutzen die Umgebungsvariable EDITOR oder
VISUAL um zu bestimmen, welcher Editor zu verwenden ist. Sollten
Sie mit vim
nicht vertraut sein, setzen Sie diese auf
mcedit, indem Sie folgende Zeilen zu ~/.bashrc
hinzufügen:
... export EDITOR=mcedit export VISUAL=mcedit ...
Ich empfehle, diese wenn möglich auf vim zu setzen. Die Verwendung der vi(m)-Kommandos ist das richtige Vorgehen, da sie stets in einer Linux/Unix-Umgebung zu finden sind.
Dies ist ein guter Viewer und prima dazu geeignet, Wörter in Dokumenten zu
suchen. Ich nutze dies immer für Dateien im
/usr/share/doc
-Verzeichnis. Dies ist der schnellste Weg, um sich
einen Überblick über die mehr als umfangreiche Linux-Dokumentation zu
verschaffen. Der Dateibetrachter kann direkt mittels
$ mc -v Datei
gestartet werden. (Es ist zu beachten, dass einige Pakete die Regeln verletzen
und ihre Dokumentation noch unter /usr/doc/
ablegen.)
Drückt man Enter für eine Datei, so wird ein entsprechendes Programm den Inhalt der Datei verarbeiten. Dies ist eine sehr nützliche Eigenschaft von MC.
ausführbare Dateien: Kommando ausführen man, html Dateien: Darstellen des Inhalts mit Dateibetrachter tar, gz, rpm Dateien: Inhalt als Unterverzeichnis einblenden
Damit diese Eigenschaften funktionieren, dürfen betrachtbare Dateien nicht
ausführbar sein. Ihr Status kann mittels des chmod
-Kommandos und
dem Dateimenü von MC geändert werden.
MC kann zum Zugriff auf Dateien übers Internet mittels FTP genutzt werden. Aktivieren Sie mittels F9 das Menü und drücken Sie dann `p' für das virtuelle FTP-Dateisystem. Eine URL wird in der Form Benutzername:Passwort@hostname.domainname eingegeben und MC stellt daraufhin das entfernte Verzeichnis wie ein lokales dar.
Jede Datei und jedes Verzeichnis eines GNU/Linux-Systems ist mit einem Nutzer verknüpft, der sie/es besitzt und einer Gruppe, zu welcher sie/es gehört. Alle Dateiinformationen werden in einem Inode genannten Datensatz gespeichert.
Die Zugriffsrechte von Dateien und Verzeichnissen sind separat für die folgenden drei Nutzerkategorien definiert:
Bei Dateien sind je folgende Rechte möglich:
Für Verzeichnisse sind je folgende Rechte möglich:
Das ausführbar-Recht des Verzeichnisses bezieht sich nicht nur auf das Lesen von Dateien im entsprechenden Verzeichnis, sondern auch auf das Bestimmen der Attribute wie Größe und Modifizierungszeit.
Um diese und einige andere Informationen zu Dateien und Verzeichnissen zu
erhalten, kann ls
genutzt werden. Vergleiche ls(1)
.
Wird ls
mit der -l-Option gestartet, so werden die
folgenden Informationen in der folgenden Reihenfolge angezeigt:
Um den Besitzer einer Datei zu ändern, wird chown
von root
genutzt. Vergleiche chown(1)
. Zum Ändern der Gruppe einer Datei,
wird chgrp
vom Besitzer der Datei oder root verwendet. Vergleiche
chgrp(1)
. Das Ändern der Zugriffsrechte von Dateien oder
Verzeichnissen erfolgt mit chmod
durch den Dateibesitzer oder
root. Vergleiche chmod(1)
.
Um z.B. einen Verzeichnisbaum dem Nutzer nutzer und der Gruppe gruppe zuzuordnen, ist als root folgendes auszuführen:
# cd /Pfad/zum/Verzeichnis # chown -R nutzer:gruppe . # chmod -R ug+rwX,o=rX .
Es gibt drei weitere spezielle Zugriffsbits:
Hier werden in der Ausgabe von ls -l
diese Bits großgeschrieben,
wenn die ausführbar-Bits, die in der Ausgabe nicht mit dargestellt werden
können, nicht gesetzt sind.
Das Setzen der set user ID einer ausführbaren Datei, erlaubt es einem Nutzer, die Datei mit den Rechten und der ID des Besitzers der Datei auszuführen (z.B. root). Ähnlich erlaubt das Setzen des set group ID-Rechts einer ausführbaren Datei, dass diese mit der Gruppen-ID und den Gruppenrechten der Datei (z.B. root) gestartet wird. Dies kann zu Sicherheitsproblemen führen, deshalb erfordert das Setzen dieser Bits spezielle Vorsicht.
Setzen der set group ID eines Verzeichnisses aktiviert das BSD-artige Dateierzeugungs Schema, bei welchem alle im Verzeichnis erstellten Dateien der Gruppe group des Verzeichnisses angehören.
Das Setzen des Sticky Bits eines Verzeichnisses verhindert das
Entfernen einer Datei im Verzeichnis durch einen Nutzer, der nicht der Besitzer
ist. Um den Inhalt einer Datei in einem für alle oder auch für
Gruppenmitglieder schreibbaren Verzeichnis wie /tmp
zu sichern,
genügt es nicht das schreibbar-Recht der Datei zu entfernen,
sondern es muss auch das Sticky Bit des Verzeichnisses gesetzt
werden. Andernfalls kann die Datei entfernt werden und eine neue Datei mit
gleichem Namen durch andere Nutzer mit Schreibrechten im Verzeichnis angelegt
werden.
Es folgen einige interessante Beispiele für Zugriffsrechte von Dateien.
$ ls -l /etc/passwd /etc/shadow /dev/ppp /usr/sbin/pppd crw-rw---- 1 root dip 108, 0 Jan 18 13:32 /dev/ppp -rw-r--r-- 1 root root 1051 Jan 26 08:29 /etc/passwd -rw-r----- 1 root shadow 746 Jan 26 08:29 /etc/shadow -rwsr-xr-- 1 root dip 234504 Nov 24 03:58 /usr/sbin/pppd $ ls -ld /tmp /var/tmp /usr/local /var/mail /usr/src drwxrwxrwt 4 root root 4096 Feb 9 16:35 /tmp drwxrwsr-x 10 root staff 4096 Jan 18 13:31 /usr/local drwxrwsr-x 3 root src 4096 Jan 19 08:36 /usr/src drwxrwsr-x 2 root mail 4096 Feb 2 22:19 /var/mail drwxrwxrwt 3 root root 4096 Jan 25 02:48 /var/tmp
Es gibt drei Arten von Zeitmarken für GNU/Linux Dateien:
Es ist zu beachten, dass ctime nicht der Zeitpunkt der Dateierzeugung ist.
Beachten Sie, dass selbst ein einfacher Lesezugriff auf eine Datei in einem
GNU/Linux-System normalerweise eine Schreiboperation erfordert, um die
atime-Zeit in der Inode anzupassen. Das
Mounten eines Dateisystems mit der noatime-Option unterlässt dies
und beschleunigt den Dateizugriff beim Lesen. Vergleiche
mount(8)
.
Es gibt zwei Methoden, um eine Datei foo mit einem anderen Dateinamen bar zu verknüpfen.
Man vergleiche das folgende Beispiel für Änderungen der Anzahl der Links und
die feinen Unterschiede beim Anwenden des rm
-Kommandos.
$ echo "ursprünglicher Dateiinhalt" > foo $ ls -l foo -rw-r--r-- 1 osamu osamu 4 Feb 9 22:26 foo $ ln foo bar # hard link $ ln -s foo baz # symlink $ ls -l foo bar baz -rw-r--r-- 2 osamu osamu 4 Feb 9 22:26 bar lrwxrwxrwx 1 osamu osamu 3 Feb 9 22:28 baz -> foo -rw-r--r-- 2 osamu osamu 4 Feb 9 22:26 foo $ rm foo $ echo "neuer Dateiinhalt" > foo $ cat bar ursprünglicher Dateiinhalt $ cat baz neuer Dateiinhalt
Alle symbolischen Links haben die Dateizugriffsrechte "rwxrwxrwx" wie im obigen Beispiel gezeigt und deren Zugriffsrechte werden durch die Datei auf die sie zeigen diktiert.
Das Verzeichnis .
verweist auf das Verzeichnis in dem es sich
befindet, die Anzahl der Links für ein neues Verzeichnis beginnt bei 2. Das
Verzeichnis ..
verweist auf das übergeordnete Verzeichnis, die
Anzahl der Links eines Verzeichnisses erhöhen sich mit dem Erzeugen neuer
Unterverzeichnisse.
Es gibt viele gute Referenzen zum Einstieg in Unix. O'Reilly's Bücher sind
gewöhnlich gute Anleitungen für alle Computerthemen. Das LDP-Dokument Linux Tipps HOWTO
ist eine andere nützliche Informationsquelle. Man vergleiche Unterstützung für Debian, Kapitel 15 für weitere
Ressourcen.
Debian-Referenz
CVS, Mon 3. Apr 2005, 22:57:58 UTCosamu@debian.org
tux-master@web.de