Nach der Sommerpause und zum Start des Semesters an der VHS Braunschweig findet aus dem "Fachkraft IT-Systeme und -Netzwerke (FITSN)"-Zertifikat ein Seminar für das Modul "Linux" statt.
In unserem praxisorientierten Seminar erlernen wir die Techniken des alternativen Betriebssystems am Beispiel der aktuellen openSUSE 15.4 Leap Distribution von "A bis Z": von der Installation bis zur Administration, über die grafischen Frontends und Desktops bis zur Befehlszeile (Shell).
Hier die Rahmendaten unseres Seminars:
Ort: VHS Braunschweig, Raum 2.11
Teilnehmerzahl: 6 TN (reduziert wegen Corona)
Zeiten: Mo, 29.08. bis Fr, 02.09.2022; jeweils 08.30 - 16.00 Uhr
Prüfung: eine freiwillige Prüfung wird im Rahmen des Seminars koordiniert!
Anm.: Nach dem Seminar ist vor dem Seminar...
wir bieten an der VHS Braunschweig auch einen "Linux Aufbauworkshop" (ab 14.11.2022) an. Ich würde gerne das Interesse hieran evaluieren oder ggf. den Termin für die Linux-Interessenten aus der Warteliste zu diesem Seminar aktivieren!
Ich werde unser Seminar in diesem Beitrag wieder ausführlich begleiten...
Ihr Trainer Joe Brandes
Tag 01
Montag, 29.08.2022, 08.30 - 16.00 Uhr
Orientierungsphase, TN-Themen, freiwillige Prüfung
Installationsmedien:
- Wechsel-SSD Sandisk 120 GB (bzw. 111.8 GiB) oder auch SSD 240 GB (bzw. ca. 225 GiB)
und aktuell SSD 500 GB (bzw. ca. 470 GiB)
Anm.: bitte in unterem Wechselschacht austauschen (! - nicht die oberen beiden nutzen!) - openSUSE Leap 15.4 (64-Bit) mit aktualisierten Ventoy-Install-Sticks (Stick #01...08)
Anm.: die Sticks bleiben bei VHS BS ;-)
Testinstallationen durchgeführt (22.08.2022):
PC17 (mit SSD 500 #14; Anm.: Dozi-PC mit Extra-Grafik nvidia - install ohne Nvidia Treiber) - ca. 20 min
PC16 (mit SSD 500 #13; ca. 15 - 20 min
Anm.: durch die Updates während der Installationen wird im Seminar etwas Bandbreite gemindert und die Installzeit sich dadurch wahrscheinlich leicht verlängern.
Koordination von Wechselplatten für die Woche: (Anm.: Wechsel der SSDs am Seminartagende noch checken!)
Linux
... oder (in vielen Diskussionen online) auch GNU/Linux
Linux ist der freie Betriebssystemkern (hier: monolithisch, wobei aktuelle Entwicklungen nicht mehr nur starr monolithisch vs. Microkernel lauten; siehe Wikipedia-Artikel Link)
Englischer Fachbegriff.: Kernel (siehe Website für den Kern auf kernel.org - Lizenz GNU Public License)
GNU (rekursives Akronym: GNU is not Unix - funny for Nerds/Geeks): die freien Tools unter der GNU Public License
Linux-Alternativen: (echtes) Unix, Solaris oder BSD (siehe FreeBSD und Spezialsysteme wie pfSense bzw. OPNsense)
Erste öffentliche Erwähnung durch Linus Torvalds in Newsgroup comp.os.minix am 26. August 1991 (Wiki-Link L. Torvalds).
Distributionen
... stellen die gesamte Software
- angefangen vom Kernel,
- einer intelligenten Installationsroutine
- bis hin zu kompletten Softwareausstattungen inklusive Desktop- oder Window-Managern (graphische Oberflächen - GUIs)
bereit.
Hier ein die maßgeblichen Vertreter: (siehe auch c't Linux Netzplan)
- Debian - Nummer 1 bei den Server-OS für Web-Services und Co; konservative Softwareaktualisierungen - Schwerpunkt: Stabilität, Zuverlässigkeit
Ableger (Fachbegriff: Derivate): Ubuntu, Ubuntu-Varianten (Xubuntu, Kubuntu, Edubuntu, Mythbuntu, ...), Linux Mint (bzw. LM Debian Edition), ...
Ubuntu 20.04 als Standard-Distro für WSL / WSL 2 (Windows Subsystem for Linux) unter Windows 10 nutzbar! (WSL 2 ab Windows 10 2004, WSLg ab Windows 21H2) - Red Hat (heute: IBM)- Firma mit Serverlizenzen Red Hat Enterprise Linux (RHEL)
Entwicklungsreihenfolge: Fedora mit den offenen/freien SW-Paketen und frischer Software und Technik -> RHEL Enterprise Linux -> CentOS Community
Anm.: leider hat Red Hat 2019/2020 entschieden CentOS nicht mehr als Long Term Supported OS verfügbar zu machen. Das Ende von CentOS als kostenloser RHEL-Alternative!
Aktuelle CentOS-Alternativen: Rocky Linux (Gregory Kurtzer, founder of the CentOS project) oder Alma Linux (Team CloudLinux OS) - Suse/openSUSE (vormals Novell, vormals ...) - Suse Linux Enterprise Server (SLES)
Ableger: openSUSE - freie Community-Variante (siehe de.opensuse.org) - mit Version 42.1 hat Novell die Entwicklungspfade von SLES und openSUSE zusammengelegt;
Versionen: ... 10.x → 11.x → 12.x → 13.1 - 13.2 → 42.1 - 42.2 - 42.3 → 15.0 - 15.1 - 15.2 - 15.3 - 15.4 - ... (letzte Version 15.5 geplant für Juni 2023)
Suse plant für Juni 2023 mit openSUSE 15.5 die letzte Standard-Distro - danach stellt man unter dem Entwicklernamen "Adaptable Linux Platform (ALP)" auf eine andere Basistechnik und Verteilung der Suse-Linux-Technik um!
openSUSE auch als WSL / WSL 2 (Windows Subsystem for Linux) unter Windows 10 nutzbar! (WSL 2 ab Windows 10 2004) - Linux from Scratch Distributions / Independents:
Gentoo, Arch, GNU-OS: Guix, Parabola (Arch-Ansatz)
"Linuxlands" von Linux Welt 2013 David Wolski (CC BY-SA)
Weitere erwähnenswerte Distributionen: ArchLinux (s.a. Manjaro), Gentoo, Mandriva, ... - the list goes on and on (s. a. www.distrowatch.com)
Eine tabellarische Übersicht: (und wieder: ohne Anspruch auf Vollständigkeit ;-)
Distro | Ableger der Distro | Standard-Desktop | Paketmanagement |
---|---|---|---|
Red Hat |
Fedora (Desktop - bzw. Entwicklerplattform von Red Hat) |
Gnome | RPM (Red Hat Package Management) Basistool: rpm (ohne Auflösung Abhängigkeiten), Standardtool: yum Fedora / CentOS 8: dnf |
Suse | openSUSE (Link) Kaufversion: SLES bzw. SLED Rolling Releases: Tumbleweed |
KDE | RPM mit YaST2-Software-Verwaltung Tools: zypper (oder auch yum) |
Debian | Derivate: Ubuntu, Ubuntu LTS Versionen (Long Term Support - 5 Jahre), Linux Mint bzw. LMDE (Linux Mint Debian Edition), MX Linux, Elementary (Win/MacOS-Umsteiger), Zorin (Win/Mac-Umsteiger), Deepin (Win-Umsteiger), Kali Linux (Security, Forensics), Tails (Anonymität, Tor), Knoppix (Live-Linux), Raspbian (für Raspberry Pi), ... |
Gnome (Ubuntu) Mint: Cinnamon, Mate, XFCE, Xubuntu: XFCE Kubuntu: KDE, Lubuntu: LXDE, LWQt, Elementary: Pantheon Deepin: DDE/Deepin Desktop |
DEB (Debian Pakete) Basistool: dpkg (ohne Auflösung Abhängigkeiten) APT-Tools: apt, aptitude, synaptic klassische Varianten: apt-get, apt-cache, ... |
Arch Linux | Independent, Build from Scratch Derivate: Manjaro, EndevourOS, ArcoLinux |
oft KDE; aber gerne nach eigenen Wünschen |
Pacman mit Binärpaketen AUR (Arch User Repository) ABS (Arch Build System) |
Gentoo | Independent, Build from Scratch Derivate: Chrome OS / Chromium OS |
Diverse | Portage mit Tool emerge |
Solus | Independent, Build from Scratch angelehnt an Gentoo |
Budgie (Gnome 2-Look & Feel) | eopkg mit PiSi Package Manager |
Puppy Linux | Independent sehr sehr schlank |
JWM Openbox |
PPM (Puppy Package Manager) |
Mageia | Independent / Ableger von Mandrake - Mandriva Fork von Mandriva (french, $) |
KDE, Gnome |
URPM mit Tool urpmi Alt.: DNF |
Slackware | Independent (Patrick Volkerding) Vorlage für SuSE Linux Porteus (Live System) |
Diverse | Komprimierte TAR: TXZ Tool: slackpkg (für Updates) |
Für die Neugierigen: hier eine "lange Liste" auf Wikpedia https://de.wikipedia.org/wiki/Liste_von_Linux-Distributionen zu Linux-Distros.
Dort gibt es auch eine (Monster-)Timeline zu den GNU/Linux Entwicklungen als Timeline.
Entscheidung für "Suse"-Distro in unseren Linux-(Einsteiger)-Seminaren:
- Verbreitung in Deutschland
- Nähe zur Enterprise Edition (SLES - Suse Linux Enterprise Server)
- gute deutschsprachige Community
- Install- und Konfigurationsmöglichkeiten mit YaST (guter Einstieg in die Administration von Linux Systemen)
- ...
Links zu openSUSE
Ohne Anspruch auf Vollständigkeit ;-)
- Portal: https://www.opensuse.org/
- Wiki deutsch: https://de.opensuse.org/Hauptseite
- Leap Download: https://software.opensuse.org/distributions/leap
- Documentationen - english: https://doc.opensuse.org/
- Upgrades: https://de.opensuse.org/SDB:Distribution-UpgradeDistribution-Upgrade
(kürzer/besser: engl. Variante des Upgrade DB Eintrags - Problem mit/ab 15.3 Upgrades: die hinzugekommenen Repos für SLES müssen manuell eingebunden werden!
Spezialität bei openSUSE: YaST - Yet another Setup Tool (Installations- und Setup/Konfigurationswerkzeug)
Spezialversionen:
- Tumbleweed (Rolling Realeses / Rolling Upgrades) https://software.opensuse.org/distributions/tumbleweed
- Kubic (Container as a Service Plattform basierend auf Kubernetes oben auf openSUSE MicroOS)
Anm.: Rolling Releases benötigen keine turnus-mäßigen Upgrades (z.B. Ende Nov 2020 Upgrade Leap 15.1 auf 15.2), sondern werden ständig weiter mit Aktualisierungen versorgt.
Diese Vorgehensweise klingt erst einmal gut, hat aber eigene Probleme, die oft nur mit Expertenwissen gelöst werden können! Das sollte auch bei anderen "Rolling Release" Distributionen (siehe Arch Linux / Manjaro) bedacht werden.
Installation von openSUSE Leap 15.4 (64-Bit)
Install-Medien:
- CD (Netzwerk-Install; aktuell ca. 130 MB; bei Installation werden alle Pakete aktuell nachgeladen: ca. 3-4 GB)
- DVD (auch als Live-DVD: Linux komplett lauffähig von Read-Only-Medium CD/DVD)
- Netzwerk-Quellen:
FTP, HTTP, NFS, SMB/CIFS, PXE/TFTP
Nur noch in 64-Bit, als Virtuelle Maschinen Images und für andere Hardware (hier: aarch64 bzw. ARM64 oder auch PowerPC; allgemein gilt: Linux-Distros oft nicht mehr für Intel x86 / 32-Bit).
Hinweis: Bereitstellung von Checksums (sha256) zur Verifizierung der Unversehrtheit und Originalität der Downloadarchive (Isos)sha256 -c isoname.iso.sha256
(sollte OK ergeben - oder manuell vergleichen: sha256 isoname.iso )
Unter Windows bitte in PowerShell: Get-FileHash -Algorithm sha256 -path ...
Und am Besten man hat gleich einen Install-Stick mit "allen gewünschten" Install-Medien parat: Ventoy Boot Stick
Ventoy modifiziert einen USB-Stick, sodass man von kopierten ISOs booten kann.
Partitionen
Gerätenamen /dev/sda
(für den ersten Datenträger - dann /dev/sdb, ...
)
Eingerichtete Partitionen mit Nummern: /dev/sda1, /dev/sda2, ...
Anm. bei MBR dann /dev/sda5
als erste logische Partition (log. LW) in einer erweiterten Partition
Geräte- und Partitionsbezeichnungen:
- Früher bei EIDE-Geräten:
/dev/hda
- Mit den SCSI-Geräten:
/dev/sda
; Bezeichner dann also für SCSI, SATA und heute auch USB-Medien - Aktuell bei PCIe/NVMe Solid State Modulen:
/dev/nvme0n1
mit Partitionen als/dev/nvme0n1p1
,/dev/nvme0n1p2
, ...
Alternativ: Verwendung von Geräten-ID-Bezeichnern (siehe später GRUB oder auch /etc/fstab
)
Aktuelle Distributionen: UUID als eindeutige Bezeichner für die Partitionen/Datenträgerbereiche
Vorteil: dann werden die Datenträgerbereich auch sauber gemountet, wenn diese mal statt auf /dev/sda2
auf /dev/sdb1
liegen sollten!
heutige Installation mit folgenden Partitionen angelegt: (ein Screenshot für eine beispielhafte Installation ist unten angefügt)
Abweichung von openSUSE-Install-Vorschlag:
openSUSE würde gerne BtrFs als Dateisystem für das System ( Ordner /
bzw. auch /boot
) und xfs für die Daten (siehe /home
) vorschlagen, aber wir wollen hier die "klassischen" Ext-Dateisysteme Ext4 nutzen!
Anm.: besserer Einstieg in die Dateisysteme unter GNU/Linux; wir wollen an dieser Stelle ebenfalls auch noch LVM-Partitionen vermeiden!
Weitere bekannte und verbreitete Dateisysteme:
ext2, ext3 (ist ext2 mit journaling FS), ext4, xfs, BtrFS, ReiserFS, Fat16, Fat32 (VFat), NTFS
Grobe Einteilung/Partitionierung:
Hier im Seminar: GPT Verwaltung der SSD mit UEFI
(Anm.: bei MBR gibt es die 4 klassischen primären/erweiterten Partitionen)
Anleitung für Systempartitionen im Seminar: (genauerer Sinn und Nutzung später)
Bereitgestellte Wechsel-SSD:
- 120 GB bzw. 111,8 GiB (per UEFI/GPT) oder
- 240 GB
- 500 GB
hier: 4 Volumes/Partitionen /dev/sda1
bis /dev/sda4
Mount | Nutzung | Eigenschaften |
---|---|---|
/boot/efi | EFI-Partition | Größe: 500 MiB (siehe ggf. Meldung YaST) eig. min. 100 - 250 MiB (nach UEFI-Norm empfohlen) Filesystem: FAT32 (! bzw. als VFat bezeichnet) Gerät: /dev/sda1 (ESP - EFI System Partition)Bootflag und möglichst Anfang der Partitionen Anm.: Windows EFI kann/könnte mitgenutzt werden! |
/ | Root-Partition | Größe: 350 GiB (bei 500 GB SSD) bzw. 80 GiB (bei 120 GB SSD) bzw. 140 GiB (bei 240 GB SSD) Gerät: /dev/sda2 (Root Partition)Filesystem: ext4 |
/home | Benutzerverzeichnisse | Größe: 110 GiB (bei 500 GB SSD) bzw 25 GiB (bei 120 GB SSD) bzw. 75 GiB (bei 240 GB SSD) Gerät: /dev/sda3 (Home Partition)Filesystem: xfs |
swap | Auslagerungspartition, VMM Virtual Memory Management |
Größe: ca. +6 GiB (bzw. Rest) Gerät: /dev/sda4 (Swap Partition)Filesystem: swap |
Hier der Partitionsgraph aus einer vergleichbaren Installation:
Erste Analyse und Tools rund um unsere Partitionen: lsblk
, fdisk -l /dev/sda
, gdisk
(siehe GPT) , cfdisk
Falls es zu Problemen bei Darstellungen mit Konsolentools *disk kommt:
Tipp: Umlaute und Sonderzeichen falsch dargestellt - korrigieren mit: env LANG=C cfdisk
Erklärung: in Umgebung (env) wird als Sprache C eingestellt, was der Sprache/Kodierung des Programms entspricht (hier "englisch")
System-Aktualisierung
... im Seminar: DVD von August 2019 ca. 100 Pakete zu aktualisieren plus neuer/aktualisierter Kernel!
Aber: diese Aktualisierungen wurden "live" während der Installation angeboten und durchgeführt.
Vorteil: sofortig aktuelles System bei Erstnutzung
Nachteil: Downloads während der Installation nötig: siehe Internet-Bandbreite, Zeit, ...
Aktualisierungen (später) im laufenden System:
Aktualisierungs-Gadget" (Package-Kit) aus der Kontrollleiste/Taskleiste.
Anm.: später Kollision mit Shell-Tools möglich, da dieselbe Bibliothek (libzypp) genutzt wird!
Vorgriff auf spätere Befehlszeile: Aktualisierung mit Tool zypper
(siehe libzypp Unterstützung; zypper update
)
Anm.: "stabile" Desktop-Umgebungen (KDE5 Plasma) manchmal erst nach Neustarts!
Systemeinstellungen und YaST
... openSUSE System-Kontrollcenter für Benutzer- und Systemumgebungen
Erster Rundgang durch die Systemsteuerungen; Hinweis auf Root-Rechte und Einfach-Klicks bei YaST
Linux Software-Techniken
Techniken im Zusammenhang:
Linux Kernel → X-Server → Windows Manager / Desktop
"Kernel" - technisch ist Linux erst einmal nur der Kernel (Wiki-Link) und damit kann man dann direkt auch eine Shell (z.B. die Bash) nutzen
(siehe später: Runlevel 3 ohne Grafikdesktop / in Sprache Targets: multi-user.target)
"X-Server" - Zusätzlich kann man eine Grafikausgabe mit Hilfe des (klassischen) X-Servers (Wiki-Link) nutzen (X Windows System, X Server 11 - kurz X11, neu: x.org Server wie die Website des Projekts) mit deren Hilfe einfache Grafikfensteranwendungen (siehe xterm
, xeyes
;-) genutzt werden können.
Anm.: aktuell findet als moderne X-Server-Technik Wayland Einführung in die Linux Oberflächen (https://wayland.freedesktop.org/).
Meine Empfehlung: erst einmal - soweit es bei den sehr modernen Distros noch geht - vermeiden.
"Window Manager bzw. kompletter Desktop" - Man managed also entweder einfach nur Fenster oder geht noch einen Schritt weiter und baut noch gleich einen kompletten Desktop inklusive Management und Zusatztools (siehe konsole
, kwrite
, KDE-Office) oben drauf!
Desktops bzw. Desktopmanager
KDE: erste Gehversuche mit Desktop, Einstellung Doppelklick mit Systemeinstellungen-Werkzeug (systemsettings5
/ KDE-Infozentrum)
KSnapshot für Bildschirmfotos mit Druck-Taste wurde in 42.1 in Rente geschickt - removed und stattdessen durch die modernere Alternative Spactacles ersetzt. Spectacles - Grundkonfiguration:
automatische Bildschirmfoto-Dateien im Bilder-Ordner des Users mit Win + Druck (aktives Fenster speichern) oder gesamter Bildschirm mit Umschalten + Druck
Alternative Desktops:
- Gnome (Standard-Desktop bei Debian, genauer: Gnome 3)
- LXDE, LXQt (siehe Lubuntu)
- XFCE (Standard für leichtgewichtige Systeme)
- Unity (Ubuntu: nicht mehr fortgeführt)
- Cinnamon (Linux Mint, LMDE)
- Mate (Gnome 2 Fork)
- Spezielle Distro-Desktops:
Budgie (Solus), Pantheon (ElementaryOS), Deepin Desktop / DDE (Deepin)
Anm.: die Desktops lassen sich fast nahezu mit jeder genutzten Distribution kombinieren. Einschränkungn ergeben sich allerdings bei der gleichzeitigen Installation von mehreren Desktops auf einer Distribution. Die Desktops nutzen unterschiedliche Techniken und Anbindungen an die unterliegende Linux-Technik. Techniken, die Probleme bei Desktop-Parallel-Installationen machen: polkit (eine Art Benutzerkontensteuerung - siehe Berechtigungssteuerung UAC bei Windows) oder auch die Settings-Tools (siehe gnome-settings).
Übung: Aufrufe für verschiedene KDE-Standardtools (Dolphin, Kate, Konsole, Standard-Browser: Mozilla Firefox, Bürosuite LibreOffice, ...)
Einfache Window-Manager: FVWM, IceWM,openbox, fluxbox (Leichtgewichte)
Tiling Window-Manager: DWM, Awesome, Qtile, Xmonad (my daily Driver), Bspwm, Spectrewm, Leftwm, i3
Anm.: IceWM in openSUSE vorinstalliert neben KDE5/Plasma
Übersichtsseite mit Window-Managern:
- Wikipedia Seite zu Fenstermanagern: https://de.wikipedia.org/wiki/Fenstermanager
- Arch Linux Wiki zu Window Manager: https://wiki.archlinux.org/title/window_manager
Dolphin - Dateimanager
Dolphin (aktuell der Standard-Dateimanager) vs. Konqueror (der alte Dateimanager des KDE-Desktops)
Zwei-Fensteransichten F3 , Favoriten-Leisten, Konsole (Shell-Kommandos) mit F4
Anm.: Konquerer war auch Browser und früher der Standard-Dateimanager von KDE - heute ist es Dolphin
Übung: Einblenden der "versteckten" Dateien/Ordner mit Tastenkombination Alt + . (beginnen ja auch mit .)
Alternative Dateimanager: (Liste Dateimanager auf Ubuntuusers-Wiki - Desktops beachten)
Konquerer, Nautilus, Nemo, Caja, Thunar, PCMan File Manager, Gnome Commander, Mindnight Commander (für Konsole), ...
Konsolen / Terminals
... tty steht für Teletyper - klassisch/früher: Fernschreiber (!)
Aufruf von Programmen im Desktop mit Alt + F2 → Programmname
tty bei unserer openSUSE Installation:
Terminals 1 bis 6 (ohne Desktop) mittels Strg + Alt + F1 ... F6 - zurück zu Desktop mittels (Strg +) Alt + F7 oder eben die bei Ihrer Distro oder Installationsart
Anm.: muss man manchmal ausprobieren! Technisch: Multi-User System
Beenden eines Terminals mittels exit
(Anm.: logout
nur bei späteren Login-Shells - siehe ssh)
erste Gehversuche in der Konsole (shell) mit: ls -a
, ls -al
, cd
, su
, who
, whoami
, ping
, ip
wichtig: lspci
nur mit kompletten Pfad als Standard-User aufrufbar: /sbin/lspci
Anm.: die Superuser/Root haben den Pfad /sbin
in Ihrem Pfad
Pfade anzeigen mit echo $PATH
(Pfadvariable)
Aufruf von Grafik-/Fensterprogrammen über die Konsole: firefox &
, xeyes &
Tipp: & startet Programme im Hintergrund und lässt die Konsole weiter nutzbar!
Fontgröße in ttyX ändern: setfont /usr/share/kbd/consolefonts/suse12x22.psfu.gz
Befehl setfont
stellt wieder Standards her!
Erste Hilfe in Terminal/Konsole
Man-Pages (z.B. man rm
) oder Befehl mit --help (z.B. rm --help
), gerne auch Hilfe zur Hilfe mit man man
Die Man-Pages werden mit dem Standard-Pager (siehe echo $PAGER
) dargestellt - oft less
; Tipp: Pager most
recherchieren.
Alternative zu Man-Pages: info
Pages
Tricks in Terminal/Konsole
Befehle/Verzeichnisse/Dateien mittels Tabulator komplettieren (siehe: ls
TabTab zeigt alle Programme mit ls...,
mit Cursor-Tasten Aufrufe wiederholen (durchblättern)
überlange Anzeigen nach oben blättern mittels Shift + PgUp (Seite hoch) bzw. Shift + PgDown;
die Historie aller Shell-Aufrufe des Users in ~/.bash_history
;
Rekursive Suche in History mittels Strg + R (vorwärts dann mit Strg + S )
Anm.: in Bash Konsole oft Strg+S als "Stoppen" konfiguriert - dann weiter mit Strg+Q
Profitipp: Einsatz von FZF (Fuzzy Finder)
Löschen der Konsole (clear screen) mittels Strg + L
Anfang und Ende Kommandozeile mit Strg + A und Strg + E
Löschen der Kommandozeile von Cursor bis Anfang mit Strg + U
Kopieren und Einfügen (mittlere Maustaste) in der Konsole
Screenshots aus Seminar-Woche 2021 - openSUSE 15.3
Screenshots aus Seminar-Woche 2020 - openSUSE 15.2
Screenshots aus Seminar-Woche 2019 - openSUSE 15.1
Tag 02
Dienstag, 30.08.2022, 08.30 - 16.00 Uhr
Heute: ausführliche Rekapitulation zu Tag 01, TN-Fragen, Orientierung/Interesse Prüfung
Grundidee nach Neuinstallation von Betriebssystemen: (nach Aktualisierung der Systeme!)
Testen aller Funktionen wie
- Sound,
- Grafik/Video,
- Aufnahmemöglichkeiten/Mikrofon,
- USB und Wechselmedien (z.B. SD-Card-Reader),
- Spezialhardware (z.B. Fingerprint-Reader),
- Netzwerke (LAN, WLAN) siehe Analyse unten ...
Und mit einer grafischen Ausstattung wie YaST2 unter openSUSE ist das alles per Maus testbar - wir sollten aber immer die Konsole / das Terminal alternativ nutzen und erlernen.
Prozesse
Starten von Programmen in der Konsole im Hintergrund (Background - bg): kate mittwoch.txt &
bzw. natürlich auch: kdesu kate /etc/hosts &
Konsole meldet Prozess-ID; Recherche im Verzeichnisbaum: /proc/...
(Ordner mit PIDs)
ps
in Kombination mit grep
zum Suchen bestimmter laufender Prozesse (z.B. sshd)
Prozess-Verwaltungs-Befehle: fg
, bg
, jobs
, ps
ps axf
(ps hier mit ausführlicher Auflistung und mit f für Prozessabhängikeiten/Prozessbaum)ps ax | grep firefox
(bitte wieder an ps --help
und man ps
denken)ps -ocmd -p12
4 (Info zu Command für Prozess mit PID 124)ps -ocmd -p$$ | tail -n 1
(Bitte selber analysieren! Wirkung: zeige den Namen der genutzten Shell an.)
Anm.: grep für "Filtern" von Daten (Wikipedia Link - global regular expressions print)
Prozess-Tools:
ps, pstree, pstree -p, top
kill pid
(Signale beachten; "Overkill SIGKILL" mit -9, Standardsignal SIGTERM ist -15)killall prozessname
(kann mit Prozessnamen arbeiten)
Prozesseigenschaften: PID, Status (running, sleeping, zombie)
Tipp: Grafische Übersicht (oft) mit Strg + Esc (oder Aufruf/Suche nach System...)
Bootvorgang
Mal der Reihe nach...
(1) Einschalten
Reset, POST - Power On Self Test
(2) BIOS / UEFI
mit Bootsequenz (Startreihenfolge; engl: Bootsequence / Startmedien)
Übersicht Bootmedien:
USB (Sticks / HD), Netzwerk (PXE / TFTP), Festplatten / SSDs, Optische Medien (CD/DVD)
MBR (Masterbootrecord mit Partitionstabelle (maximal 4 Partitionen: 4 Primäre oder 3 Primäre und 1 Erweiterte)
Hinweis: für das Booten von HDs > 2,2 TB wird UEFI mit GPT (GUID Partition Table) benötigt
Erinnerung / Tipp: (ggf. nach Fehlschlag Parallelinstallation zu Windows)
Windows-Systeme benötigen als Bootstandard eine Aktive primäre Partition inkl. eines "sauberen" MBR (Generischer MBR)
Also: Reparatur-Tipp zum MBR: mit Win-DVD: bootrec /fixmbr
(bzw. bootrec /fixboot
für Bootsektor) in Reparaturkonsole
Darstellung zu Partitionierungen:
exemplarische Szenarios für Parallelinstallation mit Windows - Linktipp MS
(3) Linux-Bootmanager: GRUB2
Übersicht Bootmanager und Technik Bootmanager folgt; Vorgänger / Bootalternativen: GRUB (Version 1), LILO (Linux Loader)
(4) Kernel und initrd
klassisch: init Ramdisk - initrd laden; Anm.: die Ramdisk ist optional)
Symlinks bei openSUSE: vmlinux (komprimierter Kernel), initrd
Analyse Kernel-Version: uname -a
bzw. uname -r
Bei UEFI: Laden per Grub2 mit linuxefi und initrdefi !
(5) systemd
Erster Prozess mit ID "1") (früher: SysVInit mit Urprozess init)
Anm.: openSUSE (und fast alle anderen Linuxe benutzen systemd ("abwärtskompatibel" zu init),
Ubuntu hatte zwischenzeitlich upstart als init-Lösung (aktuell: auch systemd mit 16.04 LTS)
Gründe für Abkehr von SysVinit zu alternativen init-Techiken:
Effizienter, Parallel arbeitend, Abhängigkeiten von Prozessen cleverer lösend
Tipp zur Startanalyse: systemd-analyze blame
(erzählt in ms - Millisekunden - die Geschichte der "Starts")
oder auch: systemd-analyze plot > grafische-analyse.svg
(erstellt SVG-Grafik)
Technisch: systemd arbeitet mit Targets (z.B. default.target) statt den klassischen Runleveln
Befehle: init
, telinit
, runlevel
, systemctl
(statt sysctl
bei init-Technik), journalctl
(für Analyse/Logging)
Urprozess PID 1 - systemd
(Reference Manual Chapter: The systemd Daemon)
init-Technik wurde durch systemd-Technik ersetzt bei Beibehaltung der alten (abwärtskompatiblen) init-Skript-Techniken und Ordnerstrukturen nach SysVinit.
Befehle: systemd-* (Tipp: Konsole dann systemd- TAB TAB)
systemd-analyze blame
(zeigt zeitlich sortiert die Schuldigen beim Systemstart)systemd-analyze plot > systemstartanalyze.svg
(erzeugt SVG-Grafik des gesamten Systemstarts; Tipp: zur Anzeige in Browser ziehen)
Verzeichnisstruktur
(eine kurze Übersicht - siehe auch ausführlicher Beitrag zu FHS auf Wikipedia)
Ordner | Anmerkungen |
---|---|
/bin |
Binaries, ausführbare Programme Aktuell (oft) nur noch als Link zu /usr/bin (siehe SW usrmerge in Distros)Userspezifische Programme in $HOME/bin - z.B. /home/joeb/bin Pfadliste besachten: echo $PATH |
/boot |
Kernel vmlinuz (komprimiert, mehrere Versionen mit Nummern),Ramdisk initrd (auch als initramfs) |
/boot/grub2 |
Bootmanger GRUB2 Einfache Konfigurationen mit /etc/default/grub ) |
/dev |
Geräte /dev/fd0, /dev/sr0, /dev/sda, /dev/sdb, /dev/null, /dev/urandom, ... |
/etc |
Konfigurationen /etc/fstab, /etc/hosts, /etc/hostname, viele Konfigurations-Unterordner: /etc/skel, ... |
/etc/X11 |
Klassischer Ordner für den X-Server Grundtechniken Grafikausgabe: klassisch xorg vs. modern Wayland |
/home |
Benutzerprofile: /home/username |
/lib |
Programmbibliotheken / Libraries siehe auch /lib64 |
/lost+found |
bei journaling File Systems Daten für Fehlersuchen/Behebungen siehe auch Toolreihe fsck |
/media |
Mountpoint für Wechselmedien Anm.: oft nicht mehr genutzt |
/run/media/username |
neuer Mountpoint für Wechselmedien bei openSUSE und anderen modernen Linux |
/mnt |
Klassischer Mountpoint - der alte Standardmount für manuelle Mounts |
/opt |
Optionale Software (zum Beispiel XAMPP Lamp Server - Link) auch: kommerzielle Software siehe auch $HOME/opt als Benutzerverzeichnis für Benutzersoftware, Appimages, ... |
/proc |
Prozesseverwaltung (siehe Ordner mit PID-Nummern) Übung: cat /proc/meminfo ; cat /proc/interrupts ; cat /proc/cpuinfo |
/root |
Homedir für SuperUser root |
/sbin |
Programme mit hohen Privilegien (SuperUser) Aktuell (oft) nur noch als Link zu /usr/sbin (siehe SW usrmerge in Distros) |
/srv |
Serverdienste Verzeichnisse z.B. für Webserver - diese findet man gerne auch unter /var/www ;-) |
/tmp |
Temporärer Ordner; gemeinschaftlich im System später: besondere Zugriffsrechte mit Sticky Bit |
/usr |
Großteil der installierten Software im System (Unix System Resources) beinhaltet /usr/bin und /usr/sbin , ... |
/var |
Variable Daten siehe Webserver /var/www/htdocs/webprojektA , Datenbanken, ... |
FHS
Unterscheidung/Gruppierung von Daten auf Unix/Linux Systemen gemäß File Hierarchy Standard (FHS):
- veränderliche / dynamische vs. statische und
- gemeinsam genutzte vs. nicht gemeinsam genutzte Verzeichnisse
Beispiele in tabellarischer Übersicht:
gemeinsam nutzbar | nicht gemeinsam nutzbar | |
statisch | /usr /opt |
/etc /boot |
dynamisch | /var/mail /var/spool/news |
/var/run /var/lock |
Beispielhafte Darstellungen: Linux Community - Linux User Zeitschrift (Linux User Ausgabe 11 / 2011 - Ältere Artikel der Zeitschrift Linux User online verfügbar/lesbar!)
Netzwerk (I)
Erste Netzwerkanalyse mit Linux:
IP-Konfiguration | Shellaufrufe |
---|---|
IPv4-/IPv6-Adresse Subnetmask |
ip address show (zeigt immer alle NICs)ip a s (kurze Variante)Tool ifconfig nicht mehr standardmäßig installiert: /sbin/ifconfig |
Standardgateway (bzw. Router) |
ip route show ip r s (kurze Variante/sbin/route -n hier: in Spalte Flags das G suchen - dann Spalte Router Anm.: Paket/SW route mittlerweile auch (oft) als deprecated bezeichnet |
DNS-Server | cat /etc/resolv.conf hier: Zeile mit Text nameserver (am Zeilenanfang) analysieren cat /etc/resolv.conf | grep ^nameserver aber: Datei wird von den Netzwerkkonfigurations-Diensten Wicked (bzw. NetworkManager) manipuliert keine manuelle Änderung gewünscht! |
Im Seminar erstelltes digitales Tafelbild: Anm.: Wacom Tablet direkt ohne Installationen unter openSUSE lauffähig!
Natürlich gibt es auch diverse Tools/Skripte, die diese Aufgaben/Aufrufe zusammenlegen, aber wir wollen auch immer die Basics bemühen und "Linux" verstehen
Erste Installationen in Konsole
Vorbereitung und erste Einblicke zu Thema Softwareverwaltung / Paketmanagement
Bei openSUSE werden unbekannte Tools mittels Konsolen-Werkzeug cnf
(Anm.: could not find) recherchiert und es werden auch gleich die nötigen Installationsvorschläge offeriert.
Beispiele für Installationen:
- Tool
route
(Anm.: mittlerweile als deprecated gekennzeichnet) für die Analyse des Standardgateways - Konsolengimmick
cowsay
(Funny Sprechblase in Konsole - führte zusudo
Tool)
Mitcat /etc/os-release | cowsay -f tux
lässt man die Linux-Distributionsinfos per Maskottchen Tux verkünden.
Die eigentlichen Installationen finden mit Installationstool zypper install ...
statt.
Benutzer-"Wechsel"
...eine kurze Zusammenfassung:
su
, su -
Switch User (mit - geschieht Wechsel in das Home-Dir des root-Users)
Empfehlung: bitte immer mit su -
wechseln, da dann auch die komplette Umgebung (Environment) wechselt.
kdesu
- der su für den KDE-Desktop (siehe Aufruf YaST oder manuell für Grafik-/Fensterapplikationen)
Anm.: in aktuellen KDE5 Plasma-Desktops kann kdesu auch verschwunden sein. Dann sollte man mit sudo - H kdeprogramm
arbeiten.
Tipp für Gnome: Tool gksudo
sudo
(quasi ein "Ausführen als") - muss extra konfiguriert werden (siehe Benutzer-Gruppe sudoers und Konfigurationen in /etc/sudo
)
Wichtig: wenn in der Konsole die sudo-Berechtigung durchgeführt wurde, dann sind alle weiteren sudo-Aufrufe sofort funktionstüchtig!
Also: in öffentlicher Umgebung die genutzte Konsole nach sudo schließen - und normaler Weise sperrt man ja auch den Desktop (Tastaturkombi oft: Strg + Alt + L ; statt Win + L bei Windows)
Anm.: bei Übungen zu Benutzern und Gruppen sollte man sudo mit neuen Benutzern testen/hinterfragen!
Bei Ubuntu wird der Nutzer aus Installation automatisch der sudo-Admin-"root"-User (root-Account dort nicht aktiv!)
Oft spielt bei den Konfigurationen rund um sudo die Gruppe sudo oder auch wheel eine besondere Rolle.
Die Konfiguration von sudo sollte mit sudo visudo
gecheckt/bearbeitet werden - Achtung: Vi Editor!
Screenshots aus Seminar-Woche 2021 - openSUSE 15.3
Screenshots aus Seminar-Woche 2020 - openSUSE 15.2
Screenshots aus Seminar-Woche 2019 - openSUSE 15.1
Tag 03
Mittwoch, 30.08.2022, 08.30 - 16.00 Uhr
Rekapitulation, TN-Fragen
Bereitstellung von Software
... kann über verschiedene Wege in Linux Distributionen bereitgestellt werden. Das ist einerseits wieder einmal sehr "frei" - wird aber eben oft auch schnell unübersichtlich.
Hier kurze Auflistungen:
- Paketmanagement
Distribution mit rpm, deb, ...
Wichtig: Unterscheidung von Distro- und Fremdquellen! - Eigenständige "entpackte" Software
z.B. bereitgestellt per GZ-Archiv oder per Git (mit/ohne zusätzliches Installieren) - Installation über Quellpakete der Software
Compiler (siehe oft GNU C Compiler gcc) - Appimages (s.a. Electron Apps)
Distro-unabhängige lauffähige "Software-Archive/Images". Diese Anwendungen kann man bei den Entwicklerplattformen (oft Git) finden oder bei Webportalen der Appimage-Techniken.
Wichtig: Keine Systemverwaltung der Appimages notwendig - einfach herunterladen, ausführbar machen (chmod u+x programm.appimage
) und fertig.
Verwaltung von Software über Software-Container
Anm.: diese Softwareverteilung benötigt im Linux-OS die nötigen SW-Dienste und Management-Tools
- Snap - https://snapcraft.io/
Distro-unabhängige Container/Images mit entsprechendem Service zur Verwaltung der Programme
Anm.: bei Ubuntu vorinstalliert - bei Ubuntu-Derivat Linux Mint entfernt und sogar für schnelles Nachinstallieren gesperrt. - Flatpak - https://flatpak.org/
Distro-unabhängige Container/Images mit entsprechendem Service zur Verwaltung der Programme
Und dann haben manche Distros hierfür auch noch spezielle Gesamt-Software-Verwaltungs-Tools, die einen "undurchsichtigen" Zugriff auf mehrere Installationswege "vorgaukeln".
Beispielsweise haben die meisten Ubuntus eine Softwareverwaltung integriert für die 1-Klick-Installation diverser Programme (Anm.: bitte hier nicht verwechseln mit der 1-Klick Software Technik von openSUSE Leap). Aber man muss dann selber herausfinden, ob man das Programm in der Deb-Paket oder Snap-Variante installiert bekommen hat. Wer immer nur über das eine (und immer gleiche !) Grafiktool installiert/deinstalliert/aktualisiert kann damit natürlich auch sein Gesamt-System pflegen.
Überblick Paketmanagement
(s.a. Extra-Beitrag auf dieser Seite für die Nutzung der Paketmanagements mit den diversen Tools)
Distro | Ableger der Distro | Paketmanagement |
---|---|---|
Red Hat (Link) |
Fedora, besser: CentOS Kaufversion: RHEL |
RPM (Red Hat Package Management) Basistool: rpm (ohne Auflösung Abhängigkeiten)Standardtool: yum |
Novell (Suse) (Link) |
openSUSE (Link) Kaufversion: SLES |
RPM mit YaST2-SW-Verwaltung Standardtool: zypper , (yum möglich) |
Debian (Link) |
Ubuntu(s), Linux Mint |
DEB (Debian Pakete) Basistool: dpkg (ohne Auflösung Abhängigkeiten)APT-Tools: apt , apt-get, apt-cache, ... , aptitudesynaptic (grafische Oberfläche - Gnome) |
Arch Linux | Arch Linux | pkg.tar.xz bzw. pkg.tar.gz Tool: pacman |
Slackware | Slackware | früher: tar.gz heute: TXZ (tar.xz) Tools: installpkg , slackpkg |
OpenWrt z.B. Router |
Linux auf Routern | ipkg |
Für die Einstimmung auf Software-Verwaltung (Installation/Deinstallation) kann man mit den YaST-GUI-Tools arbeiten.
Im Seminar werden wir immer wieder die Konsole nutzen: schneller, übersichtlicher, GUI-unabhängig
Tool für das Wandeln von DEB in RPM (und umgekehrt): alien
(kann man probieren oder einfach besser lassen!)
RPM Paketmanagement - Software verwalten / aktualisieren
openSUSE verwendet RPM (Red Hat Packages) mit diversen Tools, am einfachsten natürlich YaST2 mit der Softwareverwaltung betreuen ;-)
Hier werden auch gleich alle Paketabhängigkeiten analysiert und aufgelöst, Standard-Konsolentool rpm
In RPM-basierten Distros besser: yum
(standardmäßg nicht bei openSUSE installiert)
openSUSE: Tool zypper
(dann klappt es auch in der Konsole mit der automatischen Auflösung von Paket-Abhängigkeiten)
Anleitung zur Benutzung von zypper
auf einem openSUSE-Info-Portal (Link)
Bei Debian/Ubuntu Paketmanagement (DEB, Standard-Konsolentool dpkg
) heißt die entsprechende Toolreihe apt (bzw. apt-get, aptitude, synaptic
)
Vergleichsseiten von RPM vs. DEB Techniken und auch alternativen Software-Verwaltungen:
- Ubuntu Infoseite RPM vs. DEB
- Beitrag: Üersicht "Paketmanagement RPM vs. DEB
- Arch Wiki mit "allen" Paketmanagements
Gerade die Arch und Gentoo Wiki Seiten halten immer wieder sehr wertige Infos rund um Linux (im Allgemeinen) bereit.
zypper und rpm - Red Hat Package Mangement (in openSUSE Distribution)
Haupttool: rpm
für die Konsole;
Beispiele: (Hinweis: man nutzt in Praxis eigentlich nur rpm -q..
Aufrufe für Abfragen)
rpm -i <paket>
(installiert Paket); rpm -e <paket>
(löscht Paket); rpm -U <paket>
(aktualisiert Paket)rpm -q <paket>
(Abfrage/Query an Paket)
Wichtig: rpm kann die Abhängigkeiten der Pakete nur erkennen - aber nicht automatisch auflösen, daher sehr "unhandlich"
Tipps zu rpm: (Infos und Analysen zu Paketen und Installationen mittels rpm -q
; q für Query/Abfrage)
rpm -qa | grep Firefox
(findet die installierten MozillaFirefox Pakete)rpm -qa | grep -i firefox
(findet Firefox ohne Berücksichtigung der CaseSensitivity/GroßKleinSchreibung)rpm -qa | grep ^mc
(findet Pakete die mit mc in der rpm-Ergebniszeile beginnen)
besseres Konsolenwerkzeug openSUSE:
zypper
(hier klappen die automatischen Auflösungen der Paketabhängikeiten)zypper refresh
(aktualisiert manuell die Quellen)zypper update
(aktualisiert die Pakete/Installationen)zypper install <paket>
(installiert ein Paket)zypper remove <paket>
(entfernt ein Paket - Anm.: überlagen/kontrollieren, ob inkl. Konfigurationen gelöscht wird?!)
Quellen für Pakete: Repositories (CD, DVD, FTP, HTTP, Lokal)
Übersicht über Repositories über YaST-Softwareverwaltung (list repos)
zypper lr
bzw. zypper repos
Tipp: Vervollständigung der zypper-Befehle in Konsole mit Tab nutzen, um schnell wichtige Parameter/Argumente zu finden: z.B. --allow-vendor-change
Hinweis auf Paketgruppen, Suchen/finden/installieren/deinstallieren von Paketen, Schemata
Community Repos erweitern die Quellen für Pakete: z.B. Nvidia, Packman, libdvdcss, ...
Übung: (Nachfrage TN zu zdf.de - Mediathek bzw. Mediatheken)
Repos "Packman" und "libdvdcss" hinzugefügt und Paket "vlc" (Video Lan Client) aus Repo Packman installiert!
Installationen gemäß SDB-Beitrag (Support Database Suse): MP4/H.265 Video Support
Wichtig: für die aktuellsten Pakete und Unterstützungen müssen die Installationen mit Anbieterwechsel durchgeführt werden:
- Im YaST muss man hierzu unter Optionen - Anbieterwechsel erlauben anklicken
- In der Konsole:
sudo zypper update --allow-vendor-change
Online: Build Service (software.opensuse.org) ermöglicht Zugriff auf teilweise aktuellere Softwareversionen oder Software, die es nicht in den offiziellen Suse-Repositories gibt; Repos werden mit eigener Signatur (Key) in Repo-Verwaltung hinterlegt.
Weitere Spezialität openSUSE:
automatische Installation mit Hilfe von YaST Meta Packages (*.ymp) in Form von 1-Click-Installs bei openSUSE
siehe SUSE-Onlineportal: https://software.opensuse.org/search
Alternative Softwareinstallationen:
- Software mit eigenem Setup/Installer oder
- Source-Tarballs: Quellcodearchiv (Sources)
nach Auspacken müssen die Quelldateien (Sources) dann mit dem passenden Compiler (GCC - GNU C Compiler) übersetzt werden
Tipp: für das Software übersetzen aus Quellen gleich Alles installieren, dass man auch selber Linux-Header kompilieren könnte.
Installations- und SW-Recherche-Übungen:
Chromium - Googles Open Source Browser nutzen, oder auch Ungoogled-Chromium - bei Google wird der dann zu Chrome ;-)
Mediatheken online: ARD, ZDF, ... (siehe auch VLC - Video Lan Client in aktuellster Variante)
Bereitstellung von Repos für Codecs "Mediatheken" und Anbieterwechsel für neueste Programmversion von "AV-Bibliotheken" (Audio Video libs)
Im Zuge der Codec Bereitstellungen (siehe x264, x265, ..) werden die aktuellsten Unterstützungen mitinstalliert; Kurzanleitung:
- Repos Packman und libdvdcss konfigurieren (Stichwort: YaST2 - Communitiy Repo hinzufügen)
- Software aktualisieren mit "Hersteller-Wechsel":
sudo zypper update --allow-vendor-change
Git - Software- und Versions-Verwaltungssystem
Installation über software.opensuse.org per 1-Click-Install direkt über diese Website oder über die Kommandozeile.
Analyse: wir erhalten neben der neuesten Git-Version auch einen neuen Repo-Eintrag (devel:tools:scm) für die weiteren Aktualisierungsmöglichkeiten.
Gimp - Grafikbearbeitung
Unterschiedliche Versionen in aktuellen Repos und als letzte Entwicklerversion auf der Gimp-Website
Analyse der Versionen, Quellen und Installationswege.
Special (siehe Tab): Gimp like Photoshop
Visual Studio Code (von Microsoft)
für die OS Windows, Linux und MacOS
Anleitung: https://code.visualstudio.com/docs/setup/linux#_opensuse-and-slebased-distributions
führt zu eigenem Zypp-Repo /etc/zypp/repos.d/vscode.repo
Screenshots aus Seminar-Woche 2021 - openSUSE 15.3
Screenshots aus Seminar-Woche 2020 - openSUSE 15.2
Screenshots aus Seminar-Woche 2019 - openSUSE 15.1
Tag 04
Donnerstag, 01.09.2022, 08.30 - 16.00 Uhr
Rekapitulation, TN-Fragen
VM-Special - Virtualisierung mit VirtualBox (heute bei Firma Oracle) gezeigt
Anm.: Themen "Runlevel + Targets" wurden im Seminar nur praktisch erprobt - hier folgen auch vertiefende Erläuterungen und Verlinkungen...
Runlevel
klassischer Begriff - systemd arbeitet dann mit Targets - Grundlagenartikel systemd von Heise.de
0 - Stop/Halt
1 / s / S - Single User (zu Wartungsarbeiten)
2 - Multi-User (mit und ohne Netzwerk - je nach Distribution dort der "Server" wie bei RL 3)
3 - Multi-User und Netzwerk (klassische Serverumgebung LAMP und Co)
4 - unbenutzt
5 - Multi-User, Netzwerk, X-Server (heute mit Desktops wie KDE oder Gnome)
6 - Reboot
Klassischer Ordner für Skripte /etc/init.d
mit Unterordnern für die Runlevel
→ Momentaufnahme openSUSE 42.1 (immer Runlevel 5): /etc/init.d/rc5.d
beinhaltet noch 3 Dienste mit entsprechenden (S Start - K Stop/Kill) Skripten
hier: avahi-daemon, postfix, udev; diese init-Skripte arbeiten dann mit Parametern start | stop | restart | reload
→ Momentaufnahme openSUSE 42.3:
keinerlei Skripte mehr in den Runlevel-Unterordnern /etc/init.d/rc0.d
bis rc6.d
(Anm.: nur noch in ./boot.d für AppArmor)
→ Momentaufnahme openSUSE 15.0:
keinerlei Skripte mehr in den Runlevel-Unterordnern /etc/init.d/rc0.d
bis rc6.d
und /etc/init.d/boot.d
(!)
Anm.: Red Hat (und Co) arbeiten mit /etc/rc.d
als Haupt-Skriptordner - siehe auch SymLink rc.d auf init.d bei openSUSE
Weitere Anm.: ab openSUSE 15.1 keine weitere genaue Analyse und Betrachtung dieser klassischen Skriptordner!
systemd
Reference Manual Chapter: The systemd Daemon
Init-Technik wird durch systemd-Technik ersetzt bei Beibehaltung der alten (abwärtskompatiblen) init-Skript-Techniken und Ordnerstrukturen nach SysVinit.
Dadurch werden die Start-/Stoppmechanismen durch teils gleichzeitiges Abarbeiten von Aufrufen beschleunigt - siehe S- und K-Links in Runlevel-Ordnern alle mit gleicher Nummerierung (hier 50 - S50... / K50...)
Nur noch Skripte, die nicht sauber mit systemd arbeiten - oder noch nicht umgeschrieben worden sind - konnte man noch in diesen Ordnern finden!
Hinweis ab openSUSE 15.0: keine Skripte mehr in rcX-Ordnern!
"Runlevel"-Tools: runlevel
, init X
(X = S, 0, 1, 3, 5, 6) , shutdown
, halt
, reboot
Hier mal eine ausführlichere Gegenüberstellung:
SysVinit | systemd | Bemerkungen |
---|---|---|
Runlevel | Targets | Bezeichungen für gewünschte Bootumgebung |
/etc/inittab | keine /etc/inittab vorhanden (!!) in Ordnern diverse Dateien: (z.B.) /usr/lib/systemd/system |
Konfigurationsdatei(en) |
runlevel init telinit sysctl chkkonfig |
runlevel (wegen Kompatibilität) init (w. K.) telinit (w. K.) systemctl journalctl systemd-* (z.B. systemd-analyze blame | plot ) |
Tools |
service sshd status | systemctl status sshd.service | Status openSSH Server |
service sshd start | systemctl start sshd.service | Starten openSSH Server |
service sshd stop | systemctl stop sshd.service | Stoppen openSSH Server |
service sshd restart | systemctl restart sshd.service | Restarten openSSH Server |
service sshd reload | systemctl reload sshd.service | Konfiguration openSSH Server neu laden |
chkconfig sshd on | systemctl enable sshd.service | openSSH im Runlevel/Target aktivieren |
chkconfig sshd off | systemctl disable sshd.service | openSSH im Runlevel/Target deaktivieren |
Man. Suche in Logdateien | journalctl -u sshd.service | Journal für openSSH (als root) |
chkconfig --list | systemctl list-unit-files systemctl list-units systemctl list-units --type service systemctl list-dependencies multi-user-target |
Übersicht Dienste in Runleveln/im Target |
init 3 (oder) telinit 3 |
systemctl isolate runlevel3.target systemctl isolate multi-user.target |
in Runlevel 3 wechseln bzw. in multi-user.target |
init 5 (oder) telinit 5 |
systemctl isolate runlevel5.target systemctl isolate graphical.target |
in Runlevel 5 wechseln bzw. in graphical.target |
... | systemctl isolate default.target | in Standard-Runlevel wechseln bzw. in default.target |
init 0 (oder) telinit 0 shutdown -h poweroff |
systemctl isolate runlevel0.target systemctl isolate poweroff.target shutdown -h poweroff |
Rechner ausschalten |
init 6 (oder) telinit 6 shutdown -r reboot |
systemctl isolate runlevel6.target systemctl isolate reboot.target shutdown -r reboot |
Rechner rebooten |
Tabelle zu SysVinit vs. systemd (siehe auch Link Fedoraprojekt (Link)
Linux-Wiki mit Beispielaufrufen zur systemd-Technik:
Willkommen in Bluelupo's Wiki - Grundlegende Kommandos zu systemd
Übungen: systemctl start | stop | status
mit cron. , sshd. oder auch firewalld.service systemctl list-units --type service --state running
liste alle laufenden Dienste aufsystemctl isolate multi-user.target
| bzw. graphical.target
Benutzer- und Gruppenverwaltung (Teil I)
mittels YaST2 - Benutzer-/Gruppenverwaltung aktuelle Benutzer und Gruppe analysiert
Systembenutzer/Gruppen müssen erst extra ausgewählt (gefiltert) werden
Anzeige zu Benutzern mittels Befehlen whoami, who, id, groups
Dateien der Benutzer/Gruppen: /etc/passwd, /etc/shadow, /etc/group
Inhalte und Aufbau der Dateien erläutert und recherchiert
Rechte analysiert und Benutzer- und Gruppen-IDs kennen gelernt
weitere Benutzereigenschaften: Home-Dir-Pfad, Shell (Standard /bin/bash
; speziell: siehe wwwrun: /bin/false
), Sekundäre Gruppen
Abschlussübung: neue Benutzer mit YaST-Modul angelegt und angemeldet und getestet
Tests mit gegenseitigen Zugriffen der Benutzer - hier ist "Lesen/Stöbern" in anderen Home-Dirs möglich
Wir werden erst mehr über die speziellen Berechtigungen lernen
siehe cat /etc/shadow
mit normalem Benutzer → keine Anzeige mit Hinweis "Keine Berechtigung"
Benutzer- und Gruppenverwaltung (Teil II)
Tools für Benutzer- und Gruppenerstellungen / Anpassungen: useradd
, usermod
, userdel
, groupadd
, groupmod
, groupdel
Empfehlung: vorher useradd -D
- zeigt die Defaults/Vorgaben für User) mit Home-Dir und anderen Defaultkonfigurationen.
Profitipp: die Konfiguration für Standarduserumgebung kann mit der Konfigurationsdatei /etc/default/useradd
vom root angepasst werden!
beispielhafter Zwei-Zeiler für einen neuen Standard-User:
# useradd -m -c "Teilnehmer 01" tn01
(Schalter -m wichtig für Home-Dir-Erstellung)
# passwd tn01
(Passwort setzen)
Jeder Benutzer kann mit Tool passwd
sein eigenes Kennwort ändern. Hierfür ist das Tool /usr/sbin/passwd
mit dem Set-UID-Bit konfiguriert, welches bewirkt, dass passwd mit "root"-Rechten ausgeführt wird. Mehr dazu bei den Linux-Datei-/Ordner-Berechtigungen.
Datei- und Ordnerberechtigungen
in detaillierter Liste (ls -l
) die Berechtigungen/Bits r (read), w (write), x (eXecute) für
- u - Benutzer/Besitzer (u - user)
- g - Gruppe (g - group) und
- o - "alle Anderen" (o - others)
- a - Alle - später für die Tools als Parameter
hergeleitet.
Standard-Berechtigungen in der (oktalen) Form 755 oder 644 erläutert (technisch 3 mal 3 Bit = 9 Bit)
Hinweis auf Tool umask
(hier openSUSE: 0022) mit
Standardberechtigungen für Ordner (0777 - 0022 = 0755) und Dateien (0666 - 0022 = 0644)
Befehl chown
(bzw. chgrp) zum Ändern von Besitzer (und/oder der Gruppe)
Praxisbeispiel:chown -R wwwrun:wwwrun /var/www/html
(Ordner html für Apache2 User:Gruppe konfigurieren)
Anm.: bei Debian lauten User und Group für den Apache: www-data:www-data
Hinweis: chown kann auch einfach Gruppe setzen mit chown :groupname
Befehl chmod
eingeführt und nachrecherchiert (für Gruppen chgrp
)
Beispiele: chmod 700 /home/privatuser
beim "Ausschalten" wie 700 (oder 750) reicht immer Hauptordner ohne -R für Rekursives chmodchmod u+x skript.sh
Datei skript.sh für Benutzer/Besitzer ausführbar machenchmod -aG vboxuser joeb
Den User Joeb in die Gruppe vboxuser als Mitglied aufnehmen.
Hier wichtig: Parameter -a (für append/anhängen) und das große G (beim kleinen g würde man die primäre Gruppe ändern!)
Alt.: Berechtigungen mittels Eigenschaften Dialogfenster mit Dateimanager Dolphin angesehen (Rechte Maus - Eigenschaften)
Übung mit "chmod" bzw. Dateiberechtigungen über Konsole und/oder Dolphin (Dateimanager) und Eigenschaften:
Ordner /home/donnerstag
mit Berechtigungen 750 und 700 ausstatten, und Tests mit ls mit anderen Usern (joeb, joedonnerstag)
Für chmod
(Change Modus) inklusive Unterordnern sollte -R
(Achtung: hier großes R für --recursive
) gesetzt werden.
Beim Dolphin (bei Dateimanagern) muss ein Haken für das Anwenden auf die Unterordner aktiviert werden.
Sonder-Berechtigungen:
zusätzliche 3 Bit Berechtigungen (quasi links von den 3*3=9 Standard-Berechtigungs-Bits)
Setuid-Bit - Beispiel Passwortänderungstool passwd
: - rwsr----- root shadow /usr/bin/passwd
(siehe Besitzer: root)
Sinn/Erläuterung/Nutzung:
auch normale User müssen ihre Passworte ändern können - dazu braucht man aber Schreibzugriffe (root) auf Passwort-Datei /etc/shadow
!
Security-Tipp: finde alle Setuid-Bit Tools/Skripte mitsudo find / -perm -4000 -print 2>/dev/null
(Fehler/Probleme umleiten)
SetGroupId-Bit:
dasselbe Verhalten bei Ausführung von Programmen mit Gruppen-Rechte-Übernahme
Sticky Bit - Beispiel Temporärordner /tmp
: d rwxrwxrwt root root /tmp
der Temp-Ordner also quasi 777 mit allen Rechten für "alle"!
Aber durch Sticky-Bit werden Dateien/Ordner-Berechtigungen und Besitz/Gruppe mit in den Ordner /tmp transportiert und sind so gegen die anderen Nutzer von /tmp schützbar.
Die Berechtigungen und Besitzverhältnisse (User:Group) kleben quasi an den Dateien und Ordnern.
Screenshots aus Seminar-Woche 2021 - openSUSE 15.3
Screenshots aus Seminar-Woche 2020 - openSUSE 15.2
Screenshots aus Seminar-Woche 2019 - openSUSE 15.1
Tag 05
Freitag, 02.09.2022, 08.30 - 16.00 Uhr
Rekapitulation, TN-Fragen, Hinweis: SSDs zurückbauen
Plan / To-Do-List Freitag 03.09.2021:
- Benutzer & Gruppen - mit YaST
- Forts. Übungen in Konsole (find - siehe inum und löschen; locate; ...)
Installation Toollocate
über Paket mlocate und Erstaufruf von sudoupdatedb
(um Suchindex zu erstellen) - Weitere Tools installieren/checken: inxi, rofi, ranger, f2, ...
- Vim - eine Kurzeinführung
- Skripting 101 (chmod u+x)
- Drucken
Anm.: auch für folgende Übungen bitte Firewall OFF! - nfs (NFS4-Freigaben für TN im Netz mit NFS4-Server)
- ssh (Secure Shell) mit Windows - Linux im "Windows-Netz" bzw. mit NAS
- ... schauen wir mal...
Übung: Midnight Commander
... installiert mit zypper install mc
Aufrufen in Shell/Konsole mit mc
F10
zum Beenden; Strg + O
zum ein-/ausblenden des Commander-Fensters
Tipp Gnome: für das gnome-terminal
in den Eigenschaften die F10 deaktivieren!
VIM - VI improved
Warum sollte ich mich mit VIM beschäftigen:
- Manchmal auf "Systemen/Servern" mein einziger Editor!
- Software könnte in Konfigurationen selbstständig einen "Standard-Editor" wählen - nämlich VIM (siehe visudo oder crontab Tabellen editieren)
Checken: Paket vim installiert und nicht nur Paket vi oder vi.tiny
ESC - wechselt in Basismodus zurück (z.B. aus Insert / Einfügen Modus)
:q! - Quit / VIm verlassen mit ! erzwingen
:w - Speichern / Write
ZZ - Speichern und VIM beenden
i - Insert / Einfügen Modus
A - Insert / Einfügen Modus am Ende der Zeile
VIM Aufrufen:
vim datei.txt
- öffnet / erstellt Datei datei.txtvim -R datei.txt
oder view datei.txt
- öffnet Datei im Read-Only-Mode (schreibgeschützt)
Diverse Lehr- und Lernvideos zu VIM finden sich auf Youtube und sind von mir in anderen und weiterführenden Seminarunterlagen verlinkt und kommentiert.
Verschiedene Nutzungen und Installationen unter Linux möglich!
Wichtig: der HW-Hersteller des Druckers (s.a. Scanner) muss "Linux-Treiber" für seinen/Ihren Drucker bereitstellen - technisch: *.PPD Dateien
Im Grunde wie bei allen Betriebssystemen:
- Treiber / Unterstützung für die HW / Drucker muss bereitgestellt werden
- Einbindung und Verwaltung des Druckers im Betriebssystem
Varianten für Drucker-Verwaltungen bzw. Installationen:
0) manuelles Installationsarchiv des Druckerherstellers,
das erst noch mit chmod u+x install-script.sh
zum Ausführen vorbereitet werden muss und sauber per absolutem oder relativen Pfad ./install-script.sh
ausgeführt werden muss.
1) lpd - Line Printer Daemon, der klassische Dienst zum Verwalten von Druckern, Druckjobs, Printqueues
Kommandozeilentools: lp
(siehe wieder lp <tab tab> zeigt: lpq
, lpr
, lpc
, lpstat
, lpinfo
)
2) YaST2 Modul Drucker
zum Installieren oder Verwalten von Druckern bei Suse-Systemen mit YaST
3) Desktopmanager Druckerkonfiguration (KDE, Gnome, XFCE)
Tipp: sind möglichst zu vermeiden, weil diese Tools manchmal individuelle Konfigurationen verwenden!
4) CUPS - Common Unix Printing Service (Apple)
der aktuelle Druckserver-Standard, Distro-unabhängig und per Weboberfläche verwaltbar:
Webadresse/URL (im Browser) localhost:631
(also Port 631)
Seminarübung:
Beispielinstallation eines "HP Color 500 Laserjet (m551)"
mit Hilfe der HP Linux Imaging and Printing Toolserie über die Websites
bzw. des entsprechenden Pakets hplip aus unserer Distribution:zypper search hplip
zypper info hplip
zypper install hplip
(jetzt sind alle unterstützten Drucker/Scanner/Multifunktionsgeräte dem Linux bekannt)
Jetz noch eine passende Drucker-Installation erzeugen - hier mit dem HP Setup Tool (alternativ: s.o. KDE, YaST, CUPS)hp-setup
Anm.: für das saubere Finden der HP-Drucker im Netzwerk muss ggf. kurz die Suse-Firewall gestoppt werden:systemctl stop firewalld.service
(später natürlich wieder starten oder einfach Neustart abwarten)
Verwaltung der Druckserver-Umgebung dann (z.B.) mit CUPS unter URL localhost:631
oder einem anderen Tool Ihrer Wahl.
Empfehlung: bitte für ein Tool entscheiden und nicht mit mehreren Tools gleichzeitig Ihre Drucker verwalten.
Skripting 101
Einfaches Skript in Skript-Ordner erstellt:
Anm.: erste Zeile ist sog. Shebang{code lang:bash showtitle:false lines:true hidden:false}#!/bin/bash
# Kommentare, ...
ip address show
ip route show
cat /etc/resolv.conf | grep ^nameserver{/code}Sauberer Aufruf (siehe Pfadliste echo $PATH
) mit ./testscript.sh
nachdem wir chmod u+x testscript.sh
das Skript lauffähig gemacht haben.
Immer wieder: Linux ruft Programme nur aus den Pfaden der Benutzer auf - siehe echo $PATH
!
tar
Archivieren, Packen (Tape Archiver; mit Packertechnik)
tar cvzf Archiv.tar.gz ./Dokumente
(packen mit gzip)tar xvzf Archiv.tar.gz
(entpacken mit gzip)
Hinweis: nach dem Parameter f sollte ein/der Datei-/Archivname folgen - alle anderen hier gezeigten Parameter in Reihenfolge frei
c - compress/create
v - verbose (mitteilungsfreudig, "geschwätzig")
z - Kompression Gzip (Alternative: j - bzip2)
f - Dateiname
x - Extrahieren
C - Ordner als Ziel angeben
Entpacken in gewünschten Ordner: tar xvzf archiv.tar.gz -C /tmp
Mounten - Inbetriebnahme von Datenträgern
Anm.: hier im Seminar die Konzentration auf die Wechseldatenträger "CD/DVD" und USB-Sticks
und mit Dolphin (KDE) und Konsole (siehe mount-Befehle)
Mounten: das Einbinden von Datenspeichern/Datenträgern und anderen Komponenten (siehe virtuelle Systeme) in das System.
Befehle: (Geräte/Datenträger werden automatisch erkennt und per Klick gemountet)mount
(der eigentliche Hauptbefehl zum Einbinden von Laufwerken/Mounten) umount
(Mounten beenden)
Hinweis: heutzutage bei allen Wechselmedien (optische, USB) automatisches Mounten durch User (technisch: im Userspace → FUSE)
Aktuellen Mount-Status anzeigen: mount
ohne Parameter (oder natürlich alternativ: cat /etc/mtab
(aktuelle Mount-Situation)cat /etc/mtab | grep ^/dev/
(nur die Einträge mit /dev am Anfang - also Geräte)
oder direkt "greppen": grep ^/dev/ /etc/mtab
Anweisungen/Konfigurationen für das System zum Mounten beim Systemstart: cat /etc/fstab
Weitere Tools: (Partitionieren, Formatieren)fdisk, cfdisk
, mkfs.ext4
Alle Analysen gerne wieder mit Hilfe von lsblk
(liste Blockgeräte), blkid
(zeige IDs der Blockgeräte), fdisk -l
, cfdisk
Partitionierungstools
SSH - Secure Shell
... inklusive Übungen mit Teilnehmern. Erst mal die beteiligten Topics in Übersicht:
- Ist ssh-Server installiert und läuft?
- Prozesse analysieren
- Dienste-Verwaltung
- Firewall - ist der nötige Port für den ssh-Server offen.
eine beispielhafte Vorgehensweise mit Techniken aus der bisherigen Woche:
Recherche zu ssh (Paket openssh) - ist "ssh" installiert? rpm -qa | grep ssh
(Vorgriff auf morgige Darstellungen zu Paketmanagement und Softwareverwaltung)zypper search openssh
(zypper nur bei Suse! Paketname eigentlich openssh oder bei anderen Distros openssh-server)
YaST Softwareverwaltung
Anm. zu openSUSE: Paket heißt hier openssh und beinhaltet sowohl ssh-Client also auch ssh-Server Software.
Läuft der ssh-Dienst (sshd)? ps ax | grep sshd
(zeigt uns: Nein - da läuft kein sshd!)systemctl status sshd.service
(siehe auch Übungen der BU-Woche)
Dienst sshd für unseren Standard-Runlevel 5 (genauer graphical.target für systemd) konfigurieren:
YaST2 - System - Dienste-Verwaltung - sshd (enable und starten) - Einstellungen sichern, odersystemctl enable sshd.service
(wieder: siehe auch Übungen der BU-Woche)
Neuer Test, ob sshd läuft? Ja!
Für Netzwerkzugriff - Fachlich: ssh-Client-/Server-Technik
von ssh-Client (z.B. r203pc17 - 192.168.3.117)
auf ssh-Server (z.B. r203pc11 - 192.168.3.111)
Jetzt noch die Firewall auf Serverseite mittels
YaST - Sicherheit und Benutzer - Firewall - Allowed Services (Erlaubte Dienste) konfigurieren und
den Dienst "Secure Shell Server" hinzufügen und Firewall-Konfiguration sichern.
Auf den ssh-Server dann mittels ssh Aufrufen verbinden:ssh username @ ip-adressse
(bzw. @ machinename - Anm.: ohne Leerzeichen um das @-Symbol)
Anm.: für namentliche Adressen linux11
benötigt man DNS oder /etc/hosts
Einträge)
Gerne per SSH auch Programmaufrufe inkl. Fenstermanagement (X-Server):ssh -X ...
(erstellt ssh-Verbindung mit Fernaufruf für X-Fenster-Programme)
Anm.: bei Erstverbindung Signatur/md5-Fingerabdruck bestätigen
Für das Kopieren von Dateien/Ordnern mit SSH nutzen wir scp
in der Konsole.
In vielen Distros können die grafischen Dateimanager direkt über die Adresszeile eine SSH-Verbindung ermöglichen (Tipp: manchmal Strg + L für Öffnen der Adressleiste nötig). Dann gibt man einfach die SSH-Verbindung als Adresse ein:ssh://username @ ip-adresse
(bwz. @ machinename)
Beim Dolphin von KDE benötigen wir das Fish-Protokoll (Anm.: sollte installiert sein)fish://username @ ip-adresse
So lässt sich dann auch über die Grafikoberfläche ein Datei-/Ordnermanagement sicher herstellen.
ssh mit Windows:
Wir brauchen einen ssh-Client und am Besten gleich noch einen X-Server (für "Linux-X-Fenster")
- putty (Link) - der Klassiker (die ssh-Tools als Sammlung oder einzeln; ohne X-Server (inklusive X-Server siehe cygwin)
- MobaXterm (Link) - die geniale "all-in-one" Lösung als kostenlose Installation, Zip oder kostenpflichtige Enterprise-Version
gezeigt mit Windows-PC:xeyes &
auf Windows Desktop!
Linux im "Windows-Netz"
... bzw. mit NAS und dortigen "Windows-Freigaben"
Linux-Technik: Samba-Server - ein Wortspiel mit dem Microsoft-Standard-Netzprotokoll smb/cifs.
Die Linux-eigene "Freigabe-Technik": nfs - Networt File System
Übung: eine SMB-(Windows-) Freigabe mittels Dolphin verbinden.
Adresszeile (oberhalb) in Dolphin:
smb://rechnerIP
(oder komplett: smb://rechnerIP/freigabename
)
Nach Bestätigung der Adresse kommt ein Möglichkeit zur Authentifizierung mit Benutzername + Passwort.
Für nachhaltiges "Speichern" der Authentifizierung kommen zusätzliche "Digitale Brieftaschen" ins Spiel.
SSDs zurückbauen und Standardinstallationen "Win" der VHS BS testen!
TN-Bescheinigungen, Feedback-Bögen, letzte TN-Fragen
Prüfungsvorbereitung / Musterprüfung:
Screenshots aus Seminar-Woche 2021 - openSUSE 15.3
Screenshots aus Seminar-Woche 2020 - openSUSE 15.2
Screenshots aus Seminar-Woche 2019 - openSUSE 15.1
Specials
Im Laufe der Jahre haben wir in den Seminare verschiedenste TN-Themen dargestellt und ich will diese Infos nicht einfach "weglassen" aus diesem Beitrag / dieser Beitragsreihe, sondern hier bei den Specials unterbringen.
Benötigte Software/Downloads wird den TN bereitgestellt. Die Vorgehensweise werden im Seminar praktisch durchgeführt und für die TN dokumentiert.
Bash Technik
Die Standard-Bash verfügt über einfache Mechnismen beim täglichen Datei- und Ordnerhandling. Das geht aber mit ein paar einfachen Tools noch besser.
FZF
Fuzzy Finder für die Shells aber auch gerne später im VIm.
Projektseite: https://github.com/junegunn/fzf
Kurzanleitung mit Installation via Git-Repo:
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install
Alle Nachfragen mit Standard übernehmen, damit die nötigen Shell-Konfigurationen erzeugt und konfiguriert werden.
Tastenkombinationen:
- Strg + R - Rekursive Suche
- Strg + T - Datei- und Ordnersuche
Der Entwickler stellt auch ein VIm-Plugin zur Verfügung, mit der man dann diese mächtigen Such- und Filtertechniken im Editor VIm nutzen kann (Readme für VIm-FZF).
Z
Das verbesserte "Change Directory - cd" als Befehl z
.
Projektseite: https://github.com/rupa/z
Kurzanleitung: (hier für Ordner ~/opt/..
)
git clone https://github.com/rupa/z.git
In der ~/.bashrc (am Ende) das z-Shell-Skript sourcen:
. ~/opt/z.z.sh
Dann einfach ein paar der Ordner mit cd
wechseln. Dann zeigt z
bereits eine Liste an und lässt sich nutzen.
Starship.rs
Mit dem in Rust geschriebenen Starship-Projekt kann man sich eine Befehlszeile mit einer einzigenen Konfigurationsdatei starship.toml definieren. Diese Konfiguration lässt sich dann per One-Liner in der jeweiligen Shell-Konfiguration (Bash, Zsh, Fish, PowerShell, ...) einfügen.
Kurzanleitung: (Bitte gerne das Skript vorab herunterladen und analysieren!)
sh -c "$(curl -fsSL https://starship.rs/install.sh)"
Einbinden in die Bash:
eval "$(starship init bash)"
Aber wie gesagt: Starship lässt sich in diverse Shell von diversen OS integrieren: siehe Github-Projektseite zu Starship
Als Trainer stelle ich gerne auch eine erste Konfigurationsdatei für Starship ( ~/.config/starship.toml
) bereit.
Powerline-Go - Bash
Die Befehlszeile inklusive Techniken zu Git & Co in attraktiver Aufmachung.
Hier sind mit der Anwendung Terminator in mehreren Fenstern neben der Bash auch die Zsh (Z Shell) und die PowerShell zu sehen.
Boot-USB-Stick
Unter openSUSE einfach mit Grafik-Tool imagwriter (also: zypper install imagewriter )
Einfach ein heruntergeladenes ISO per Drag & Drop auf das Tool ziehen, einen USB-Stick (leer oder mit vernachlässigbarem Inhalt) einstecken (nicht mounten!) und den Schreibprozess auf den Stick starten. Der USB-Stick wird vollständig überschrieben!
Ein anderes (Profi-) Tool: UNetbootin (Link Homepage - github)
Technische Anmerkung zum Booten von USB-Sticks: ggf. muss das (heutige) UEFI auf das Booten von USB-Sticks konfiguriert werden. Insbesondere muss bei manchen USB-Boot-Sticks die UEFI-Boot-Konfiguration auf "UEFI und Legacy Boot" gestellt werden.
Trick: aus der DVD eine ISO erstellen mit Linux-Boardmitteln:dd if=/dev/sr0 of=/tmp/suse-dvd.iso
(Gerätebez. wieder vorher per lsblk
analysieren)
Und am Besten man hat gleich einen Install-Stick mit "allen gewünschten" Install-Medien parat: Ventoy Boot Stick
Ventoy modifiziert einen USB-Stick, sodass man von kopierten ISOs booten kann.
Linux für alte Hardware
TN-Interesse: Linux für alte Hardware (Link zu freiem Artikel)
siehe offenen Heise c't Artikel "Revival - Alte Hardware mit Linux wiederbeleben"
Recovery von Accounts mit Hilfe Grub2-Bootloader
Problem: root Passwort vergessen / verbaselt / ...
Lösung: mit Hilfe von Grub2 neues Passwort vergeben.
Beispielhafter Online-Beitrag der "Linux-Welt 06/2014": Passwort für Linux vergessen
Anm.: im Seminar hatte ich zum Zeigen über den Dozenten-PC das Problem, dass die USB-Tastatur, wegen diverser manueller Umschalter am Trainer-Platz nicht sauber in Grub2-Konsole erkannt wurde.
Auf einem Teilnehmer-Notebook wurde der folgende Trick erfolgreich angewendet ;-)
Rechner starten und in Grub2-Menü per e
den Edit-Modus des Standard-Booteintrag auswählen.
Anm.: bei aktuellen Ubuntus ist Grub2 Modus auf hidden konfiguriert und müsste erst per Modus show aktiviert und nutzbar gemacht werden - stattdessen kann man ggf. mit dem Recovery-Modus arbeiten: Heise-Artikel "Ubuntu-Passwort vergessen".
In Zeile mit der der Kernel geladen wird (Anfang der Zeile: linux ...
bzw. linuxefi ...
hängen wir am Ende den Parameter init=/bin/bash
an.
Wichtig: wir haben hier in Grub2-Konsole englische Tastaturbelegung: also das = (Gleichheitszeichen) oben rechts neben Backspace-Taste und / unten rechts auf - (Minus) Taste.
Tipp: englische Tastaturbelegung online recherchieren oder alternative OSK (On Screen Keyboard).
Den modifizierten Kernelstart per Grub2-Hilfe (siehe unten) booten: (oft) Strg
+ X
oder F10
.
Wir befinden uns jetzt in einer Root-Konsole - siehe #
oder whoami
!
Check: mit mount checken, welchen Bootmodus das Root-Dir /
(bzw. damit /etc/passwd
und /etc/shadow
) haben.
Das ist hier sehr wahrscheinlich der Modus ro
- also nur als Read-Only!
Wir mounten die Partion neu mit Modus rw : mount -o remount, rw /
(und wieder checken)
Passworte setzten mit Tools passwd
bzw. passwd username
.
Neustart des Rechners funktioniert nur das Hard-Reset. Für Tools reboot
oder shutdown -r
fehlt die komplette Runlevel/Target-Umgebung.
Alternativer Password-Reset, falls der "init-Trick" nicht funktioniert (Anleitung Suse Docs: Password reset)
System mit Linux-Live-System oder Installations-Medium booten und Rescue Modus wählen (User: root)
Kurzanleitung:
- Partition mit
/
Dir (siehe Zugriff nötig auf/etc/...
) finden - z.B. mitfdisk
- Entsprechende Partition mir "rw" mount:
z.B.mount /dev/sda2 /mnt
odermount -o remount,rw /dev/sda2 /mnt
Anm.: Mount-Modus "rw" mitmount
checken! - Nutzen von chroot Technik:
#cd /mnt
#chroot /mnt
#passwd
Eine solche "Trickserei" und Rettung des Systemzugriffs ist bei jedem System/OS möglich, solange die entsprechenden Datenträger nicht verschlüsselt werden!
Gimp like Photoshop
Hier: Anleitung in Linux Welt 05/2020 - Softwaretipps - Seite 110 - "Gimp: Näher an Adobe Photoshop"
Wichtig: curl
und git
werden benötigt
Projekt auf https://github.com/doctormo/GimpPs.git
Die eigenene GIMP-Konfiguration /home/joeb/.config/GIMP/2.10
wird per Backup gesichert mit Skript.
Praxis im Seminar.
Vielen Dank nochmals für Ihre tollen Rückmeldungen zu unserem Seminar
und Ihr Interesse an weiteren Seminaren.
Viel Spaß und Erfolg mit Linux wünscht Ihnen Ihr Trainer Joe Brandes