LFD301 Einführung in Linux, Open-Souce-Entwicklung und GIT
Ziele der Schulung
In dieser 4-tägigen Schulung „LFD301 Einführung in Linux, Open-Source-Entwicklung und GIT" lernen Sie, Ihre Karriere in der Linux-Entwicklung erfolgreich zu starten – die Nachfrage nach Linux-Entwicklern ist so hoch wie nie zuvor. Dieser Kurs führt Sie in die Welt der Linux-Entwicklung ein und vermittelt Ihnen den notwendigen Hintergrund sowie die praktische Ausbildung, um sicher mit Linux arbeiten zu können. Wenn Sie darüber nachdenken, in die Linux-Entwicklung einzusteigen, ist dies der ideale Einstiegskurs.
In diesem Kurs lernen Sie die Geschichte von Linux kennen und verstehen, was es von anderen UNIX-ähnlichen Betriebssystemen unterscheidet. Sie erhalten einen Überblick über die zentralen Bestandteile eines Linux-Systems und deren Anwendung. Darüber hinaus werden die Grundlagen der Systemadministration behandelt, darunter Benutzer- und Gruppenverwaltung, essenzielle Linux-Befehle, Dateisysteme, Sicherheit sowie weiterführende Themen. Weitere Inhalte umfassen Netzwerk- und Threading-Modelle, Aspekte des Kompilierens und der Nutzung von Bibliotheken sowie die Arbeit mit Java unter Linux und weitere praxisrelevante Entwicklungsaspekte.
Der Arbeitsmarkt für Linux-Entwickler ist derzeit sehr stark nachgefragt. Dieser Kurs bereitet Sie gezielt darauf vor, sich den Reihen professioneller Linux-Entwickler anzuschließen.
Zielgruppe Seminar
- Entwickler
Voraussetzungen
Dieser Kurs richtet sich an Teilnehmer, die bereits erfahrene Computeranwender eines anderen Betriebssystems sind, jedoch nur geringe oder keine Erfahrung in einer Linux-Umgebung haben.
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.
Seminarinhalt
Einführung
- Ziele und Zielgruppe
- Wer du bist?
- The Linux Foundation
- Urheberrecht und keine vertraulichen Informationen
- Linux Foundation Training
- Zertifizierungsprogramme und Digital Badging
- Die Linux Foundation THRIVE-ONE-Abonnements
- Linux Distributions
- Platformen
- Vorbereiten deines Systems
- Benutzen und runterladen einer virtuellen Maschine
- Dokumentation und Links
- Änderungen in Linux und Open Source Projects
Open Source Software
- Was ist Open Source Software?
- Was ist proprietäre (Closed Source) Software?
- Pragmatismus vs. Idealismus
- Geschichte der Open Source Software
- Open Source Governance-Modelle
Warum Open Source Software nutzen?
- Kollaborative Entwicklung
- Sicherheit und Qualität des Quellcodes
- Nutzer: Flexibilität
- Unternehmen: Kollaborative Entwicklung
- Business: Marketing
- Bildung: Schulen (K-12) / öffentliche Systeme
- Bildung: Universität
- Entwickler: Größere Sichtbarkeit
- Labs
Beispiele erfolgreicher OSS-Projekte
- Linux Kernel
- git
- Apache
- Python, Perl und andere Programmiersprachen
- TeX und LaTeX
- GNU: gcc, gdb etc.
- X und Desktop-Umgebungen
- OpenStack, Kubernetes und andere Projekte
Arbeiten in OSS-Projekten
- Überblick über korrekte Beitragsprozesse
- Woher kommt der Code: DCO und CLA
- Nah an der Mainline für Sicherheit und Qualität bleiben
- Projekt-DNA studieren und verstehen
- Herausfinden, welches Problem man lösen möchte
- Maintainer und deren Workflows und Methoden identifizieren
- Früh Feedback einholen und offen arbeiten
- Kleine inkrementelle Beiträge statt großer Code-Dumps
- Ego zurückstellen: nicht empfindlich reagieren
- Geduldig sein, langfristige Beziehungen aufbauen, hilfreich sein
Continuous Integration
- Warum Continuous Integration?
- Kontinuierliche Bereitstellung und Auslieferung
- Kosten und Nutzen
- Tools
- Beispiel: Linux Kernel Continuous Integration Project
- The Continuous Delivery Foundation
OSS-Lizenzierung und rechtliche Aspekte
- Restriktive vs. permissive Lizenzierung
- FUD (Fear, Uncertainty and Doubt)
- Softwarepatente
- Patente und Lizenzen
- Auswahl einer Lizenz
- Kombination von Lizenzen
- Labs
Führung vs. Kontrolle und warum Projekte scheitern
- Führung vs. Kontrolle
- Lockerung von Kontrolle
- Mentoring
- Vertrauen aufbauen
- Warum OSS-Projekte scheitern
- Labs
GitHub und andere Hosting-Anbieter
- GitHub
- Öffentlich vs. privat
- GUI vs. Kommandozeile
- Labs
Linux und das Betriebssystem
- Kernel vs. Betriebssystem und Tools
- Geschichte von Linux
- UNIX und Linux
- Linux-Distributionen
- Linux Standard Base (LSB)
- Labs
Grafische Umgebungen und Schnittstellen
- Grafische Ebenen
- X Window System
- Window Manager
- Desktop-Manager
- Terminal-Fensteroptionen
- Labs
Systemadministration
- Installation
- Softwareverwaltung und Packaging
- Upgrades und Patching
- Benutzerverzeichnisse, Umgebungen etc.
- Log-Dateien
Hilfe finden
- Dokumentationsquellen
- man Pages
- info
- --help und help
- Grafische Schnittstellen
Texteditoren
- Verfügbare Editoren
- vi
- emacs
Shells, Bash und Kommandozeile
- Shells
- Shell-Initialisierung
- Aliase
- Umgebungsvariablen
- Anpassung der Kommandozeilen-Prompt
- Sonderzeichen
- Umleitung (Redirection)
- Pipes
- Command Substitution und Ausdrücke
Dateisystemstruktur, Partitionen, Pfade und Links
- Dateisystemstruktur
- Partitionen
- Überlegungen zur Partitionierung
- Pfade
- Hard- und Softlinks (symbolische Links)
Systeminitialisierung
- Systemstart
- Systeminitialisierung
Speicher- und Performance-Konzepte
- Speicher
- Swap
- Threading-Modelle
Netzwerke
- Netzwerk und Netzwerkschnittstellen
Wichtige Kommandos und Utilities
- Basis-Kommandos und Utilities
- Dateiübertragungs-Tools
- Monitoring- und Performance-Tools
- Grafische Monitoring-Tools
- Kernel-Module laden/entladen
- Geräteverwaltung
- Systemdienste verwalten
Benutzer, Gruppen und Berechtigungen
- Grundlagen von Benutzern und Gruppen
- Benutzer und Gruppen hinzufügen/entfernen
- Dateien, Benutzer und Berechtigungen
- root Benutzer, su und sudo
Linux-Dateisysteme
- Dateisysteme und VFS
- ext2, ext3 und ext4
- Journaling-Dateisysteme
- btrfs
- Einhängen (Mounting) von Dateisystemen
- RAID
- LVM
Wichtige Kommandozeilen-Tools
- Dateien und Verzeichnisse auflisten, erstellen, löschen, umbenennen
- Dateien finden: find und locate
- Text suchen: grep
- Text ersetzen: sed
Bash Scripting
- Script-Grundlagen
- Bedingungen (Conditionals)
- Schleifen (Loops)
- Funktionen
Dateien und Berechtigungen
- Dateitypen
- Berechtigungen und Zugriffsrechte
- Berechtigungen und Ownership ändern
Kompilieren, Linken und Libraries
- gcc
- Weitere Compiler
- Wichtige gcc Optionen
- Statische Bibliotheken
- Dynamische Bibliotheken (Shared Libraries)
- Linking von Libraries
- Debugging mit gdb
Java Installation und Umgebung
- Write Once and Use Anywhere?
- Java Installation unter Linux
- Umgang mit mehreren JREs und JDKs (alternatives System)
- Umgebungsvariablen und Classpaths
- Integrierte Entwicklungsumgebungen (IDE)
RPM- und Debian-Pakete bauen
- Warum Package Management nutzen?
- Vorteile von Packaging-Systemen
- Linux-Distributionen und Package Management
- RPM Erstellung
- RPM spec Datei
- Details zu spec Sections
- RPM Abhängigkeiten
- Debian Package Workflow
Einführung in Git
- Versionsverwaltung
- Die Herkunft der Quellcodes nachvollziehen: DCO CLA
- Verfügbare Versionsverwaltungssysteme
- Grafische Benutzeroberfläche
- Dokumentation
Git und Versionskontrollsysteme
- Konvertieren zwischen zwei verschiedenen Systemen
- RCS and CVS
- Subversion
- git
- Git und verteilende Entwicklung
Using Gilt. Beispiele
- Basis Kommandos
- Einfache Beispiele
Git Installation
- Binäre Installation
- Installieren aus dem Quellcode
Git Konzepte und Architektur
- Konzepte
- Design-Features
- Repositories
- Objekte und Index
- Content vs. Pfadnamen
- Commit vs. Publishing
- Upstream und Downstream
- Forking
Dateien und Index verwalten
- Dateikategorien
- Basis-Dateikommandos
Commits
- Commit erstellen
- Identifiers und Tags
- Commit-Historie anzeigen
- Revert und Reset
- Repositories bereinigen
- Wer ist verantwortlich? (Blame)
- Bisecting
Branches und Diffs
- Was ist ein Branch?
- Branch-Namen vs Tags
- Branch erstellen
- Branch Checkout
- Frühere Versionen von Dateien wiederherstellen
Diffs
- Differenzieren von Dateien
- Diffing in Git
Merging und Rebase
- Was ist Merging?
- Merge-Kommandos
- Rebase
Remote Collaboration
- Arbeiten mit anderen
- Cloning
- Projekt veröffentlichen
- Fetching, Pulling
Patch-basierte Entwicklung
- Warum Patches verwenden?
- Patches erzeugen
- E-Mail Versand
- Patches anwenden
Erweiterte Git Interfaces: Gerrit
- Modi verteilter Entwicklung
- Gerrit
- Review-Prozess
Abschluss und Evaluationsumfrage
- Evaluierungsumfrage
Hinweise
Prüfung und Zertifizierung
Dieser Kurs beinhaltet keine Prüfung.
Open Badge für dieses Seminar - Ihr digitaler Kompetenznachweis

Durch die erfolgreiche Teilnahme an einem Kurs bei IT-Schulungen.com erhalten Sie zusätzlich zu Ihrem Teilnehmerzertifikat ein digitales Open Badge (Zertifikat) – Ihren modernen Nachweis für erworbene Kompetenzen.
Ihr Open Badge ist jederzeit in Ihrem persönlichen und kostenfreien Mein IT-Schulungen.com-Konto verfügbar. Mit wenigen Klicks können Sie diesen digitalen Nachweis in sozialen Netzwerken teilen, um Ihre Expertise sichtbar zu machen und Ihr berufliches Profil gezielt zu stärken.
Übersicht: Linux Foundation Schulungen Portfolio
Seminare kurz vor der Durchführung
| 19.10. - 22.10.2026 | Hamburg | ||
| 09.11. - 12.11.2026 | München | ||
| 08.12. - 11.12.2026 | Köln | ||
| 18.01. - 21.01.2027 | Nürnberg |



