Einführung | Linux ist fast überall, egal ob Serverbau oder Cliententwicklung, für den Full-Stack sind die Grundkenntnisse des Betriebssystems notwendig. |
Linux-Distributionen können grob in zwei Kategorien unterteilt werden: Die eine ist die von kommerziellen Unternehmen verwaltete Distribution und die andere die von Community-Organisationen verwaltete Distribution. Erstere wird durch das berühmte Redhat (RHEL) und letztere durch Debian repräsentiert .
Redhat sollte die Redhat-Serie heißen, einschließlich RHEL, Fedora und CentOS (die Community-Klonversion von RHEL, kostenlos). Streng genommen kann Ubuntu nicht als eigenständige Distribution betrachtet werden. Es handelt sich um ein nahezu perfektes Linux-Desktopsystem, das alle Vorteile von Debian und seine eigenen Erweiterungen aufweist. Die Ubuntu-Community schätzt vor allem Praktikabilität und Innovation.
Wenn Sie nur ein stabileres Serversystem benötigen, ist CentOS die beste Wahl. Nach Abschluss der Installation kann es nach einfacher Konfiguration sehr stabile Dienste bereitstellen. Aber für Cloud-Umgebungen könnte Unbantu gut sein. Hadoop wurde zuerst auf Ubantu entwickelt.
ArchitekturVerstehen Sie die Architektur und haben Sie einen besseren Orientierungssinn. Linux verfügt über zwei Modi: Kernel und Benutzer. Kernel, Shell und Dateisystem bilden zusammen die grundlegende Betriebssystemstruktur. Der Linux-Kernel besteht aus den folgenden Teilen: Speicherverwaltung, Prozessverwaltung, Gerätetreiber, Dateisystem und Netzwerkverwaltung.
Wenn Sie den Linux-Kernel verstehen, können Sie die Ressourcen voll ausnutzen und beim Optimieren des Systems einen Sinn für das Ziel haben.
Linux unterteilt den Speicher in verwaltbare „Speicherseiten“ und stellt Abstraktionen für 4-KB-Puffer bereit, beispielsweise den Slab Allocator. Ein Prozess ist eigentlich eine laufende Einheit einer bestimmten Anwendung, und die Prozessplanung steuert den Zugriff des Prozesses auf die CPU. Zu den gängigen prozessübergreifenden Kommunikationsmechanismen in Linux gehören Signale, Pipes, gemeinsam genutzter Speicher, Semaphoren, Sockets usw. Der Kernel stellt über SCI eine API bereit, um einen neuen Prozess (Fork, Exec oder POSⅨ) zu erstellen, den Prozess zu stoppen (Kill, Exit) und zwischen ihnen zu kommunizieren und zu synchronisieren (Signal oder POSⅨ-Mechanismus).
Das Linux-Betriebssystem kombiniert unabhängige Dateisysteme in einer hierarchischen Baumstruktur, und eine einzelne Entität repräsentiert dieses Dateisystem. Da Linux viele verschiedene Dateisysteme unterstützt und sie in einem einheitlichen virtuellen Dateisystem organisiert, stellt der Gerätetreiber eine Reihe abstrakter Schnittstellen bereit, die das Betriebssystem verstehen kann, um die Interaktion mit dem Betriebssystem abzuschließen, während die spezifischen hardwarebezogenen Details von Die Bedienung erfolgt durch den Gerätetreiber. Der Netzwerkteil des Linux-Kernels besteht aus BSD-Sockets, Netzwerkprotokollschichten und Netzwerkgerätetreibern. Netzwerkgerätetreiber sind für die Kommunikation mit Hardwaregeräten verantwortlich, und für jedes mögliche Hardwaregerät gibt es einen entsprechenden Gerätetreiber.
Linux-DateisystemDas Linux-System kann eine Vielzahl derzeit gängiger Dateisysteme unterstützen, und EXT4 wird empfohlen.
Die wichtigsten Dateitypen unter Linux sind:
1) Gewöhnliche Dateien werden in Klartext und Binärdateien unterteilt.
2) Verzeichnisdatei, in der Dateien gespeichert werden.
3) Verknüpfen Sie Dateien, Dateien, die auf dieselbe Datei oder dasselbe Verzeichnis verweisen.
4) Gerätedateien werden in Blockgeräte und Zeichengeräte unterteilt.
5) Pipe-Dateien ermöglichen die Kommunikation zwischen Prozessen
6) Socket-Datei im Zusammenhang mit der Netzwerkkommunikation
Linux verwendet eine Standardverzeichnisstruktur. Das Installationsprogramm hat bereits ein Dateisystem und eine vollständige und feste Verzeichniszusammensetzung für den Benutzer erstellt und die Rolle jedes Verzeichnisses und die darin enthaltenen Dateitypen festgelegt.
Verzeichnisname | Kurze Beschreibung |
---|---|
/bin | Binärer ausführbarer Befehl |
/dev | Gerätespezifische Dateien |
/usw. | Systemverwaltungs- und Konfigurationsdateien |
/etc/rc.d | Startkonfigurationsdateien und Skripte |
/Zuhause | Der Basispunkt des Home-Verzeichnisses des Benutzers ist beispielsweise /home/user, das durch ~abc | dargestellt werden kann
/lib | Standard-Programmierbibliothek |
/sbin | Systemverwaltungsbefehle, die von Systemadministratoren verwendeten Verwaltungsprogramme, werden hier gespeichert |
/tmp | Öffentlicher temporärer Dateispeicherpunkt |
/root | Home-Verzeichnis des Systemadministrators |
/Monat | Das System stellt dieses Verzeichnis bereit, damit Benutzer vorübergehend andere Dateisysteme mounten können. |
/verloren+gefunden | Dieses Verzeichnis ist normalerweise leer, wenn das System abnormal herunterfährt, bleiben „obdachlose“ Dateien zurück |
/proc | Virtuelles Verzeichnis ist eine Zuordnung des Systemspeichers. Auf dieses Verzeichnis kann direkt zugegriffen werden, um Systeminformationen zu erhalten. |
/var | Der Überlaufbereich einiger großer Dateien, z. B. Protokolldateien verschiedener Dienste |
/usr | Das größte Verzeichnis. Fast alle Anwendungen und Dateien, die Sie verwenden müssen, befinden sich in diesem Verzeichnis. Enthält: /usr/X11R6 Verzeichnis, in dem X Window gespeichert ist /usr/bin Zahlreiche Anwendungen /usr/sbin Einige Verwaltungsprogramme für Superuser /usr/doc Linux-Dokumentation /usr/include Header-Dateien, die zum Entwickeln und Kompilieren von Anwendungen unter Linux benötigt werden /usr/lib Konfigurationsdateien für häufig verwendete dynamische Linkbibliotheken und Softwarepakete /usr/man Hilfedokumentation /usr/src-Quellcode, der Quellcode des Linux-Kernels wird in /usr/src/linux abgelegt /usr/local/bin Lokal hinzugefügte Befehle /usr/local/lib Lokal hinzugefügte Bibliotheken |
Shell ist die Benutzeroberfläche des Systems und bietet Benutzern eine Schnittstelle zur Interaktion mit dem Kernel. Es empfängt vom Benutzer eingegebene Befehle und sendet sie zur Ausführung an den Kernel. Es handelt sich um einen Befehlsinterpreter. Es gibt viele Arten von Shells, hier wird jedoch BASH empfohlen. BASH ist die Bourne Again Shell von GNU, die Standard-Shell auf dem GNU-Betriebssystem. Die meisten Linux-Distributionspakete verwenden diese Shell. Linux-Shell und -Befehle
Linux hat viele Befehle. Eine einfache Klassifizierung ist unten angegeben.
Das Organisieren von Linux-Befehlen in der Shell, um eine Reihe von Aufgaben auszuführen, ist Shell-Programmierung. Shell, Perl und Python sind die am häufigsten verwendeten Skriptsprachen unter Linux, und ich empfehle weiterhin die Verwendung von Python.
Standard-Linux-Systeme verfügen im Allgemeinen über eine Reihe von Programmen, die als Anwendungen bezeichnet werden und zu denen Texteditoren, Programmiersprachen, X Window, Internet-Tools, Datenbanken usw. gehören.
Für die Textbearbeitung haben Emacs und vim ihre eigenen Vorzüge. Sie können über Plug-Ins sogar als IDEs verwendet werden. Ich persönlich bin der Meinung, dass VIM eine notwendige Fähigkeit sein sollte. Es gibt auch viele Befehle in vim, die wie folgt zusammengefasst sind:
Was die Anwendungsverwaltung betrifft, muss Ubuntu mit dem Befehl apt vertraut sein, und Centos benötigt den Befehl yum. Natürlich ist das Kompilieren und Installieren des Quellcodes ein Muss. Die Art und Weise, wie das Makefile geschrieben wird, und die Verwendung von configure/autoconfig/make müssen Ihnen vertraut sein.
Das obige ist der detaillierte Inhalt vonLinux-Grundlagen: Ein Muss für Full-Stack-Entwickler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!