Kapitel 1. Erste Schritte mit Linux
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Linux-Systemadministration bedeutet für verschiedene Menschen unterschiedliche Dinge. In diesem Buch geht es um die täglichen Aufgaben, die ein Linux-Systemadministrator (sysadmin) erledigen muss, um die Benutzer zu verwalten und zu unterstützen, den Systemzustand aufrechtzuerhalten, bewährte Methoden für die Sicherheit zu implementieren, Software zu installieren und Hausarbeiten zu erledigen. Dieses Kapitel befasst sich mit der Linux-Installation, der Ersteinrichtung und der Erkundung des Systems mithilfe einfacher Shell-Befehle.
Du wirst einen großen Teil deiner Zeit in der Kommandozeile, auch bekannt als Command Line Interface (CLI), verbringen. Linux-Systemadministratoren installieren oder verwenden nur selten GUIs auf ihren unterstützten Serversystemen. In diesem Kapitel lernst du die CLI und einige einfache Befehle kennen, um im Dateisystem zu navigieren, wichtige Dateien zu finden und dich mit der Linux-CLI vertraut zu machen.
Linux installieren
Eines der ersten Dinge, die jeder Linux-Systemadministrator lernt, ist, wie man Linux installiert. Es gibt keinen einzig richtigen Weg, Linux zu installieren, aber ein paar Richtlinien und Vorschläge werden dir das Leben leichter machen, wenn sich die Bedürfnisse deiner Benutzer/innen ändern.
In diesem Abschnitt wird zwar keine detaillierte Schritt-für-Schritt-Anleitung zur Installation von Linux gegeben, aber die grundlegenden Schritte werden hier skizziert. Für die meisten Junior-Sysadmins erfolgt die Systeminstallation in der Regel automatisch, z. B. mit Kickstart oder einem anderen System für Unternehmen.
Dein System für Linux vorbereiten
Wenn du Linux zum ersten Mal installierst, schlage ich vor, dass du es in einer virtuellen Maschine (VM) installierst. Auf diese Weise musst du nicht ein ganzes Stück Hardware für ein Lernsystem reservieren und du machst dein System nicht möglicherweise funktionsunfähig, wenn du versuchst, Linux parallel zu deinem aktuellen System zu installieren und einen Multiboot-Computer zu erstellen. (Die Einrichtung eines Multiboots ist ein fortgeschritteneres Konzept und würde den Rahmen dieses Buches sprengen).
Wenn du es noch nicht installiert hast, ist ein guter Ausgangspunkt für die Virtualisierung der Download und die Installation der neuesten Version von VirtualBox. VirtualBox ist eine Anwendung, mit der dein aktueller Computer als VM-Host-System fungieren kann, auf dem du virtuelle Gäste, wie z. B. Linux, in einem separaten, funktionierenden Computersystem installieren kannst. VirtualBox läuft auf verschiedenen Host-Betriebssystemen (OSs) und unterstützt verschiedene Gast-Betriebssysteme, darunter Linux. Das Host-Betriebssystem und das Gastbetriebssystem können sich voneinander unterscheiden. Dein Computer (Host-Betriebssystem) kann ein Windows-, Mac- oder Linux-basiertes System sein, auf dem aber Linux-Gastsysteme als VirtualBox-VMs installiert sind .
Herunterladen und Installieren von Linux
Als Nächstes musst du eine Linux-Distribution (Distro) auswählen, die du installieren möchtest, damit du üben kannst, Befehle zu erteilen, Konfigurationen zu ändern, neu zu starten, Software zu installieren, Benutzer anzulegen und so weiter. Ich schlage vor, dass du die Linux-Distribution auswählst, die dein derzeitiger Arbeitgeber verwendet. Wenn dein Unternehmen noch kein Linux einsetzt oder du nicht als Systemadministrator/in tätig bist, kannst du eine der folgenden gängigen Distributionen wählen :
- Debian
- Debian ist eine Top-Level-Distribution, von der viele andere Distributionen abgeleitet sind. Debian wird von der Gemeinschaft unterstützt, ist quelloffen und kostenlos.
- OpenSUSE
- OpenSUSE ist eine von der Community unterstützte Top-Distribution mit vielen treuen Anhängern weltweit. Seine kommerzielle Version, SUSE Linux Enterprise, ist weit verbreitet.
- Red Hat Enterprise Linux
- Red Hat ist eine kommerziell unterstützte Linux-Distribution, die sich in Unternehmen weltweit großer Beliebtheit erfreut und sich mittlerweile im Besitz von IBM befindet.
- Ubuntu
- Ubuntu ist sehr beliebt und hat sowohl (von Debian abgeleitete) Community- als auch kommerziell unterstützte Distributionen. Ubuntu bietet auch fertige VirtualBox (und andere) VMs an, die dir einen schnellen Start ermöglichen.
Die heruntergeladene ISO-Datei ist ein bootfähiges Linux-Image. Du musst nichts an ihr ändern, wenn du sie zur Erstellung einer VM verwendest. Eine VM wird von dem ISO-Image booten und den Installationsprozess beginnen. Nachdem du deine VM in VirtualBox konfiguriert hast, wähle im Oracle VM VirtualBox Manager die Option Einstellungen, wie in Abbildung 1-1 dargestellt.
Wähle dann Speicherung, wie in Abbildung 1-2 dargestellt.
Wähle das leere optische Laufwerk unter dem IDE-Controller im Bereich Speichergeräte aus und wähle dann das Symbol für das optische Laufwerk im Bereich Attribute, um nach deiner ISO-Image-Datei zu suchen. Abbildung 1-3 zeigt verschiedene ISO-Dateien, die in diesem Menü verfügbar sind.
Sobald du dein ISO-Image ausgewählt hast, klicke auf OK, um fortzufahren. Wenn du deine VM startest, wird sie von diesem ISO-Image booten und die Installation auf der virtuellen Festplatte deiner VM beginnen.
Wenn dein System startet, kannst du die Standardeinstellungen übernehmen. Wenn du Erfahrung mit der Installation von Linux hast, kannst du die Standardeinstellungen nach deinen Bedürfnissen ändern. Erstelle ein Benutzerkonto, wenn du dazu aufgefordert wirst. Wenn deine Distribution dich auffordert, dem Root-Konto ein Passwort zu geben, tue dies. Du musst dir dieses Passwort merken, denn ohne es musst du deine Linux-VM neu installieren oder versuchen, es wiederherzustellen. Die Installation von Linux kann mehrere Minuten dauern, und am Ende des Installationsprozesses ist ein Neustart erforderlich.
Dein neues Linux-System kennenlernen
Nach der Installation musst du dich als Erstes mit dem Benutzernamen und dem Passwort anmelden, die du während der Installation erstellt hast. Nach der Anmeldung landest du in deinem Home-Verzeichnis innerhalb einer Shell (oder Betriebsumgebung). Dein Home-Verzeichnis(/home) ist ein Unterverzeichnis des Verzeichnisses /. Das Linux-Dateisystem ist ein hierarchisches Dateisystem, ähnlich wie bei Microsoft Windows. Auf der obersten Ebene befindet sich das Stammverzeichnis, das durch das Symbol / dargestellt wird. Windows verwendet einen Laufwerksbuchstaben, z. B. C:, für das Stammverzeichnis. Unter Windows kannst du viele Laufwerksbuchstaben mit eigenen Stammebenen haben, z. B. C:, D:, E: und so weiter. Unter Linux gibt es nur ein Stammverzeichnis, /. Alle anderen Verzeichnisse sind Unterverzeichnisse des Stammverzeichnisses. Der folgende Verzeichnisbaum veranschaulicht das Linux-Stammverzeichnis und seine Unterverzeichnisse:
/ │─ bin │─ dev │─ etc │─ home │─ lib │─ media │─ mnt │─ opt │─ proc │─ root │─ run │─ sbin │─ srv │─ sys │─ tmp │─ usr └─ var
Beachte, dass es unter dem Dateisystem / (root) nur Verzeichnisse und keine einzelnen Dateien gibt, obwohl einige Linux-Distributionen ein paar symbolisch verknüpfte Dateien in / haben. Alle Dateien werden in Verzeichnissen gespeichert. Viele dieser Unterverzeichnisse wirst du im weiteren Verlauf des Buches kennenlernen. Tabelle 1-1 gibt einen kurzen Überblick über die Dateien und Informationen in jedem Verzeichnis.
Verzeichnis | Beschreibung |
---|---|
/ | Das Root-Dateisystem enthält nur andere Verzeichnisse, aber keine einzelnen Dateien. |
/bin | Das Verzeichnis binaries enthält ausführbare Dateien. Zeigt auf /usr/bin. |
/dev | Das Geräteverzeichnis enthält Gerätedateien, um Peripheriegeräte anzusprechen. |
/etc | Enthält Systemkonfigurationsdateien für Benutzer und Dienste. |
/home | Die Heimatverzeichnisse der Nutzer. |
/lib | Dateien der Systembibliotheken. Zeigt auf /usr/lib. |
/media | Verzeichnis zum Einbinden von Medien wie USB-Laufwerken oder DVD-Disks. |
/mnt | Das Einhängeverzeichnis zum Einhängen entfernter Dateisysteme. |
/opt | Verzeichnis, in dem die Software von Drittanbietern installiert ist. |
/proc | Ein virtuelles Dateisystem, das Systemprozesse verfolgt. |
/wurzel | Das Heimatverzeichnis des Root-Benutzers. |
/laufen | Variable und flüchtige Daten zur Laufzeit. |
/sbin | System-Binärdateien (ausführbare Dateien). |
/srv | Könnte Daten von Systemdiensten enthalten. |
/sys | Enthält Kernel-Informationen. |
/tmp | Verzeichnis zum Speichern von Sitzungsinformationen und temporären Dateien. |
/usr | Programme und Bibliotheken für Nutzer und nutzerbezogene Programme. |
/var | Variable Dateien wie Logs, Spools und Warteschlangen. |
Die Systemdateien sind vor Änderungen durch Benutzer geschützt. Nur der Root-Benutzer (Administrator) kann die Konfigurationsdateien und Einstellungen des Systems ändern. Benutzer haben in der Regel nur Schreibzugriff auf ihre eigenen Home-Verzeichnisse, das Verzeichnis /tmp und gemeinsame Verzeichnisse, die speziell vom Administrator erstellt und geändert wurden.
Im nächsten Abschnitt erfährst du, wie du mit deinem neuen Linux-System über die Kommandozeile arbeiten kannst.
Das CLI lernen
Die Kommandozeilenschnittstelle ( CLI) ist die Art und Weise, wie die meisten Systemadministratoren mit ihren Linux-Systemen interagieren, da Serversysteme in der Regel keine grafische Oberfläche haben. In der Microsoft Windows-Terminologie entspricht ein reines CLI-System, wie z. B. ein Linux-Server, einem Windows Server Core-System, bei dem du nur Zugriff auf die Befehlszeilen-Dienstprogramme hast.
Wie der Name schon sagt, interagierst du mit dem Linux-System über Befehle, die du über die Tastatur oder die Standardeingabe (stdin) eingibst. Die Quelle von stdin können auch Datei-Umleitungen, Programme und andere Quellen sein, aber im Kontext dieses Buches bezieht sich stdin auf die Tastatureingabe, sofern nicht anders angegeben. Viele Befehle haben Informationscharakter und geben Daten über das System oder Systemaktivitäten auf dem Bildschirm oder der Standardausgabe (stdout) aus. Manchmal erhältst du eine Fehlermeldung vom System, die als Standardfehler (stderr) bezeichnet wird. Die vollständigen und abgekürzten Versionen dieser Begriffe werden in diesem Text und in anderen Linux-Dokumentationen, die du an anderer Stelle findest, synonym verwendet.
Du musst ein paar Befehle lernen, um erfolgreich mit dem Dateisystem zu arbeiten. Mit "lernen" meine ich, dass du sie auswendig lernst, anstatt sie online nachzuschlagen. Es gibt nur wenige solcher Befehle und ein paar Optionen, die du dir ebenfalls einprägen solltest, damit deine Interaktion mit dem System natürlich und effizient wird. Mach dir keine Sorgen, dass du dem System mit einem der hier beschriebenen Befehle schaden könntest - ich werde dich warnen, wenn ein Befehl mit Vorsicht zu genießen ist.
Es gibt ein paar Dinge, die du wissen musst, bevor du mit dem Eingeben von Befehlen beginnst. Das erste ist, dass Linux keine Dateierweiterungen verwendet. Das bedeutet, dass die Datei filename.exe für Linux nicht mehr Bedeutung hat als die Datei Financial_Report.txt oder Résumé.doc. Sie sind alle Dateien und müssen weder ausführbar noch Textdateien sein. Unter Linux kannst du eine Datei fast beliebig benennen (es gibt ein paar Einschränkungen), aber verwende Leerzeichen in Dateinamen mit Vorsicht, weil du sonst Anführungszeichen um den Dateinamen herum verwenden musst.
Die zweite Sache, die du über Linux wissen musst, ist, dass bei Dateinamen zwischen Groß- und Kleinschreibung unterschieden wird. Mit anderen Worten: Dateiname.txt und Dateiname.TXT sind zwei verschiedene Dateien. Ich werde das später in diesem Kapitel beweisen. Für den Moment kannst du dich auf mein Wort verlassen. Die dritte Sache, die du wissen musst, ist, dass die Berechtigung einer Datei bestimmt, ob du die Datei ausführen, bearbeiten oder sogar den Inhalt der Datei ansehen kannst. Viertens: Jeder Linux-Speicherort ist durch seinen Pfad vom Stammverzeichnis(/) aus eindeutig benannt. Wenn du zum Beispiel die Passwortdatei in Linux erwähnst, wird sie als /etc/passwd angezeigt. Dies wird als absoluter Pfad bezeichnet und ist die Standardkonvention, um über Dateien auf dem System zu sprechen oder auf sie zu verweisen. Fünftens: Linux geht davon aus, dass du weißt, was du tun willst und dass du alles richtig geschrieben hast, wenn du einen Befehl gibst, also sei vorsichtig, denn manche Aktionen sind nicht umkehrbar.
Schließlich ist Linux (wie Unix oder allgemeiner "*nix"-Systeme) nicht so "gesprächig" wie die Windows-Betriebssysteme. Linux-Systeme fragen dich zum Beispiel nicht mit der Eingabeaufforderung "Sind Sie sicher?", wenn du Dateien entfernst (löschst). Auch hier geht das Linux-System davon aus, dass du den Befehl, den du gibst, ausführen willst, wenn du alle Teile des Befehls richtig schreibst. In der Linux-Befehlszeile zählt die Rechtschreibung.
Im Linux-Dateisystem zu navigieren bedeutet, die verschiedenen Systemverzeichnisse zu erkunden, zu lernen, wie du zu deinem Home-Verzeichnis zurückkehrst und Verzeichnisinhalte anders aufzulisten. Wenn du ein Windows-Benutzer bist und mit der Eingabeaufforderung (cmd) oder der PowerShell-Eingabeaufforderung (PS) auf dieser Plattform gearbeitet hast, dann wird dir die Linux-Befehlszeile vertraut sein.
Die kurze Liste der Befehle in den folgenden Abschnitten macht dich mit dem Linux-Dateisystem, den Dateien und dem Inhalt deines Home-Verzeichnisses vertraut.
pwd
Der Befehl pwd
(Arbeitsverzeichnis drucken) zeigt an, wo du dich im Dateisystem befindest. Wenn du jetzt den Befehl pwd
eingibst, gefolgt von der Eingabetaste, antwortet der Befehl mit /home/your_login_name
. Achte immer darauf, dass du nach jedem Befehl die Eingabetaste drückst, damit du eine Antwort erhältst:
$ pwd /home/student1
Die $
ist deine Eingabeaufforderung, die anzeigt, dass du als Benutzer im System angemeldet bist. Du wirst diesen Befehl später in diesem Kapitel noch öfter verwenden.
cd
Mit dem Befehl cd
(Verzeichnis wechseln oder aktuelles Verzeichnis) wechselst du in ein neues Verzeichnis, kehrst in dein Stammverzeichnis zurück und wechselst auf eine höhere Ebene oder in ein Unterverzeichnis. Der Befehl cd
ist analog zum Windows-Befehl cd
:
$ cd /etc $ pwd /etc
Wenn du cd
eingibst, gelangst du unabhängig von der Position im Dateisystem in dein Heimatverzeichnis, wie hier gezeigt wird:
$ pwd /etc $ cd $ pwd /home/student1
Wenn du cd
auf ein Verzeichnis aufrufst, verwende seinen absoluten Pfad:
$ cd /usr/bin
Du kannst cd
in ein Unterverzeichnis ohne den absoluten Pfad wechseln, wenn du dich gerade im übergeordneten Verzeichnis befindest:
$ cd $ pwd /home/student1 $ cd /usr $ cd bin $ pwd /usr/bin
Den Befehl cd
wirst du jedes Mal verwenden, wenn du dich mit einem Linux-System verbindest.
ls
Der Befehl ls
(list) zeigt eine Liste der Dateien und Verzeichnisse an, die sich in dem von dir angegebenen Verzeichnis befinden. Wenn du keinen Ort angibst, zeigt ls
die Liste der Dateien und Verzeichnisse in deinem aktuellen Verzeichnis an:
$ cd $ pwd $ /home/student1 $ ls
Du hast noch keine sichtbaren Dateien in deinem Home-Verzeichnis, weil du noch keine erstellt hast und standardmäßig keine existieren. Du kannst jedoch Dateien aus anderen Verzeichnissen auflisten, indem du den absoluten Pfad zu der Verzeichnisliste angibst, die du sehen möchtest. Es gibt zu viele Dateien im Verzeichnis /usr/bin, um sie hier aufzulisten, deshalb habe ich mich auf diese wenigen beschränkt:
$ ls /usr/bin a2x getcifsacl p11-kit snmpping a2x.py getconf pack200 snmpps ac getent package-cleanup snmpset ...
Es gibt Dateien in deinem Home-Verzeichnis, aber sie sind aufgrund ihrer Namensgebung versteckt. Dateien, die mit einem Punkt (.) beginnen, sind vor einem normalen ls
Befehl versteckt. Um diese Dateien zu sehen, musst du eine Befehlsoption verwenden, mit der du alle Dateien sehen kannst:
$ ls -a . .. .bash_history .bash_logout .bash_profile .bashrc .gnupg .zshrc
Deine Auflistung kann leicht davon abweichen, aber du solltest wissen, dass alle Verzeichnisse und Dateien, deren Namen mit einem Punkt beginnen, mit dem Befehl ls
ohne Optionen in den Standard-Dateilisten versteckt werden. Du kannst mit cd
in versteckte Verzeichnisse gehen oder Dateien darin auflisten:
$ ls .gnupg private-keys-v1.d pubring.kbx
Den Befehl ls
wirst du jedes Mal verwenden, wenn du dich in dein Linux-System einloggst, und du solltest ihn auf jeden Fall auswendig lernen. Ich werde den Befehl ls
in diesem Buch durchgängig verwenden und dir im Laufe des Buches noch viele weitere Optionen für ihn vorstellen. Nachdem du nun die Grundlagen der Navigation im Dateisystem gelernt hast, ist es an der Zeit, den Neustart und das Herunterfahren deines Systems zu behandeln.
Starten, Rebooten und Herunterfahren eines Linux-Systems
Die grundlegendsten Aufgaben eines jeden Linux-Sysadmins sind das Starten, Neustarten und Herunterfahren eines Systems. Wenn du Erfahrung mit Computern hast, weißt du, dass es schlecht ist, ein System auszuschalten, ohne einen Befehl zum Herunterfahren zu geben. Das ist schlecht, weil dadurch zum Beispiel geöffnete Dateien beschädigt werden können, offene Dateien in einem "offenen" Zustand verbleiben, laufende Dienste unterbrochen werden und Probleme mit Datenbanktransaktionsprotokollen auftreten können, die möglicherweise zu Datenverlust führen.
Das Wissen, wie man ein System startet, neu startet und herunterfährt, ist für Systemadministratoren von großem Wert.
Ein System starten
Bei physischen Systemen drückst du den Netzschalter und lässt ihn los, um ein System zu starten. Damit beginnt der Selbsttest beim Einschalten (POST) und der Boot-Vorgang. Es ist wichtig, die Konsole während des Startvorgangs zu beobachten, denn das System benachrichtigt dich und protokolliert alle Probleme, während es hochfährt. Achte auf dem Bildschirm auf Fehler oder Anomalien. (Die schlimmste Meldung, die du beim Booten erhalten kannst, ist eine "Kernel-Panik", die später in diesem Buch behandelt wird). Hoffentlich ist mit deinem System alles in Ordnung, und der Vorgang endet mit einer Eingabeaufforderung zur Anmeldung.
Der Startvorgang ist recht kurz, kann aber systemische Probleme wie Speicher-, Festplatten-, Dateisystem- und Netzwerkprobleme aufdecken. Auf die Fehlerbehebung gehe ich in einem späteren Kapitel ein, aber jetzt solltest du den Startvorgang genau beobachten und alle Probleme für spätere Untersuchungen notieren.
Neustart eines Systems
Das Neustarten oder Rebooten eines Systems ist eine gängige Sysadmin-Praxis. Auch wenn du vielleicht das Gegenteil liest oder hörst, ist es nicht verkehrt, dein System neu zu starten. Du solltest das regelmäßig tun, und zwar aus den im vorherigen Abschnitt genannten Gründen. Der Neustart eines Systems löscht den Speicher, frischt die Verbindungen auf und stellt sicher, dass das System gesund ist. Ein guter Neustart kann bestimmte lästige Probleme beheben, z. B. eine Anwendung, die den Arbeitsspeicher deines Systems beansprucht, allerdings nur vorübergehend.
Alle Probleme, die durch einen Neustart gelöst werden, sollten gründlicher untersucht werden, wenn das System wieder läuft und stabil ist. Der Neustart eines Systems ermöglicht es dir, Fehler zu beheben, bevor Anwendungsprobleme, Protokollierungsprobleme oder Netzwerkprobleme das System wieder in einen Zustand versetzen, der einen weiteren Neustart erfordert.
Herunterfahren eines Systems
Herunterfahren bedeutet, einen Befehl zu erteilen, der alle Programme sanft und angemessen schließt und das System schließlich ausschaltet. Durch dieses sanfte Herunterfahren werden auch die Shell-Benutzer gewarnt, dass das System heruntergefahren wird, damit alle ihre Arbeit speichern und sich abmelden können .
Das Herunterfahren von Systemen sollte der Wartung, dem Umzug oder der Außerbetriebnahme von Hardware vorbehalten sein. Einige Unternehmensrichtlinien verlangen, dass die Systeme einmal im Jahr vollständig heruntergefahren werden, um Hardwareprobleme zu erkennen, die sich erst bei einem kompletten Systemausfall bemerkbar machen würden. Techniker und Sysadmins nutzen diese Gelegenheit in der Regel, um gleichzeitig eine Hardwarewartung oder -überprüfung durchzuführen.
Zusammenfassung
In diesem ersten Kapitel hast du ein Live-Linux-System in Betrieb genommen, einige Linux-Grundlagen behandelt, einige wichtige Befehle kennengelernt und erfahren, wie und warum du dein System startest, neu startest und herunterfährst. In Kapitel 2 erfährst du mehr über die Verwendung der Befehlszeilenschnittstelle (CLI) und wie du mit Hilfe von Befehlen Dateien erstellen, entfernen und ändern kannst. Außerdem erfährst du etwas über Linux-Berechtigungen, wie man sie einrichtet und interpretiert und wie man eine globale Standardberechtigung für Benutzer/innen einrichtet.
Get Praktische Linux-Systemadministration now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.