# Einführung in Linux
YALC - Yet Another Linux Course
Author: Daniel Schubert

# LINUX

### Das universelle Betriebssystem

Eine Einführung - Teil 2

Deutsche Angestellten Akademie

### Weitere Desktop Systeme

- X window - X11

xfce
zB xubuntu

- Windows XP Ähnlich
- rechts oben START
- Ressourcen Sparsam
- alte hardware
- XUBUNTU

KDE
zB kubuntu / SUSE

- Sehr umfangreich konfigurierbar
- Modern
- vlcht mit WIn7 vergleichbar
- KUBUNTU

Pantheon
elementaryOS

- Modern
- die stylischte Variante
- Ubuntu Deriv

i3wm / awesome
tiling window managers

- tiling window manager
- komplett per tastatur steuerbar
- schnell

### Wichtige „Freie“ Programme

- LibreOffice
- Thunderbird
- Firefox / Chromium
- GIMP
- InkScape - Vector Grafik
- ImageMagick - Bildmanipulation
- Blender - 3D Rendering
- VLC
- mplayer

- ImageMagick - scriptbar

### Wichtige „Freie“ Dienste

- Webserver : Apache / Nginx
- Datenbanken: MySql / PostgreSql / MariaDB
- Email: Postfix / Sendmail
- Fileserver: Samba
- BIND / DNSmasq

- Samba: Nachbau von Windows SMB -> Kompatibel
- Samba: läuft auf meinem PI
- BIND DNSMASQ : ohne die kein internet denkbar

### Basics / Unterschiede zu Windows

- Verzeichnistrenner : `/`
- Unterscheidung von gross / klein -Schreibung: Datei.txt ≠ datei.txt
- Benutzerverzeichnis : `/home/username`
- Wurzelverzeichnis „root directory“ :`/`
- gültige Dateinamen / Pfade:
  - `/home/daniel/Dokumente/Wichtig.dez-2018.ods`
  - `WichtigerText`
  - `dies.darf_Nicht.weg`
  - `README`

### Basics / Unterschiede zu Windows

- versteckte Datei/Ordner beginnt mit . : `.config`
- Datei-Endungen nicht vorgeschrieben
- Keine Laufwerksbuchstaben
- Laufwerke ( DVD, USB etc ) werden im Verzeichnisbaum „eingehängt” : mount

### Alles ist eine Datei !

- Verzeichnisse
- Symbolische Links ähnlich zu »Verknüpfungen« unter Windows.
- Gerätedateien (engl. devices): Schnittstellen zu beliebigen Geräten wie Laufwerken. `/dev/fd0` ist das erste Diskettenlaufwerk.

### Übungen

1. Wie werden versteckte Dateien Sichtbar?
2. Einbinden eines USB Stick
3. Installation von XFCE
4. Wechsel der Desktop Umgebung zu xfce

- X Window System X11
- Benennung mit G und K und X

### Paketverwaltung

### Debian Versions-Bezeichungen

- 4 Stränge, benannt nach Figuren aus Toy Story
- Testing ( Buster - wird Debian 10)
- Unstable ( heisst immer Sid )
- Stable ( stretch - Debian 9 )
- Oldstable ( Jessie - Debian 8 )

### Programme zum Paketmanagement

- synaptic - point and click
- apt-get - kann Abhängigkeiten selbständig auflösen
- apt - das hübschere apt-get
- dpkg - low level paket management

### apt

`update` | Neueinlesen der Paketlisten
`upgrade` | Installierte Pakete wenn möglich auf eine verbesserte Version aktualisieren. Um geänderte Abhängigkeiten zu erfüllen, werden gegebenenfalls auch neue Pakete installiert.
`full-upgrade` | Wie `upgrade`, nur können bei dem Vorgang auch Pakete entfernt werden. Alternativ kann statt `full-upgrade` auch der Befehl `dist-upgrade` verwendet werden. Das Ergebnis ist identisch, allerdings ist `dist-upgrade` in der Hilfe und der Man-Page von `apt` nicht dokumentiert.
`install PAKETNAME` | installiert das Paket `PAKETNAME`
`install /PFAD/ZUM/PAKET` | installiert ein lokales Paket und dessen Abhängigkeiten
`remove PAKETNAME` | deinstalliert das Paket `PAKETNAME`
`purge PAKETNAME` | wie `remove`, es werden aber zusätzlich auch alle Konfigurationsdateien gelöscht
`autoremove` | deinstalliert alle automatisch installierten Pakete, die nicht mehr benötigt werden und keine Abhängigkeiten mehr zu anderen Paketen haben

