Beschreibung
In dieser 4-tägigen Schulung "LFD301 Einführung in Linux, Open-Source-Entwicklung und GIT" tauchen Sie tief in die Welt der Linux-Entwicklung ein und erhalten grundlegende Fähigkeiten, um effektiv mit Linux zu arbeiten. Vor dem Hintergrund des unaufhaltsamen Wachstums von Linux und der steigenden Nachfrage nach Linux-Entwicklern bietet dieser Kurs eine erstklassige Gelegenheit, in die Linux-Entwicklung einzusteigen.
Dieser Kurs bietet eine solide Basis, um Ihre Linux-Entwicklungsreise zu beginnen und sich in einer dynamischen und wachsenden Umgebung weiterzuentwickeln.
Kommende Starttermine
Agenda
Open Source Software
- Was ist Open-Source-Software?
- Was ist Proprietary (Closed Source) Software?
- Pragmatismus vs. Idealismus
- Geschichte von Open-Source-Software
- Open-Source-Governance-Modelle
Warum Open-Source-Software verwenden?
- Kollaborative Entwicklung
- Sicherheit und Qualität des Quellcodes
- Anwender: Flexibilität
- Business: Kollaborative Entwicklung
- Business: Marketing
- Lehre: El-Hi, Öffentliche Systeme
- Lehre: Universität
- Entwickler: Größere Sichtbarkeit
Bespiele für erfolgreiche OSS-Projekte
- Linux-Kernel
- git
- Apache
- Python, Perl und andere Computersprachen
- Tex und LaTeX
- GNU: gcc, gdb, etc.
- X und Desktop-Manager
- OpenStack, Kubernetes und andere Projekte
Wie man in OSS-Projekten arbeitet
- Überblick über die korrekte Durchführung von Übertragungen.
- Sicherheit und Qualität durch die Nähe zur Mainline
- Projekt-DNA erforschen und verstehen
- Das Anliegen erkennen und verfolgen
- Bestimmung der Entwickler und deren Arbeitsabläufe und Methoden
- Frühzeitige Informationen einholen und freier arbeiten
- Tragen Sie inkrementelle Bits bei und meiden Sie große Code-Dumps.
- Kein Platz für Ego: Denke nicht engstirnig.
- Seien Sie geduldig, entwickeln Sie langfristige Partnerschaften und seien Sie hilfreich
Continuous Integration
- Warum Continuous Integration?
- Continuous Delivery und Continuous Deployment
- Kosten und Nutzen
- Werkzeuge
- Beispiel: Linux Kernel Continuous Investment Projekt
- Die Grundlage für kontinuierlichen Betrieb
OSS-Lizenzierung und rechtliche Fragen
- Restriktive vs. Permissive Lizenzierung
- FUD
- Software-Patente
- Patente und Lizenzen
- Auswahl einer Lizenz
- Kombinierung von Lizenzen
Respektierung und Förderung von Vielfalt in OSS
- Vielfalt und Open-Source-Software
- Geschlecht und Geschlechtsidentität
- Nationale Herkunft, Geographie und Sprache
- Religion und Politik
- Meinungsverschiedenheiten
GitHub und andere Hosting-Provider
- GitHub
- Öffentlich vs. Privat
- GUI vs. Kommandozeile
LINUX und das Betriebssystem
- Kernel vs. Betriebssystem und Tools
- Geschichte von Linux
- UNIX und Linux
- Linux-Distributionen
- Linux-Standard-Basis (LSB)
Grafische Umgebungen und Schnittstellen
- Grafische Schichten
- X-Fenster-System
- Window-Manager
- Desktop-Manager
- Terminal-Window-Optionen
Hilfe erhalten
- Dokumentationsquellen
- Man Pages
- info
- {–}help and help
- Grafische Oberflächen
Text-Editoren
- Verfügbare Text-Editoren
- vi
- emacs
Shells, bash und die Kommandozeile
- Shells
- Shell-Initialisierung
- Aliase
- Umgebungs-Variablen
- Anpassung der Befehlszeilen-Eingabeaufforderung
- Sonderzeichen
- Umleitung
- Pipes
- Befehlssubstitution und Ausdrücke
Dateisystem-Layout, Partitionen, Pfade und Links
- Dateisystem-Layout
- Partitionen
- Betrachtungen zur Partitionswahl
- Pfade
- Hard und Soft (symbolische) Links
System-Initialisierung
- Systemstart
- System-Initialisierung
Datenspeicher
- Speicher
- Auslagerung
- Threading-Modelle
Vernetzung
- Vernetzung und Netzwerkschnittstellen
Befehlsdetails
- Grundlegende Befehle und Dienstprogramme
- Dateiübertragungs-Tools
- Überwachungs- und Performance-Tools
- Grafische Überwachungstools
- Laden/Entladen von Kernel-Modulen
- Geräte-Management
- Systemdienste verwalten
System Verwaltung
- Installation
- Softwareverwaltung und Packaging
- Upgrading und Patching
- Benutzerverzeichnisse, Umgebungen, etc.
- Logging-Dateien
Anwender und Gruppen
- Grundlagen der Anwender und Gruppen
- Benutzer und Gruppen hinzufügen und entfernen
- Dateien, Benutzer und Berechtigungen
- root (Super)-Benutzer, su und sudo
Linux-Dateisysteme
- Dateisysteme und das VFS
- ext2, ext3 und ext4 Dateisysteme
- Journaling-Dateisysteme
- btrfs
- Einbinden von Dateisystemen
- RAID
- LVM
Grundlegende Kommandozeilen-Tools
- Auflisten, Erstellen, Löschen und Umbenennen von Dateien und Verzeichnissen
- Finden von Dateien: find und locate
- Strings aufspüren: grep
- String-Ersetzung: sed
Bash Skripting
- Skript-Grundlagen
- Konditionals
- Schleifen
- Funktionen
Dateien und Dateisysteme
- Typen von Dateien
- Berechtigungen und Zugriffsrechte
- Änderung von Berechtigungen und Besitzverhältnissen
Compiling, Linking and Libraries
- gcc
- Weitere Compiler
- Wichtige gcc-Optionen
- Statische Bibliotheken
- Gemeinsame Bibliotheken
- Links zu Bibliotheken
- Debuggen mit gdb
Java Installation und Umgebung
- Installation von Java unter Linux
- Umgang mit mehreren JRE}s und JDK}s: das alternativ Systemen
- Umgebungsvariablen und Klassenpfade
- Integrierte Entwicklungsumgebungen
Erstellen von RPM- und Debian-Packages
- Wozu eine Packageverwaltung verwenden
- Vorteile des Packagesystems
- Linux-Distributionen und Package Management
- RPM-Erstellung
- Die RPM-spec-Datei
- Details zu den RPM-spec-Abschnitten
- RPM-Abhängigkeiten
- Arbeitsablauf der Debian-Package-Erstellung
Einführung in GIT
- Revisionskontrolle
- Verfügbare Revisionskontrollsysteme
- Grafische Schnittstellen
- Dokumentation
Git-Installation
- Binäre Installation
- Installation aus dem Quellcode
Git und Revisionskontrollsysteme
- Konvertierung zwischen verschiedenen Systemen
- RCS und CVS
- Subversion
- git
- git und verteilte Entwicklung
Benutzung von Git: mit Beispiel
- Grundlegende Befehle
- Ein einfaches Beispiel
Git-Konzepte und -Architektur
- Konzepte
- Design-Merkmale
- Repositories
- Objekte und Index
- Inhalt vs. Pfadnamen
- Übertragen vs. Veröffentlichen
- Upstream und Downstream
- Forking
Verwaltung von Dateien und des Index
- Datei-Kategorien
- Grundlegende Datei-Befehle
Verpflichtungen
- Festlegen der Verpflichtung
- Identifikatoren und Tags
- Anzeigen der Commit-Historie
- Commits rückgängig machen und zurücksetzen
- Repositories aufräumen
- Wer ist schuld?
- Bisecting
Branches
- Was ist ein Branch?
- Branch-Namen vs. Tags
- Erstellung von Branchen
- Überprüfung von Branchen
- Abfragen früherer Dateiversionen
Diffs
- Differenzierung von Dateien
- Diffing in Git
Merging
- Was ist Merging?
- Merging-Befehle
- Neuordnung
Verwaltung von lokalen und entfernten Repositories
- Zusammenarbeit mit anderen
- Clonen
- Veröffentlichung Ihres Projekts
- Holen, Ziehen und Abrufen
Benutzung von Patches
- Warum Patches verwenden?
- Erstellen von Patches
- E-Mails versenden
- Patches anwenden
Erweiterungen für Git-Schnittstellen: Gerrit
- Betriebsarten der verteilten Entwicklung
- Gerrit
- Review-Prozess
Lernmethodik
Die Schulung bietet Ihnen eine ausgewogene Mischung aus Theorie und Praxis in einer erstklassigen Lernumgebung. Profitieren Sie vom direkten Austausch mit unseren projekterfahrenen Trainern und anderen Teilnehmern, um Ihren Lernerfolg zu maximieren.
Inhouse/Firmenseminar
Zielgruppe / Voraussetzungen
Für eine optimale Teilnahme am Kurs empfehlen wir folgende Vorkenntnisse:
- Programmierkenntnisse
Zielgruppe
- Entwickler
Infos anfordern
New Elements GmbH / IT-Schulungen.com
Unter dem Namen IT-Schulungen.com betreibt die Nürnberger New Elements GmbH seit über zwei Jahrzehnten eines der bedeutendsten Bildungszentren im deutschsprachigen Raum. Das Bildungszentrum befindet sich im renommierten Nordostpark in Nürnberg, in den industriehistorisch berühmten Räumlichkeiten der Bell-Laboratories von Alcatel-Lucent. Das...
Erfahren Sie mehr über New Elements GmbH / IT-Schulungen.com und weitere Kurse des Anbieters.