Infosite von Joe Brandes
Eine Website von Trainer Joe Brandes. Infos zu IT-Seminaren von A bis Z.
Das klassische PCS Zertifikat
Von der Hardware und Netzwerktechnik bis zu den den Betriebssystemen Windows, Windows Server und Linux
Ich biete diese Module an!
Zertifikat CMSOD
Module Basiszertifikat
Module Specialist
Ready for Tech Deep Dives...
Bitte gerne ihre gewünschten Seminarinhalte anfragen!
An der VHS Braunschweig findet ein 2-Tages-Seminar Linux für das Gauß IT Zentrum der TU Braunschweig (GITZ) statt.
In unserem praxisorientierten 2-Tages-Seminar wollen wir die Techniken des alternativen Betriebssystems am Beispiel verschiedener Linux Distribution kennen lernen: 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.11Teilnehmerzahl: 12 TN (Status: 27.01.25) Zeiten: Mi, 29.01. bis Do, 30.01.2025; jeweils 08.30 - 16.00 UhrDownloads: OneDrive (Trainer Joe Brandes) - siehe Screenshots der Seminartage (nach Sem)
Ich werde unser Seminar in diesem Beitrag wieder ausführlich begleiten...Ihr Trainer Joe Brandes
Topics:
Es gab beim GITZ Umfragen zu gewünschten Themenschwerpunkten zu unserem 2-Tages-Seminar.
Hierbei ergaben sich (lediglich) folgende Punkte:
Das sollten wir in der Orientierung zum Anfang des Seminars miteinander weiter abstimmen.
Wenn man meine Info-Portale zu Linux Seminaren über die Jahre verfolgt hat, dann wird man dort über viele Jahre openSUSE und Debian im Rahmen diverser Linux-Seminar finden. Bei LPIC-Seminaren oder anderen vertiefenden Linux-Seminaren (Server, Workshop) werden immer mehrere Distros installiert, kombiniert und geschult. Es geht immer um Linux am jeweiligen Distributionsbeispiel - die Distro selbst ist letztlich von nachrangiger Bedeutung.
Aber allgemein gilt: Linux ist immer Grunde immer Linux ;-) Man muss sich halt ein wenig um die individuellen Umsetzungen bemühen.
Häufig das Hauptunterscheidungskriterium:
Auch die aktuellen Entwicklungen bei Suse (ALP) - und übrigens auch bei vielen anderen Company-driven Distros - führten bei mir und vielen Partnern zu einer Verlagerung zu der maßgeblichen Community-driven Distro: Debian. Das soll übrigens keine generelle Kritik an Company-drive Distros darstellen - alles hat seine Bewandnis und seinen Einsatzzweck.
Anm.: Debian feierte jüngst seinen 30. Geburtstag und hat über Jahrzehnte seine Zuverlässigkeit und Nutzbarkeit unter Beweis gestellt. Und natürlich stellt Debian die Säule und den Ursprung für Hunderte von Distributionen der Debian-Family dar (Debian Derivate wie Ubuntu, Kali, LMDE).
WICHTG: Koordination von Wechselplatten für die Seminartage und für das Seminarende - ggf. Wechsel der SSDs am Seminartagende checken!
Die Ausarbeitungen im Rahmen meiner Linux-Seminare und Interessen finden Sie als RestructuredText Dokumente unter linux.joe-brandes.de.
Mal sehen wo die Reise mit dieser Unterlage noch hingeht...
...für die Downloads (siehe Screenshot-Sammlungen zu den Seminartagen) nach unseren Seminaren: Temporärer Download-Ordner für TN im Seminar
Diese Online-Portal - bzw. die entsprechenden Seminar-Ordner - stehen natürlich auch nach den Seminaren zur Verfügung. Oder aber man fragt die Unterlagen direkt bei mir nach.
Diesen Begriff hört man in meinen Seminaren häufiger ;-). Gemeint ist hier: Das grundsätzliche Verständnis der fraglichen IT-Techniken. Am Besten gleich so, dass man auch nach einer Zeit ohne Beschäftigung mit diesen Techniken sehr schnell wieder in Fahrt kommt.
Unter einem roten Faden versteht man ein Grundmotiv, einen leitenden Gedanken, einen Weg oder auch eine Richtlinie. „Etwas zieht sich wie ein roter Faden durch etwas“ bedeutet beispielsweise, dass man darin eine durchgehende Struktur oder ein Ziel erkennen kann. Quelle: Wikipedia - Roter Faden
Unter einem roten Faden versteht man ein Grundmotiv, einen leitenden Gedanken, einen Weg oder auch eine Richtlinie. „Etwas zieht sich wie ein roter Faden durch etwas“ bedeutet beispielsweise, dass man darin eine durchgehende Struktur oder ein Ziel erkennen kann.
Quelle: Wikipedia - Roter Faden
Der Auftraggeber GITZ hat sich im Vorfeld des Seminars eine Red Hat Ausrichtung für das Training gewünscht. Daher hier ein paar Infos vorab zu dieser Distro-Familie. Über die TU Braunschweig haben wir Zugriff auf eine (sogenannte) KI-Toolbox und da habe ich mal mit dem Grafik-Spinner Dall-E 3 ;-) die Namen der Red Hat Distro reingeschmissen und der Phantasierer (KI) hat die folgende Grafik erfunden. Ich habe herzlich über die Änderungen der Schreibweisen für CentOS geschmunzelt.
Die AI hat hier nicht nur die CentOS Schreibweisen geändert, sondern bei Alma Linux ein ganz besonderes "m" gezeichnet und "Linux" weggelassen - letzlich passen die angeforderten Bezeichner "RHEL" und "Rocky Linux". Im Grunde also: Alles richtig gemacht ;-)
Die Situation um die Linux-Distributionen Red Hat Enterprise Linux (RHEL), Fedora, CentOS, AlmaLinux und Rocky Linux ist in den letzten Jahren durch bedeutende Veränderungen geprägt.
Was heißt es eigentlich, wenn man von der Red Hat Familie spricht? Im Grunde geht es um gemeinsame Basistechniken und Werkzeuge und hier wollen wir uns ein paar Beispiele verdeutlichen:
Hier ist ein Überblick über die Distributionen sowie Entwicklungen.
RHEL ist die kommerzielle Linux-Distribution von Red Hat, die für Unternehmen und Organisationen konzipiert ist. RHEL wird durch ein Abonnementmodell unterstützt, das Wartung, technischen Support und Zugriff auf Software-Pakete bietet.
Red Hat hat den Fokus auf Stabilität und Sicherheit, und ihre Releases haben einen langfristigen Support-Zyklus (Long Term Support - LTS).
Fedora ist die Community-Distribution, die direkt von Red Hat unterstützt wird. Sie dient als Testbett für neue Technologien, die möglicherweise in zukünftige RHEL-Versionen übernommen werden.
Fedora hat schnellere Release-Zyklen (ca. 13 Monate) und ist in der Regel die erste Distribution, die neue Features und Software-Versionen integriert.
Fedora ist vollständig Open Source und entwickelt sich kontinuierlich weiter, wobei jeder Release eine Lebensdauer von etwa 13 Monaten hat.
CentOS war lange Zeit eine kostenlose, Community-basierte Distribution, die eine binäre Kopie von RHEL war, was bedeutete, dass Benutzer RHEL-ähnliche Stabilität und Sicherheit ohne Lizenzgebühren erhalten konnten.
Im Dezember 2020 kündigte Red Hat jedoch an, CentOS Linux einzustellen und stattdessen CentOS Stream einzuführen, das als eine Art Rolling-Release-Modell fungiert, das zwischen Fedora und RHEL steht.
Diese Änderung führte zu einer erheblichen Verwirrung in der Community und zu Unzufriedenheit, insbesondere unter den Nutzern, die die traditionelle CentOS-Distribution als Alternative zu RHEL geschätzt hatten. In Kürze: CentOS ist tot für Enterprise und generell für alle LTS-sensiblen Bereiche!
Aufgrund der Einstellung von CentOS suchten viele Benutzer nach Alternativen, die ähnliche Eigenschaften wie das alte CentOS aufweisen.
Die Landschaft der Red Hat-Distributionen hat sich also in letzten Jahren dramatisch verändert - insbesondere im Zusammenhang mit CentOS.
RHEL bleibt die kommerzielle Nutzung, während Fedora als Vorreiter neuer Technologien agiert. AlmaLinux und Rocky Linux sind wertvolle Alternativen für Benutzer, die nach stabilen, RHEL-kompatiblen Lösungen suchen, nachdem CentOS seine ursprüngliche Rolle hier verloren hat.
Zusammenfassung
Die Entwicklungen sind ein Zeichen dafür, wie wichtig Gemeinschafts- und Open-Source-Initiativen geworden sind, um die Bedürfnisse der Nutzer zu erfüllen, insbesondere nach Änderungen in der Unterstützung und Infrastruktur der bestehenden Distributionen.
Legen wir mit ein paar ersten Infos los.
Linux ist der freie Betriebssystemkern (hier: monolithisch, wobei seit geraumer Zeit die 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:
Erste öffentliche Erwähnung durch Linus Torvalds in Newsgroup comp.os.minix am 26. August 1991 (Wiki-Link L. Torvalds).
... stellen die gesamte Software bereit:
Hier ein die maßgeblichen Vertreter: (siehe auch c't Linux Netzplan)
Eine Übersicht als Linux-Weltkarte: "Linuxlands" von Linux Welt 2013 David Wolski (CC BY-SA)
Weitere erwähnenswerte Distributionen: Arch Linux (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 ;-)
Fedora (Desktop - bzw. Entwicklerplattform von Red Hat) RHEL (Kaufversion $)CentOS (Community Version)Post-CentOS: Alma Linux, Rocky Linux
yum
/etc/yum.repos.d
dnf
zypper
dpkg
apt
aptitude
synaptic
nala
emerge
slackpkg
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 Distro in unseren Linux-(Einsteiger)-Seminaren:
Und natürlich ist die folgende Auflistung ohne Anspruch auf Vollständigkeit ;-)
Und wie gesagt: es lassen sich sicherlich noch viele weitere (wertige) Quellen im Netz finden und auch bei Youtube sind die aktuellen Debian Versionen 11 und 12 sehr gut vertreten.
Die Installationspraxis wird eine UEFI-basierte Installation von Debian 12.6 Bookworm durchführen.
Technik:
Für die Einstimmung und Begleitung habe ich im Vorfeld eine Demoinstallation ausführlich mit Screenshots erstellt. Wie auch die sonstigen digitalen Infos aus dem Seminar kann man diese Unterlagen online bei meine bekannten Quellen finden und downloaden.
Die TN bekommen eine ausführlichen Darstellung und Praxis für die Installation der verschiedenen Distros.
Bitte bei der Installation lieber langsam und fragend die einzelnen Schritte mitvollziehen. Die Installation führen wir oft parallel miteinander durch.
Kurzdarstellung am Beispiel Installation Debian 12.6 Bookworm (UEFI) mit Standard Desktop Gnome
Für die Standardinstallation mit einer 500 GB SSD ergeben sich hier 6 Volumes/Partitionen mit den Bezeichnern /dev/sda1 bis /dev/sda6
/dev/sda1
/dev/sda6
/dev/sda2
/dev/sda3
/dev/sda4
/dev/sda5
Eine beispielhafte Analyse mit Tool lsblk im installierten System zeigt (z.B.) folgende Geräteauflistung.
lsblk
Die Daten und Strukturen unserer Partitionierungen werden wir im Seminar genauer unter die Lupe nehmen.
Aktualisierungen werden bei vielen Installationen "live" während der Installation angeboten und durchgeführt.
Weitere Aktualisierungen dann im laufenden System, wobei viele Distros/DE mit Aktualisierungen a la Windows nerven (automatic updates)
Vorgriff auf spätere Befehlszeile:
apt update && apt upgrade
dnf update
Anm.: "stabile" Desktop-Umgebungen erhalten wir - wie bei eigentlich allen OS-Neuinstallationen - erst nach Neustarts!
Erste/einfache Systemeinstellungen lassen sich mittels Gnome Verwaltungs-Center und Tool Gnome Tweaks sehr einfach finden.
Techniken im Zusammenhang: Linux Kernel → X-Server → Windows Manager / Desktop
xterm
xeyes
konsole
kwrite
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.
Tipp Gnome: siehe Einstellungen und Tool Gnome Tweaks
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
systemsettings5
Übersicht Desktops:
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: z.B. polkit (eine Art Benutzerkontensteuerung - siehe Berechtigungssteuerung UAC bei Windows) oder auch die Settings-Tools (siehe gnome-settings).
Übung: Aufrufe für verschiedene Gnome Standardtools: Gedit (bzw. Gnome Editor als neue Variante), Gnome Terminal, Nautilus, ...KDE-Standardtools (Dolphin, Kate, Konsole, Standard-Browser: Mozilla Firefox, Bürosuite LibreOffice, ...)
WM - Window Manager - einfach nur Fenster managen
Übersichtsseite mit Window-Managern:
Abkürzung tty steht für Teletyper - klassisch/früher: Fernschreiber (!)
exit
logout
Erste Gehversuche in der Konsole (shell) mit Befehelen: ls -a, ls -al, cd, su, who, whoami, ping, ip
ls -a
ls -al
cd
su
who
whoami
ping
ip
Bedenke Pfade für Tools: lspci nur mit kompletten Pfad als Standard-User aufrufbar: /usr/sbin/lspci
lspci
/usr/sbin/lspci
Anm.: die Superuser/Root haben den Pfad /sbin in Ihrem Pfad - Pfade anzeigen mit echo $PATH (Pfadvariable)
/sbin
echo $PATH
Aufruf von Grafik-/Fensterprogrammen über die Konsole: firefox & , xeyes & Tipp: & startet Programme im Hintergrund und machte die Konsole weiter nutzbar!
firefox &
xeyes &
Fontgrößen anpassen
setfont /usr/share/kbd/consolefonts/suse12x22.psfu.gz
setfont
dpkg-reconfigure console-setup
Man-Pages (z.B. man rm) oder Befehl mit --help (z.B. rm --help), gerne auch Hilfe zur Hilfe mit man man
man rm
rm --help
man man
Die Man-Pages werden mit dem Standard-Pager (siehe echo $PAGER ) dargestellt - oft less - Tipp: Pager most recherchieren
echo $PAGER
less
most
Alternative zu Man-Pages: info Pages (nicht bei allen Distros verfügbar)
info
Tricks in Terminal/Konsole (Bash)
ls
~/.bash_history
Screenshots aus Seminar-Woche 2023 - Debian 12. Bookworm
Screenshots aus Seminar-Woche 2021 - openSUSE 15.3
Screenshots aus Seminar-Woche 2020 - openSUSE 15.2
Screenshots aus Seminar-Woche 2019 - openSUSE 15.1
Grundidee nach Neuinstallation von Betriebssystemen: (nach Aktualisierung der Systeme!) - Testen aller Funktionen:
Und mit einer grafischen Ausstattung (wie YaST2 unter openSUSE oder den Gnome/KDE-Tools) ist das alles per Maus testbar.
Wir sollten aber immer die Konsole / das Terminal nutzen und erlernen.
Starten von Programmen in der Konsole im Hintergrund (Background - bg): kate mittwoch.txt &
kate mittwoch.txt &
Bzw. natürlich auch: kdesu kate /etc/hosts &
kdesu kate /etc/hosts &
Konsole meldet Prozess-ID / Recherche im Verzeichnisbaum: /proc/... (Ordner mit PIDs)
/proc/...
ps in Kombination mit grep zum Suchen bestimmter laufender Prozesse (z.B. sshd)
ps
grep
Prozess-Verwaltungs-Befehle: fg , bg , jobs , ps
fg
bg
jobs
Beispielhafte Aufrufe für ps:
ps axf
ps ax | grep firefox
ps --help
man ps
ps -ocmd -p12
ps -ocmd -p$$ | tail -n 1
Anm.: grep für "Filtern" von Daten (Wikipedia Link - global regular expressions print)
Prozess-Tools:
ps, pstree, pstree -p, top
kill pid
killall prozessname
Prozesseigenschaften:
Tipp: Grafische Übersicht (oft) mit Strg + Esc (oder Aufruf/Suche je nach System- bzw. Desktop-Environment...)
Eine grobe Übersicht über die Abfolge beim Bootvorgang:
(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)
Festplatten-(Standard-)Verwaltungen:
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
bootrec /fixmbr
bootrec /fixboot
Darstellung zu Partitionierungen: exemplarische Szenarios für Parallelinstallation mit Windows - Linktipp MS
(3) Linux-Bootmanager: GRUB2
Übersicht Bootmanager und Technik Bootmanager folgtVorgänger / Bootalternativen: GRUB (Version 1), LILO (Linux Loader), SystemD Boot
(4) Kernel und initrd
klassisch: init Ramdisk - initrd laden; Anm.: die Ramdisk ist optionalSymlinks: vmlinux (komprimierter Kernel), initrd
Analyse Kernel-Version: uname -a bzw. uname -r
uname -a
uname -r
Bei UEFI: Laden per Grub2 mit linuxefi und initrdefi !
(5) systemd
Erster Prozess mit ID "1" - früher: SysVInit mit Urprozess init
Ubuntu hatte zwischenzeitlich upstart als init-Lösung (aktuell: auch systemd mit/seit 16.04 LTS)
Gründe für Abkehr von SysVinit zu alternativen init-Techiken:
Tipp zur Startanalyse:
systemd-analyze blame
systemd-analyze plot > grafische-analyse.svg
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)
init
telinit
runlevel
systemctl
sysctl
journalctl
(Reference Manual Chapter: The systemd Daemon)
Die init-Technik wurde durch SystemD-Technik ersetzt bei Beibehaltung der alten (abwärtskompatiblen) init-Skript-Techniken und Ordnerstrukturen nach SysVinit.Anm. 2023: es gibt kaum noch echte init-Skripte in SystemD Linux OS
Befehle: systemd-* (Tipp: Konsole dann systemd- TAB TAB)
systemd-*
Erinnerung:
systemd-analyze plot > systemstartanalyze.svg
Es folgt eine einfache Übersicht - siehe auch ausführlicher Beitrag zu FHS - File Hierarchy Standard - auf Wikipedia
/bin
/usr/bin
$HOME/bin
/home/joeb/bin
/boot
vmlinuz
initrd
/boot/grub2
/etc/default/grub
/dev
/etc
/etc/X11
/home
/lib
/lost+found
/media
/run/media/username
/mnt
/opt
$HOME/opt
/proc
cat /proc/meminfo
cat /proc/interrupts
cat /proc/cpuinfo
/root
/usr/sbin
/srv
/tmp
/usr
/var
/var/www/htdocs/webprojektA
Unterscheidung/Gruppierung von Daten auf Unix/Linux Systemen gemäß File Hierarchy Standard (FHS):
Beispiele in tabellarischer Übersicht:
Beispielhafte Darstellungen: Linux Community - Linux User Zeitschrift (Linux User Ausgabe 11 / 2011 - Ältere Artikel der Zeitschrift Linux User online verfügbar/lesbar!)
Erste Netzwerkanalyse mit Linux:
ip address show
ip a s
/sbin/ifconfig
ip route show
ip r s
/sbin/route -n
cat /etc/resolv.conf
cat /etc/resolv.conf | grep ^nameserver
Im Seminar erstelltes digitales Tafelbild: Anm.: Wacom Tablet direkt ohne Installationen unter z.B. 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
Vorbereitung und erste Einblicke zu Thema Softwareverwaltung / Paketmanagement
Bei vielen Distros werden unbekannte Tools mittels Konsolen-Werkzeug cnf (Anm.: could not find) recherchiert und es werden auch gleich die nötigen Installationsvorschläge offeriert.
cnf
Beispiele für Installationen:
route
cowsay
sudo
cat /etc/os-release | cowsay -f tux
Die eigentlichen Installationen finden mit Installationstool apt install ... bzw. dnf install ... statt.
apt install ...
dnf install ...
...eine kurze Zusammenfassung:
su -
kdesu
sudo - H kdeprogramm
gksudo
/etc/sudo
Anm.: bei Übungen zu Benutzern und Gruppen sollte man sudo mit neuen Benutzern testen/hinterfragen!
Bei vielen Debian-/Ubuntu-basierten Distros wird der Nutzer aus Installation automatisch der sudo-Admin-"root"-User - root-Account dort nicht aktiv! Das kann auch bereits bei der Installation beeinflusst werden.
Oft spielt bei den Konfigurationen rund um sudo die Gruppe sudo oder auch wheel eine besondere Rolle. Normalerweise fügt man einfach eine Gruppenmitgliedschaft hinzu: usermod -aG whell $USER. Bei Desktopnutzungen ist meist ein Neustart, statt einfachen Re-Logins notwendig.Die Konfiguration von sudo kann auch mit sudo visudo gecheckt/bearbeitet werden - Achtung: Vi Editor!
usermod -aG whell $USER
sudo visudo
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 über die Möglichkeiten Software in Linux bereit zu stellen:
Die Verwaltung von Software ist oft auch über Software-Managements innerhalb von Desktop Environments möglich!Anm.: diese Softwareverteilung benötigt im Linux-OS die nötigen SW-Dienste und Management-Tools und stellt im Grunde keine "normale" Softwareverwaltung mehr dar!
Software in Container
In den letzten Jahren hat sich insbesondere eine Bereitstellung von Software in Containern etabliert. Der Vorteil soll sein, dass Software-Entwickler für Ihre Programme eine Version pflegen können und nicht für jede Linux Package Management und deren OS-Versionen (z. B. Debian 10, 11, 12) jeweils eigene Pakete zusammenstallen und pflegen müssen.
Beispiel für die Debian 12 Distro: das Groupware/Email-Programm Thunderbird steht nur in der alten Oberfläche und Version 102 zur Verfügung - als Flatpak wird die Version 115 (moderne Oberfläche) für den Thunderbird ausgeliefert.
Diese Technik wirft allerdings auch Schatten: die Software verlangt bei Techniken wie Snap oder Flatpak deren Basisinstallationen und die Container verlangen häufig noch weitere zusätzliche Container Umgebungen/Installationen. Die bereitgestellten Container Programme sind um ein vielfaches größer als ihre schlanken Standardpakete! Das bedeutet oft auch (sehr viel) langsamere Programmstarts und Programmverhalten.
Kurzübersicht zu Software-Containern:
chmod u+x programm.appimage
Das folgende Image zeigt die Varianten wie sie von der Software OnlyOffice bereitgestellt werden:
Ein Beitrag auf FOSTips Portal zum Thema 7 Ways to Install Applications in Ubuntu & Debian Linux
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.
Siehe auch 📦 Extra-Beitrag Paketmanagements RPM vs. DEB auf diesem Webportal für die Nutzung der Paketmanagements mit den diversen Tools der verschiedenen Paketmanager - dort aufgelistet nach Rubriken...
rpm
pacman
installpkg
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!)
alien
Debian verwendet (natürlich) DEB (Debian Package Management) mit diversen Zusatztools
Basistool: dpkg
Mit einem Basistool eines Paketmanagement können im Grunde alle Aufgaben für die Softwareverwaltung erledigt werden.Aber: es mangelt solchen Basistools an Komfort - z.B. automatische Bereitstellung von abhängigen Paketen aus Repositories.
Verbesserte Werkzeuge:
apt-get
apt-cache
Bei anderen RPM Paketmanagement (RPM, Standard-Konsolentool rpm ) heißt die entsprechende Toolreihe yum, dnf oder auch zypper
Vergleichsseiten von RPM vs. DEB Techniken und auch alternativen Software-Verwaltungen:
Gerade die Arch und Gentoo Wiki Seiten halten immer wieder sehr wertige Infos rund um Linux (im Allgemeinen) bereit.
Beispielhafte dpkg, apt-Tools Aufrufe für die System-/und Softwareverwaltung
[Aus Gitlab Repo: https://gitlab.com/joebrandes/debian-i3-onedark/-/blob/main/99-DEB12-BOOKWORM/00-DEBIAN-12-GNOME-POPSHELL/20-PopShell.md - Test mit PopOS Shell
Provide the Gnome Extensions via Browser: Extensions for Browser https://extensions.gnome.org/
Best-of Gnome Extensions: (my stuff)
Ultimative Umgebung von System76: Pop Shell https://github.com/pop-os/shell - the main reason to get my hands dirty with Gnome ;-) Tiling WM!
Die folgenden Programme sollen nur eine Anregung darstellen.
Tipp:
/etc/zypp/repos.d/vscode.repo
/etc/apt/sources.list.d/vscode.list
/etc/yum.repos.d/vscode.repo
Da lassen sich sehr schön die Konfigurationsmechanismen erkennen!
Weitere Vorschläge:
Kitty - einer meiner Terminal-FavoritenInstall kitty: https://sw.kovidgoyal.net/kitty/binary/ Gute Übung für $PATH - also die Pfadliste der Benutzerumgebung
Neovim - der ultimative EditorFür diesen Top-Editor sind die Pakete in den allermeisten Distros eigentlich immer veraltet, was diverse Probleme bei der Nutzung nach sich zieht.Install Neovim: https://github.com/neovim/neovim/blob/master/INSTALL.md Varianten/Beispiele: Install per Tar.Gz via Curl für System oder gerne auch als AppImage
Chromium - Googles Open Source Browser nutzen, oder auch Ungoogled-Chromiumbei Google wird der dann zu Chrome ;-) und bei Microsoft zu Edge
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:
sudo zypper update --allow-vendor-change
Git - Software- und Versions-VerwaltungssystemInstallation ü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 - GrafikbearbeitungUnterschiedliche Versionen in aktuellen Repos und als letzte Entwicklerversion auf der Gimp-WebsiteAnalyse der Versionen, Quellen und Installationswege.
Der klassische Begriff für die Heranführung an systemd: dann mit Targets - Grundlagenartikel systemd von Heise.de
Die Übersicht über die nummerierten Runlevel:
Auszug aus der zugehörigen Manpage:
Klassischer Ordner für Skripte (waren bei Suse) /etc/init.d mit Unterordnern für die Runlevel
/etc/init.d
/etc/init.d/rc5.d
/etc/init.d/rc0.d
rc6.d
/etc/init.d/boot.d
/etc/rc.d
Weitere Anm.: ab openSUSE 15.1 keine weitere genaue Analyse und Betrachtung dieser klassischen Skriptordner!Eine Betrachtung anderer Distros erfolgt im jeweiligen Seminar.
Reference Manual Chapter: The systemd Daemon
Die 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
init X
shutdown
halt
reboot
Hier mal eine ausführlichere Gegenüberstellung:
/usr/lib/systemd/system
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
systemctl list-units --type service --state running
systemctl isolate multi-user.target
Eine Verwaltung von Benutzer und Gruppen wird bei modernen Distros natürlich immer auch über die Tool der Desktop Environment (DE) wie Gnome, KDE, Cinnamon und Co ermöglicht. Wir wollen aber natürlich die Konsolen/Terminals nutzen
Anzeige zu Benutzern mittels Befehlen whoami, who, id, groupsDateien der Benutzer/Gruppen: /etc/passwd, /etc/shadow, /etc/group
whoami, who, id, groups
/etc/passwd, /etc/shadow, /etc/group
Weitere Benutzereigenschaften: Home-Dir-Pfad, Shell (Standard /bin/bash ; speziell: siehe wwwrun: /bin/false ), Sekundäre Gruppen
/bin/bash
/bin/false
Abschlussübung: Tests mit gegenseitigen Zugriffen der Benutzer auf dem lokalen System - 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"
cat /etc/shadow
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.
useradd -D
Profitipp: die Konfiguration für Standarduserumgebung kann mit der Konfigurationsdatei /etc/default/useradd vom root angepasst werden!
/etc/default/useradd
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)
useradd -m -c "Teilnehmer 01" tn01
passwd tn01
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.
passwd
/usr/sbin/passwd
In detaillierter Liste (ls -l ) werden die Berechtigungen/Bits r (read), w (write), x (eXecute) hergeleitet:
ls -l
Der folgende Screenshot (aus einem openSUSE-System) zeigt die Herleitung der verschiedenen Berechtigungen. In vielen Distro wird allerdings nicht die Primäre Gruppe users sondern eine zum Benutzer gleichnamige Gruppe genutzt: User joeb + Gruppe joeb.
Standard-Berechtigungen in der (oktalen) Form 755 oder 644 werden erläutert (technisch 3 mal 3 Bit = 9 Bit)
Hinweis auf Tool umask (hier: 0022) mit Standardberechtigungen für Ordner (0777 - 0022 = 0755) und Dateien (0666 - 0022 = 0644)
umask
Befehl chown (bzw. chgrp) zum Ändern von Besitzer (und/oder der Gruppe)
chown
Praxisbeispiel: chown -R wwwrun:wwwrun /var/www/html (Ordner html für Apache2 User:Gruppe konfigurieren)
chown -R wwwrun:wwwrun /var/www/html
Anm.: bei Debian lauten User und Group für den Apache: www-data:www-data
www-data:www-data
Hinweis: chown kann auch einfach Gruppe setzen mit chown :groupname
chown :groupname
Befehl chmod eingeführt und nachrecherchiert (für Gruppen chgrp)
chmod
chgrp
Beispiele:
chmod 700 /home/privatuser
chmod u+x skript.sh
chmod -aG vboxuser joeb
Alt.: Berechtigungen mittels Eigenschaften Dialogfenster mit Dateimanager ansehen (Rechte Maus - Eigenschaften)
Übung mit "chmod" bzw. Dateiberechtigungen über Konsole und/oder grafischen Dateimanager und Eigenschaften:Ordner /home/donnerstag mit Berechtigungen 750 und 700 ausstatten, und Tests mit ls mit anderen Usern (joeb, joedonnerstag)
/home/donnerstag
Für chmod (Change Modus) inklusive Unterordnern sollte -R (Achtung: hier großes R für --recursive) gesetzt werden. Bei grafischen Dateimanagern muss ein Haken für das Anwenden auf die Unterordner aktiviert werden.
-R
--recursive
Das sind zusätzliche 3 Bit Berechtigungen (quasi links von den 3*3=9 Standard-Berechtigungs-Bits)
chmod 4740
chmod 2...
chmod 1777
Setuid-Bit - Beispiel Passwortänderungstool passwd : - rwsr----- root shadow /usr/bin/passwd (siehe Besitzer: root)
- rwsr----- root shadow /usr/bin/passwd
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 !
/etc/shadow
Security-Tipp: finde alle Setuid-Bit Tools/Skripte mitsudo find / -perm -4000 -print 2>/dev/null (Fehler/Probleme umleiten)
sudo find / -perm -4000 -print 2>/dev/null
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"!
d rwxrwxrwt root root /tmp
Aber durch das 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.
Die einfache Zuweisung einer Gruppe zu einem Ordner beschränkt die Zuweisung von Berechtigungen.
Für eine feinere Abstufung von Berechtigungen für Gruppen (also Zusammenfassungen von Benutzern) oder auch einzelnen Benutzern kann man ACL nutzen. Für einen Einstieg folgen hier eine paar weiterführende Links:
Den Midnight Commander installiert mit apt | dnf | zypper install mc
apt | dnf | zypper install mc
Aufrufen in Shell/Konsole mit mc F10 zum Beenden; Strg + O zum ein-/ausblenden des Commander-Fensters
mc
F10
Strg + O
Tipp Gnome: für das gnome-terminal in den Eigenschaften die F10 deaktivieren!
gnome-terminal
Warum sollte ich mich mit dem VIm beschäftigen:
Checken: Paket vim installiert und nicht nur Paket vi oder vi.tiny
Ein paar Tastenkombis für den Einstiege
VIM Aufrufen:
vim datei.txt
vim -R datei.txt
view datei.txt
Diverse Lehr- und Lernvideos zu VIM finden sich auf Youtube und sind von mir in anderen und weiterführenden Seminarunterlagen verlinkt und kommentiert.
Und wer so richtig cool herüberkommen will, der nutzt natürlich Neovim ;-)
Es gibt verschiedene Nutzungen und Installationen unter Linux! Wichtig: der HW-Hersteller des Druckers (s.a. Scanner) kann Linux-Treiber für seinen/Ihren Drucker bereitstellen - technisch: *.PPD Dateien
*.PPD
Im Grunde wie bei allen Betriebssystemen:
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.
chmod u+x install-script.sh
./install-script.sh
1) lpd - Line Printer Daemon, der klassische Dienst zum Verwalten von Druckern, Druckjobs, PrintqueuesKommandozeilentools: lp (siehe wieder lp <tab tab> zeigt: lpq , lpr , lpc , lpstat , lpinfo )
lp
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)
localhost:631
Beispielhafte Seminarübung: HP Color 500 Laserjet (m551) im Seminarraum/Netz mit Hilfe der HP Linux Imaging and Printing Toolserie über die Websites
bzw. des entsprechenden Pakets hplip aus unserer Distribution:apt search hplip apt info hplip apt install hplip (jetzt sind alle unterstützten Drucker/Scanner/Multifunktionsgeräte dem Linux bekannt)
apt search hplip
apt info hplip
apt install hplip
Jetzt noch eine passende Drucker-Installation erzeugen - hier mit dem HP Setup Tool (alternativ: s.o. KDE, YaST, CUPS)hp-setup
hp-setup
Alt./Suse.: für das saubere Finden der HP-Drucker im Netzwerk muss bei Suse ggf. kurz die Suse-Firewall gestoppt werden!systemctl stop firewalld.service (später natürlich wieder starten oder einfach Neustart abwarten)
systemctl stop firewalld.service
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.
Einfaches Skript in Skript-Ordner erstellt:
Anm.: erste Zeile ist sog. Shebang
#!/bin/bash# Kommentare, ...ip address showip route showcat /etc/resolv.conf | grep ^nameserver
Sauberer Aufruf (siehe Pfadliste echo $PATH ) mit ./testscript.sh nachdem wir chmod u+x testscript.sh das Skript lauffähig gemacht haben.
./testscript.sh
chmod u+x testscript.sh
Immer wieder: Linux ruft Programme nur aus den Pfaden der Benutzer auf - siehe echo $PATH !
(Tape Archiver; mit Packertechnik)
Beispielhafte Aufrufe:
tar cvzf Archiv.tar.gz ./Dokumente
tar xvzf Archiv.tar.gz
Hinweis: nach dem Parameter f sollte ein/der Datei-/Archivname folgen - alle anderen hier gezeigten Parameter in Reihenfolge frei:
Entpacken in gewünschten Ordner: tar xvzf archiv.tar.gz -C /tmp
tar xvzf archiv.tar.gz -C /tmp
Anm.: hier im Seminar die Konzentration auf die Wechseldatenträger "CD/DVD" und USB-Sticks bzw. virtuelle Storages.
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
umount
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)
cat /etc/mtab
cat /etc/mtab | grep ^/dev/
oder direkt "greppen": grep ^/dev/ /etc/mtab
grep ^/dev/ /etc/mtab
Anweisungen/Konfigurationen für das System zum Mounten beim Systemstart: cat /etc/fstab
cat /etc/fstab
Weitere Tools: (Partitionieren, Formatieren - früher gdisk für GPT)fdisk, cfdisk , mkfs.ext4
gdisk
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
blkid
fdisk -l
cfdisk
... inklusive Übungen mit Teilnehmern. Erst mal die beteiligten Topics in Übersicht:
Eine beispielhafte Vorgehensweise mit Techniken: Recherche zu ssh (Paket openssh) - ist "ssh" installiert?
dpkg -l | grep ssh
apt search openssh
Läuft der ssh-Dienst (sshd)?
ps ax | grep sshd
systemctl status sshd.service
Dienst sshd für unseren Standard-Runlevel 5 (genauer graphical.target für systemd) konfigurieren: systemctl enable sshd.service Neuer Test, ob sshd läuft? Ja!
systemctl enable sshd.service
Übung / Beispiel für Netzwerkzugriff - Fachlich: ssh-Client-/Server-Technik
Anm.: ggf. auf installierte / aktivierte Firewall achten!
Auf den ssh-Server dann mittels ssh Aufrufen verbinden:ssh username @ ip-adressse (bzw. @ machinename - Anm.: ohne Leerzeichen um das @-Symbol)
ssh username @ ip-adressse
Anm.: für namentliche Adressen linux11 benötigt man DNS oder /etc/hosts Einträge)
linux11
/etc/hosts
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
ssh -X ...
Für das Kopieren von Dateien/Ordnern mit SSH nutzen wir scp in der Konsole.
scp
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)
ssh://username @ ip-adresse
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.
fish://username @ ip-adresse
Wir brauchen einen ssh-Client und am Besten gleich noch einen X-Server (für "Linux-X-Fenster")
... bzw. mit NAS und dortigen "Windows-Freigaben" (Erläuterung: NAS eigentlich Server-Storage-Hardware mit speziellem Linux und GUI)
Freigabetechniken:
Übung: eine SMB-(Windows-) Freigabe mittels Dateimanager verbinden. Adresszeile (einblenden oft mit Strg + L):
smb://rechnerIP (oder komplett: smb://rechnerIP/freigabename )
smb://rechnerIP
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.
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.
Die Standard-Bash verfügt über einfache Mechnismen beim täglichen Datei- und Ordnerhandling. Das geht aber mit ein paar einfachen Tools noch besser.
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:
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).
Das verbesserte "Change Directory - cd" als Befehl z.
z
Projektseite: https://github.com/rupa/z
Kurzanleitung: (hier für Ordner ~/opt/.. )
~/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.
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.
~/.config/starship.toml
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.
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)
dd if=/dev/sr0 of=/tmp/suse-dvd.iso
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.
TN-Interesse: Linux für alte Hardware (Link zu freiem Artikel)siehe offenen Heise c't Artikel "Revival - Alte Hardware mit Linux wiederbeleben"
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".
e
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).
linux ...
linuxefi ...
init=/bin/bash
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 !
Strg
X
#
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)
/
/etc/passwd
ro
mount -o remount, rw /
Passworte setzten mit Tools passwd bzw. passwd username .
username
Neustart des Rechners funktioniert nur das Hard-Reset. Für Tools reboot oder shutdown -r fehlt die komplette Runlevel/Target-Umgebung.
shutdown -r
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:
/etc/...
fdisk
mount /dev/sda2 /mnt
mount -o remount,rw /dev/sda2 /mnt
cd /mnt
chroot /mnt
Eine solche "Trickserei" und Rettung des Systemzugriffs ist bei jedem System/OS möglich, solange die entsprechenden Datenträger nicht verschlüsselt werden!
Ohne Anspruch auf Vollständigkeit ;-)
Spezialität bei openSUSE: YaST - Yet another Setup Tool (Installations- und Setup/Konfigurationswerkzeug)
Spezialversionen:
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.
Install-Medien:
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 ...
sha256 -c isoname.iso.sha256
Get-FileHash -Algorithm sha256 -path ...
Gerätenamen /dev/sda (für den ersten Datenträger - dann /dev/sdb, ...)
/dev/sda
/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
/dev/sda1, /dev/sda2, ...
Geräte- und Partitionsbezeichnungen:
/dev/hda
/dev/nvme0n1
/dev/nvme0n1p1
/dev/nvme0n1p2
Alternativ: Verwendung von Geräten-ID-Bezeichnern (siehe später GRUB oder auch /etc/fstab )
/etc/fstab
Aktuelle Distributionen: UUID als eindeutige Bezeichner für die Partitionen/DatenträgerbereicheVorteil: 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)
/dev/sdb1
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:
hier: 4 Volumes/Partitionen /dev/sda1 bis /dev/sda4
Hier der Partitionsgraph aus einer vergleichbaren Installation:
Erste Analyse und Tools rund um unsere Partitionen: lsblk , fdisk -l /dev/sda , gdisk (siehe GPT) , cfdisk
fdisk -l /dev/sda
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")
env LANG=C cfdisk
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
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 )
apt-get, aptitude, synaptic
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 -q..
rpm -i <paket> (installiert Paket); rpm -e <paket> (löscht Paket); rpm -U <paket> (aktualisiert Paket)rpm -q <paket> (Abfrage/Query an Paket)
rpm -i <paket>
rpm -e <paket>
rpm -U <paket>
rpm -q <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 -q
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)
rpm -qa | grep Firefox
rpm -qa | grep -i firefox
rpm -qa | grep ^mc
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?!)
zypper refresh
zypper update
zypper install <paket>
zypper remove <paket>
Quellen für Pakete: Repositories (CD, DVD, FTP, HTTP, Lokal)
Übersicht über Repositories über YaST-Softwareverwaltung (list repos) zypper lr bzw. zypper repos
zypper lr
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
--allow-vendor-change
Hinweis auf Paketgruppen, Suchen/finden/installieren/deinstallieren von Paketen, SchemataCommunity 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:
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 openSUSEsiehe SUSE-Onlineportal: https://software.opensuse.org/search
Alternative Softwareinstallationen:
Tipp: für das Software übersetzen aus Quellen gleich Alles installieren, dass man auch selber Linux-Header kompilieren könnte.
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), ...
So viel zum "alten" Abschnitt mit openSUSE...
An dieser Stelle sei auch noch einmal an meine anderen Info-Portale zum Thema Linux erinnert, die ich in unsere Seminare integriere.
Viel Spaß und Erfolg mit Linux wünscht Ihnen Ihr Trainer Joe Brandes
Sie finden auf dieser Seite - als auch auf meiner privaten Visitenkarte joe-brandes.de einige Hintergrundinformationen zu mir und meinem Background.Natürlich stellt die IT einen Schwerpunkt in meinem Leben dar - aber eben nicht nur ...
Private Visitenkarte / Technik: HTML & CSS joe-brandes.de
Ich erarbeite und konzipiere seit über 30 Jahren IT-Seminare und -Konzepte. Hierfür stehen der "PC-Systembetreuer / FITSN" und der "CMS Online Designer / CMSOD". Ich stehe Ihnen gerne als Ansprechpartner für Ihre Fragen rund um diese und andere IT-Themen zur Verfügung!
BECSS Visitenkarte / Technik: HTML & CSS becss.de
Wer einmal zum Snookerqueue gegriffen hat, der wird es wohl nicht wieder weglegen. Und ich spiele auch immer wieder gerne eine Partie Billard mit den Kumpels und Vereinskameraden. Der Verein freut sich über jeden, der einmal in unserem schicken Vereinsheim vorbeischauen möchte.
Billard Sport BS / nicht mehr von mir betreut billard-bs.de