Quelle: https://wiki.ubuntuusers.de/apt/apt/

### Andere Distros

- RedHat / CentOs : rpm ( *.rpm )
- YUM
- arch: pacman ( *.pkg.tar.xz )

Kovertierung möglich mit alien

NICHT MISCHEN!!

### Nachteile:

- Häufige Updates
- grosse Downlods bei Updates
- ältere Distris manchmal nicht mit neuen Programmen kompatibel

### Jetzt Neu!

- snappy ( ubuntu )
- flatpack
- Lösen das Problem der unterschiedlichen Abhängigkeiten und Versionen je nach Distro

- snappy: container mit allem drin
- flatpack: ähnlich, und open source ;-)

Manche Programme sind nicht als Paket verfügbar. Installation von Hand möglich.

    programm.tar.gz

- -> tar : tape archive
- -> gz : zip ( gzip )
- gezippter container
- nachteil: umgeht Paketverwaltung

### Übungen

Im Terminal

1. Update des Systems mit apt
2. Upgrade des Systems mit apt
3. Liste alle installierten Paketen
4. Welches sind die momentan aktiven repositories?

Halp!!

- sudo apt update
- sudo apt upgrade
- apt list
- dpkg --list
- less /etc/apt/source.list

    deb http://ftp.uni-stuttgart.de/debian/ stretch main contrib non-free
    deb-src http://ftp.uni-stuttgart.de/debian/ stretch main contrib non-free

    Types: deb
    URIs: http://ftp.uni-stuttgart.de/debian/
    Suites: stretch
    Components: main contrib non-free

# Das Hilfesystem

### Wie finde ich Hilfe??

> Man muss nicht alles wissen, aber man sollte wissen wo ma n es nachschlagen kann.

- Im Internet ;-)
- www.debian.org/doc/
- wiki.ubuntuusers.de
- The Linux Documentaion Project - http://tldp.org/
- <F1> ( nicht im Terminal )

Ausserdem:::

### Die man - Pages

Für (fast) alle Terminal-Programme existiert eine
man - Page

    man sudo

In Linux-Literatur oder auch in den Manpages selbst ist häufig eine man-Nummer hinter dem Kommando angegeben, z.B. less(1), damit der man-Text zielgenau aufgerufen werden kann.
Es gibt die Themenbereiche 1 bis 9 und n.

1. Benutzerkommandos
2. Systemaufruf
3. Funktionen der Programmiersprache C
4. Dateiformate
5. Konfigurationsdateien
6. Spiele
7. Diverses
8. Kommandos zur Systemadministrati
9. Kernelfunktionen

Die Eingabe für den Aufruf von less mit dem Thema (1) sieht so aus:

    man 1 less

Die Tastenkürzel
Taste | Bedeutung | Taste | Bedeutung
↑ oder Y | im Text nach oben scrollen | ↓ oder E | im Text nach unten scrollen
← | im Text nach links scrollen | → | im Text nach rechts scrollen
Bild ↑ oder U oder B | im Text seitenweise nach oben scrollen | Bild ↓ oder D oder F | im Text seitenweise nach unten scrollen
G | zum Textanfang springen | ⇧ + G | zum Textende springen
⇧ + 7 | in den Suchmodus "Vorwärtssuche" | ⇧ + ß | in den Suchmodus "Rückwärtssuche"
N | zum nächsten Suchresultat springen | ⇧ + N | zum vorherigen Suchresultat springen
H | Hilfetext mit vielen zusätzlichen Tasten und Optionen | Q | Beenden

https://wiki.ubuntuusers.de/man/

## Die Bash