Inhaltsverzeichnis
Aktualisiert: 25.12.2022
Der Artikel vermittelt dir wichtige Grundlagen, um erfolgreich in Linux einzusteigen. Dabei wird der Fokus auf das „Verstehen“ der Anwendbarkeit gesetzt, es geht darum das Innenleben von Linux und sein Herzstück – das Terminal und seine Möglichkeiten zu verstehen. Hast du den Artikel komplett gelesen und verstanden, hast du ein fundiertes Grundlagenwissen über Linux.
Wünsche dir viel Spaß beim Lesen, bei Fragen oder Anregungen, gerne ein Kommentar hinterlassen.
Grüße Marcus
Linux – Was ist das eigentlich ?
Wie Linux entstanden ist
An dieser Stelle möchte ich erwähnen, dass ich hier nicht zu sehr ins Detail gehen werde, aber ich möchte eine kurze Einführung in die Linux-Entwicklung geben. Linus Torvalds ist der Initiator und die treibende Kraft hinter der Entwicklung des Linux-Kernels. 1991 begann Linus mit der Entwicklung einer Terminalemulation, um seinen eigenen Computer besser zu verstehen. Nach kurzer Zeit stellte er jedoch fest, dass sich das System mehr und mehr zu einem unabhängigen Betriebssystem entwickelte. Ursprünglich hatte Linus eine proprietäre Lizenz für sein Linux-Betriebssystem definiert, die jede kommerzielle Nutzung verbot. Er erkannte jedoch bald, dass dies den Entwicklungsfortschritt behinderte. Er wollte anderen Entwicklern mehr Freiheit geben und daher steht Linux unter der „GNU GPL“ -Lizenz. Dies war die Geburtsstunde des ersten freien Betriebssystems. Kurz darauf wuchs die Linux-Fangemeinde schnell und blieb bei den Entwicklern und Befürwortern freier Software.
Was ist ein Betriebssystem?
Ein Betriebssystem ist eine Sammlung von Programmen, die die physischen Systemressourcen eines Computers wie RAM, Festplatte, Tastatur, Maus, Monitor usw. verwalten. Betriebssysteme bestehen normalerweise aus einem Kernel (das Herz) sowie speziellen Programmen, die beim Start unterschiedliche Aufgaben übernehmen. Wenn ein Betriebssystem riesig, überladen und nicht optimiert ist, kann das gesamte System langsam sein, egal welches Programm Sie unter Linux, Windows oder OS X ausführen. Das macht den entscheidenden Unterschied, welches Betriebssystem verwendet werden soll. Linux ist dafür bekannt, sehr schlank zu sein und nur das Nötigste zu installieren. Infolgedessen können einige Linux-Versionen im Allgemeinen mit weniger als 100 MB ausgeführt werden, während Windows oder OS X mindestens 8.000 bis 10.000 MB benötigen. Sogar Entwicklern von Microsoft und Apple gelingt es, nach jeder zusätzlichen Version ihres Betriebssystems Verbesserungen vorzunehmen und so die Systeme immer weiter zu verbessern und teilweise sogar massiv zu beschleunigen.
Was sind Linux-Distributionen?
Bei der ursprünglichen Entwicklung von Linux gab es eine einzige Version von Linux, die von Linus Torvalds entwickelt wurde. Eine Linux-Distribution ist ein Komplettpaket, das für bestimmte Aufgaben koordiniert ist.
Eine Distribution besteht aus folgenden Komponenten:
- Betriebssystem (der Linux-Kernel) mit seinen Grundfunktionen und Treibern
- Programme und Benutzeroberfläche
- Quelltext oder Quellpakete
- Dokumentation und Unterstützung
Die einzelnen Linux-Distributionen können sich stark voneinander unterscheiden. Verschiedene Distributoren bieten spezielle Linux-Distributionen für bestimmte Aufgaben an. Es gibt zum Beispiel Versionen von Linux wie „Mint Linux“ und „Ubuntu“, die speziell auf den „Desktop“ (Heimanwender) ausgerichtet sind, sowie Versionen wie
„Debian“ und „Red Hat“ für den Server-Bereich. Darüber hinaus gibt es eigene Distributionen wie „Tails“ für anonymes Surfen im Internet, sowie „Kali Linux“ für Sicherheitstests und Hacking. Auch die Distributionen zum Speichern von PCs sind sehr bekannt, sie sind im Voraus mit allen Scannern für Viren und Trojaner ausgestattet, um einen Windows-PC wieder an die Oberfläche zu bringen und von Viren zu befreien. Viele dieser Distributionen basieren auf anderen Distributionen, den so genannten
„Derivate“, die sich anpassen und erweitern. Zum Beispiel besteht Ubuntu auf einem Derivat von Debian, das die gleiche Grundlage verwendet. Wenn Sie mit Debian vertraut sind, ist es ein Kinderspiel, sich in Ubuntu zurechtzufinden. Insgesamt gibt es etwa fünf bis sechs Derivate, die sich unzählige Verteilungen teilen. Eine Übersicht über die verschiedenen Linux-Distributionen finden Sie auf Wikipedia unter folgendem Link: https://de.wikipedia.org/wiki/Liste_von_Linux- Distributionen
Welche Distribution passt zu mir?
Das ist immer eine schwierige Frage! Es hängt von Ihrem Zweck und Ihren Vorlieben ab. Sie sollten sich auch darüber im Klaren sein, wo Sie Ihren Linux-Computer verwenden möchten. Benötigen Sie beispielsweise geschäftliche Unterstützung? Kann Ihnen jemand professionell bei Problemen helfen? Zu diesem Zweck gibt es wiederum eigene
„Enterprise Linux-Distributionen“ mit professionellen Entwicklern im Hintergrund. Ein gutes Beispiel dafür sind „Suse“ und „Red Hat Enterprise“, die auf Unternehmen abzielen, die größere Serverumgebungen mit Support benötigen. Es ist nicht unbedingt wahr, dass Red Hat Enterprise mehr kann als Debian oder andere Distributionen, aber die Strukturen und die Distribution dahinter sind für „Unternehmenslösungen“ ausgelegt. Auf diese Weise erhalten Sie auch professionelle Unterstützung. In diesem Buch beschäftigen wir uns mit Debian-Derivaten wie Ubuntu. Vieles davon kann jedoch auf andere Derivate übertragen werden, da der Linux-Kernel für alle derselbe ist (abgesehen von den unterschiedlichen Versionsnummern).
Was ist Open Source Software
Die meisten Linux-Distributionen sind normalerweise freie Software. Aber was bedeutet freie und Open Source Software eigentlich?
Freie Software bedeutet:
- Freiheit, das Programm für jeden Zweck zu nutzen.
- Freiheit das Programm nach eigenen Wünschen anzupassen.
- Die Freiheit, Kopien weiterzugeben, damit Sie anderen helfen können.
- Verbessern Sie den Plan und geben Sie jedem die Freiheit, sich zu verbessern.
Open-Source-Software bedeutet aus den Grundüberzeugungen:
- Jeder Benutzer eines Computers sollte in der Lage sein, seine Programme für jeden Zweck zu verwenden, zu kopieren und zu übertragen oder Änderungen und Verbesserungen vornehmen zu dürfen, ohne Lizenzgebühren zu zahlen.
- Jeder Benutzer sollte auch in der Lage sein, sein Programm in der Sprache seiner Wahl zu verwenden.
- Auch wenn eine Behinderung vorliegt, sollte jeder Benutzer in der Lage sein, sein Programm anzupassen.
Dies sind Überzeugungen aus dem „Open Source Project“, das Open Source und freie Software beschreibt. Es enthält auch Linux und hat diese Idee an eine große Community weitergegeben.
Linux die Verzeichnisstruktur
Alle Basisprogramme und Konfigurationsdateien befinden sich in verschiedenen Systemverzeichnissen. Im Allgemeinen können die meisten Verzeichnisse (Ordner) nur mit Root-Berechtigungen (Administratorberechtigungen) angezeigt und geändert werden. Dies dient hauptsächlich dem Schutz der Sicherheit des Linux-Systems, insbesondere für Anfänger, die häufig auf Probleme stoßen. Im Allgemeinen ist die hier aufgeführte Verzeichnisstruktur für die meisten Linux-Distributionen gleich oder ähnlich. Das Verzeichnis (Home-Verzeichnis) mit dem Namen „C:“ in Windows ist das Stammverzeichnis „/“ unter Linux. Im Folgenden finden Sie eine Liste der am häufigsten verwendeten Linux-Systemverzeichnisse.
Die wichtigsten Verzeichnisse in Linux
Verzeichnisstruktur Linux
wdt_ID | Verzeichnis | Erklärung |
---|---|---|
1 | / | Top Level, auch bekannt als "root", das sind alle Ordner und auf Systemdateien kann über Unterordner und Dateilinks zugegriffen werden. |
2 | /bin | „binaries“ (Programme); Enthält für Linux unverzichtbare Programme; Diese können im Vergleich zu /sbin von allen Benutzern ausgeführt werden; /bin darf keine Unterverzeichnisse enthalten. |
3 | /boot | Muss beim Systemstart vorhanden sein, enthält zum Booten erforderliche Dateien, die beispielsweise einen Teil des Linux-Kernels und Programme wie Bootloader wie Memory Test und GRUB enthalten |
4 | /dev | „devices“ (Geräte); Muss bei Systemstart vorhanden sein, weil es alle Gerätedateien/Informationen enthält, die für den Hardware Betrieb benötigt werden. |
5 | /etc | Verzeichnis /etc ("et cetera" (alles Übrige)) muss beim Systemstart sein Verfügbar, beinhaltet Konfiguration und Grundlegende Systeminformationsdateien: Viele wichtige Systemkonfigurationsdateien werden zum Ausführen von Serverdiensten und verwendet Berechtigungen sind hier enthalten. Manche von ihnen Die Konfigurationsdatei wird durch die Konfiguration überschrieben Aus Ihrem eigenen Home-Verzeichnis |
6 | /home | Das Verzeichnis home steht für Heimverzeichnis und dort befinden sich die Ordner der im System registrierten Nutzer. Beispiel hat der Nutzer marcus sein Verzeichnis unter /home/marcus |
7 | /lib | Das Verzeichnis lib steht für "Bibliothek" und muss beim Systemstart vorhanden sein. Im Ordner sind wichtige Bibliotheken enthalten, damit Linux läuft. Dazu gehören bsw. Kernelmodule, Programmerweiterungen und Bibliotheken. |
8 | /lost+found | Im Verzeichnis /lost+found finden Sie Dateien vor, die bei defekten Dateien oder Dateisystemen versucht wurden zu reparieren. |
9 | /media | Im Verzeichnis /media befinden sich Ordner für angeschlossene Speichermedien wie z.B. USB-Sticks, CD-ROM und DVDs. |
10 | /mnt | „mount“ (eingehängt); Hier können temporär Festplatten und andere Speichermedien eingehängt werden. Ähnlich wie /media, hier wird jedoch kein Link auf einer grafischen Oberfläche angelegt. |
11 | /opt | „optional“; Ist für die manuelle Installation von Programmen gedacht, welche Ihre eigene Bibliothek mitbringen. Der Speicherort für selbsterstelle Programme ist im Unterordner /usr/local zu finden. |
12 | /proc | „processes“ (laufende Programme); Muss bei Systemstart vorhanden sein; enthält Schnittstellen zum aktuellen geladenen Kernel und seinen Prozeduren. Dateien hier lassen sich mittels „cat“ auslesen. Beispiele: version (Kernelversion), cpuinfo (Prozessor-Information) u.v.m.; Jedes Programm mit Prozessnummern hat einen eigenen Verzeichnisnamen, aus denen man den Status auslesen kann. |
13 | /root | Ist das Homeverzeichnis des Superusers „root“. Der Grund, wieso dich das „/root“-Verzeichnis nicht im „/home“-Verzeichnis befindet, liegt darin, dass Root immer erreichbar sein muss, selbst, wenn die Home-Partition aus irgendeinen Grund (Rettungs-Modus, Wartungsarbeiten) nicht verfügbar ist. |
14 | /run | Dateien die den Zustand des Gesamtsystems speichern; Inhalt wird bei jedem Neustart der Linux Maschine gelöscht und neu angelegt. |
15 | /sbin | „system binaries“ (Systemprogramme); Muss bei Systemstart vorhanden sein; Enthält wichtige Programme für die grundlegenden Aufgaben der Systemverwaltung. Programme in diesem Ordner können nur von Benutzer verwendet werden welche „Superuser“ Rechte haben. Beispiel: „shutdown“ (Herunterfahren), fdisk (Festplatten Partitionieren), mkfs (Formatieren). |
16 | /srv | „services“ (Dienste); In der Regel ist dieser Ordner leer, geplant sind jedoch das hier in Zukunft Daten der Dienste liegen. |
17 | /sys | „system“; Dateien in diesem Ordner bestehen hauptsächlich aus Kernelschnittstellen. |
18 | /tmp | „temporary“ (temporär); Enthält temporäre Dateien und Ordner von Programmen; Verzeichnis wird bei Neustart in der Regel geleert. |
19 | /usr | „user“ (Benutzer); Enthält meistens Systemtools, Bibliotheken von installieren Programmen, welche Administratoren oder Benutzer installiert haben welche nicht von der Distribution direkt stammen, und nicht für den Betrieb vom Linux Grundsystem notwendig sind. |
20 | /var | „variable“ (Variabel); Enthält Verzeichnisse und Dateien welche von Programmen je nach Bedarf geändert werden. Unter anderem Log Dateien und Aufzeichnungen über Fehlermeldungen; „/var/www“ ist auch meist der Standard Ordner für Web Dateien für den Webserver. |
21 |
Grundlagen zur Linux Shell
Beschäftigst du dich etwas länger mit Linux, wird dir bestimmt Mal der Begriff Shell, Terminal oder Bash über den Bildschirm laufen.
Unterschied zwischen Shell vs. Terminal vs Bash
Der Unterschied ist der, das es indirekt keinen gibt, alle drei beschreiben eine kommando-orientiere Oberfläche zur Eingabe von Befehlen.
Die Begriffe Shell, Terminal oder Bash werden auch oft synonym verwendet und aus Erfahrung kann ich nur empfehlen, sich darum nicht zu viele Gedanken zu machen.
Um das ganze abzurunden kann es auch einfach gedeutscht werden und du sagst zukünftig nur Kommandozeile :D.
Um das etwas auf die Spitze zu treiben und dein Verständnis für diesen Sachverhalt zu schärfen, werde ich in den Beschreibungen darunter exzessiv die Unterscheidungen synonym nutzen :D.
Mit Autovervollständigung in Linux Shell Zeit sparen
Stell dir vor ich befinde mich im Terminal in einem Ordner mit einer Datei mit dem Namen ichBinEineDateiMitEinemLangenNamen.txt. Jetzt möchte ich diese Datei im Terminal anzeigen, aber nicht den vollen Namen eingeben müssen. Um diesen Wunsch Realität werden zu lassen, gebe ich in die Bash die Zeichenfolge „ich“ ein und Drücke dann unter Windows die TAB (linke Seite Taste mit Pfeil nach links und rechts zeigend) und der Name wird automatisch vervollständigt.
Mit Wildecard in Linux Kommandozeile effektiver suchen
Ein Platzhalter ist ein Symbol oder eine Reihe von Symbolen, die andere Zeichen darstellen / ersetzen.
Die unter Linux am häufigsten verwendeten Platzhaltertypen sind „?“, „*“ und [].
- Das Fragezeichen „?“ repräsentiert ein beliebiges Zeichen. Eine Suche nach dem Wort Linux könnte mit folgenden Muster gefunden werden: Linu? oder Lin??
- Der Stern * repräsentiert ein oder mehre beliebige Zeichen. Eine Suche nach dem Wort Linux kann mit folgenden Muster gefunden werden: L* oder Lin*
- Die Klammern [] legt zwingend beliebige Zeichen fest, die im Ergebnis existieren müssen. Eine Suche nach Linux kann mit folgenden Muster gefunden werden: [xunil]*
Na, gemerkt, das Wort Linux einfach rückwärts geschrieben ist!? :D. Hier zeigt sich, dass die Regel der Klammern erfüllt ist, weil ja jedes Zeichen im Wort Linux existiert!
Basis Befehle in Linux
Jeder, der sich ernsthaft mit Linux anfreunden möchte, sollte die im folgenden aufgelisteten Befehle rückwärts auf dem Kopf aufsagen* können.
Was ist der Sudo-Befehl in Linux
Für viele Aktionen in Linux benötigst du Administrator-Rechte. Damit du nicht immer mit dem Administrator-Konto, auch gerne root genannt verbinden musst, gibt es den Befehl sudo.
Sudo steht für „switch user and do“) und ermöglicht dir kurzfristig* Administrator-Berechtigungen zu erlangen, um den gewünschten Befehl auszuführen.
*Mit sudo su wechselst du für die Terminal-Sitzung (bis die Verbindung beendet wird) in den Administrator-Modus und kannst alle weiteren Befehle, die auch Admin-Berechtigungen benötigen ohne das sudo LinuxBefehl angeben.
In Linux Inhalt eines Verzeichnisses ansehen mit „ls“
„ls“ steht für „list directory contents“ (zeige Ordnerinhalt an) und muss immer kleingeschrieben werden.
Im folgenden habe ich alle wichtigen Merkmale zum Befehl ls kompakt zusammengefasst.
Linux Terminal Befehl | Erklärung |
ls (Pfad) (Flag) | Der Befehl ls zeigt Dateien im Verzeichnis an, indem sich aktuell (relativ) das Terminal befindet.
Mit der Pfad-Angabe, kann über ls ein Verzeichnis angesprochen werden, z.B. /usr/bin. Wird kein Pfad angegeben, wird das aktuelle Verzeichnis des Terminal aufgelistet. Mit der Flag-Angabe wird die Auflistung des Verzeichnis in unterschiedlicher Weise im Terminal ausgegeben. |
ls -a | Der Flag -a ist die Kurzschreibweise für all und listet alle Dateien (versteckte, wie auch System-Dateien) im aktuellen Verzeichnis auf |
ls -l | Der Flag -l ist die Kurzschreibweise für list und listet Dateien im aktuellen Verzeichnis und die dazugehörige Berechtigungen auf |
ls -la | Der Befehl ls -a und ls -l können auch zusammen ausgeführt werden. Dabei werden alle Dateien inklusive der Berechtigungen angezeigt. |
ls -la | less | Über den Befehl | less können Ausgaben, die größer als das Terminal-Fenster sind Seite für Seite durchgeblättert werden.
Der less-Modus kann über die Taste Q wieder verlassen werden. |
ls -r | Der Flag -r bedeutet reverse (umkehren) und zeigt Dateien im aktuellen Verzeichnis sortiert von Z-A nach Dateinamen an. |
ls -R | Der Flag -R bedeutet rekursiv und gibt alle Dateien und Verzeichnisse des Zielordners aus.
Tipp: Der Einsatz des pager less lohnt sich hier, wenn die Ausgabe zu groß wird. ls -R | less |
ls -t | Der Flag -t sortiert die Dateien vom neusten zum ältesten Der Flag -r bedeutet reverse (umkehren) und zeigt Dateien im aktuellen Verzeichnis sortiert von Z-A nach Dateinamen an. |
ls -l | Der Flag -i zeigt die Inodes Informationen an |
ls-h | Der Flag -h steht für human-readable und zeigt Informationen in vereinfachter / lesbarer Form an.
Beispiel: Eine Datei ist ~ 1,2MB groß Mit ls -l wird der Speicherverbrauch als Zahl 1271689 angezeigt, mit ls -lh wird der Speicherverbrauch als Zahl 1.2MB angezeigt. |
ls -ld | Der Flag -d steht für directory und zeigt in Kombination mit ls -ld Informationen über ein Verzeichnis, nicht die darin enthaltenden Dateien an. |
In Linux das Verzeichnis wechseln mit „cd“
„cd“ steht für „change directory“ (Ordner wechseln). Dadurch wird der aktuelle Ordner geändert, in dem du dich gerade befindest. Gebe dazu einfach den Befehl „cd“ und den Ordnernamen ein, in den gewechselt werden soll.
In ein bestimmtes Verzeichnis springen:
cd /bin
Von einem Unterordner in den Eltern Ordner (eine Verzeichnisebene höher) gehen
cd ..
In das Home Verzeichnis des Nutzers springen
cd
In Linux den aktuellen Ordner ausgeben
Pwd steht für „print name of working directory“ und damit wird in der Bash das Verzeichnis ausgegeben, indem sich diese befindet.
In Linux Inhalte mit cat anzeigen
„Cat“ steht für „concatenate files and print on the standard output“. Mit „cat“ können sie den Inhalt von Dateien direkt im Terminal ausgeben lassen.
In Linux mit which herausfinden wo ein Programm liegt.
Mit which kannst du herausfinden wo das Programm liegt, welches du suchst. Diese kann, wenn du mehr mit Linux arbeitest nützlich sein.
which cat
Der Befehl which cat gibt unter Ubuntu Pfad /usr/bin/cat aus.
Linux man-Befehl – Handbuch zu Befehl in Terminal
man steht für „manuals“ ( Handbücher) und zeigt eine Dokumentation des übergebenen Befehl im Terminal an.
man in Linux installieren
Sollte ein Fehler bei der Eingabe von man erscheinen, muss das Paket noch installiert werden.
Um man unter Ubuntu zu installieren einfach apt-get install man eingeben.
man in Linux benutzen
man zip # Beispiel wie die Dokumentation für den Befehl zip angezeigt wird.
Mit „Enter“ oder „Pfeil nach unten“ wird innerhalb des Handbuches hinunter geblättert. Mit „Bild runter/Bild raus“ wird seitenweise geblättert. Mit „q“ wird das Handbuch verlassen und mit „h“ innerhalb des Handbuches werden weitere Hilfe zum Umgang innerhalb von „man“ angezeigt.
In Linux Terminal Inhalt löschen oder verlassen
Wie der exit Befehl in Linux eingesetzt wird
Mit der Eingabe „exit“ und Bestätigung durch Drücken der Enter-Taste wird die Verbindung zum Server und Terminal-Fenster geschlossen.
Wie der clear Befehl in Linux eingesetzt wird
Mit der Eingabe „exit“ und Bestätigung durch Drücken der Enter-Taste wird die Verbindung zum Server und Terminal-Fenster geschlossen.
Schreibe einen Kommentar