Linux ins Gehirn

Aus lugvswiki
Zur Navigation springenZur Suche springen

Die gehirnfreundliche Einführung in Linux die dich zum Linux-Checker macht.

Wenn du was nicht verstehst lies einfach mal weiter bis zum Ende. Teile auf der Mailingliste mit was du nicht verstanden hast so dass wir den Linux ins Gehirn Schhnelleinstieg verbessern können.

Falls du ein Wort nicht kennst helfen nutze einfach - Google Suche - Google Video suche - Youtube Suche - Google Bilder suche Z.b. "Terminal Ubuntu" beachte aber immer dass Infos alt sein können. Als z.B. "Terminal Ubuntu 20.08" um eine bestimmte Ubuntu Version zu finden Ich hoffe wir haben Zeit passende Videos-Links einzufügen So findest do oft auch die offiziellen Quellen wie Distro spezifische Dokumenattionen und Wikis oder Foren.

https://translate.google.com/ hier Link rein und du kannst auch Englisch auf Deutsch übersetzen lassen.

Es gibt viele Linux und es gibt Evolution. Siehe https://de.wikipedia.org/wiki/Datei:DebianFamilyTree1210.svg

Es gibt Onlineseiten um viele Linux auszuprobieren: https://distrotest.net/

Aber lass mich dir helfen dich zu orientieren und erklähren warum 200 Distros durchzuprobieren viel Zeit kostet und wenig hilft.

Installationsanleitungen (noch suche in Youtube) Links wollen wir später unter einfügen oder für jede Linux-Distro eine eigene Wiki Seite machen. Denn Dinge wie man Pakete installiert ist leider bei jeder Distro ähnlich aber unterschiedlich benannt. Ist wie Autofahren. Alle fahren, aber der Schalthebel ist woanders :-/

Das Auto also Linux besteht aus

 - dem Kernel (der mit der Hardware spricht)
 - Grafikkarten-Treiber
 - Die Grafische Oberfläche also was du siehst und womit du arbeitest
   X11
   wayland
   arcan (mit X11 und Wayland Brücken)
   mit sogenannten Window-Managern die das Look&Feel ausmachen
   (KDE/Gnome/Xfce/wmii/LXDE)
   Im Zweifelsfall nutze Gnome, KDE oder IceWM/Lxde für schwache Hardware
   und starte erstmal.  Die sind ähnlich zu Windows und einfach zu verstehen.
   Siehe https://de.wikipedia.org/wiki/Fenstermanager
 - User-Space Anwendungen (wie Firefox) etc was du startest und benutzt.
 - IO Devices (Festplatten/USB-Sticks/CDs) .. also Byte-Arrays auf denen
   Schichten wie cryptesutp/luks um Daten zu verschlüsseln konfiguriert werden
   können. Darauf kann man dann Dateisysteme konfigurieren.
 - Dateisystemen
     Sorglos Datei-System-Empfehlung: BTRFS weil schnelle Backups und Snapshots
     möglich auch RAID konfugurierbar. Oder traditionell Ext4 & eigene
     Backup-Lösungen.

Und deswegen ist es sehr zeitintensiv und nicht zielführend 2000 Distros durchzuprobieren und nach der grünen Farbe zu suchen. Denn meist kann man alle so konfigurieren dass sie >>grün<< aussehen :)

Grün meint hier viele Dinge wie Fentstermanager, Click-und Keyboard Verhalten etc.

Jetzt nachdem Du verstanden hast dass 1000 Distros zu probieren möglich ist aber nur vielleicht Sinn macht wichtige Fragen:

  • Was benutzen meine Bekannten die mir helfen können?
  • welche Anwendungen sind mir wichtig, also was will Ich machen
 z.B. High end Video-Bearbeitung oder Closed Source etc gibts halt eventuell
 doch Unterschiede wie einfach sie zu installieren sind.

Die Wahrheit ist leider auch dass was vor 5 Jahren *gut* war heute kompliziert geworden ist wie z.B. Ubuntu weil snap* etc eingeführt wurde und dann manches wie Chrome mit Microphon/Diktat Funktion als Snap Variante noch nicht geht.

Und jede Distro hat ihre Stärken und Schwächen. Im Prinzip kann man davon ausgehen dass die Standardsoftware Firefox/Chrome/Vscode/Inkscape/LibreOffice/Krita/.. überall installierbar ist weswegen Flamewars nur bedingt Sinn machen :)

Will man komplexe Setups machen wie Server mit Mail etc braucht man überall ein wenig manuele Konfiguration.

Es gibt allerdings fundamentale Unterschiede.

D.h. im Zweifelsfall 1) Paketquelle suchen -> gibt's das Paket? 2) wenn nein in Community fragen oder kurz Google fragen

Manchmal gibts 3 Antworten .. :-/

YouTube Google etc sind deine Freunde *ABER* achte immer auf das Datum und die Versionen der Pakete was beschrieben ist. Oft findet man alte Anleitungen ! Dennoch oft hilfreich um sich Ideen zu holen. Beachte dass es Speed-Regler gibt etc um schnell die Infos zu holen, die einen interessieren.


Linux-Installation unter Windows zum reinschnuppern

Windows -> VirtualBox -> Iso virtuell einlegen -> mal installieren ausprobieren Snapshots erstellen auf Virtualbox Ebene -> erstmal Sorgenfrei reinschnuppern

Windows -> Linux Subsystem -> z.B. ubuntu snapd -> geht nicht Achtung das Linux Subsystem kann auf Windows Festplatte zugreifen !


Windows ersetzen oder durch Linux ergänzen

Festplatten auf denen die Daten abgelegt sind sind wie Gebäude in denen es Zimmer gibt wo die Daten auf Regalen liegen.

Es gibt 2 Gebäude-Typen:

1) DOS (älter)

2) GPT (neuer / meist mit EFI)

und Empfangsdamen, die beim Start entscheiden, welche Räume (Betriebssystem) du nutzen willst. Z.b. Mrs Grub (früher auch Lilo etc)

D.h. bevor Linux installieren kannst must du deine Festplatte in Räume (Partitionen) unterteilen.

Alte Hardware -> DOS Gebäude. Neue Hardware GPT (EFI)

Typische Linux-Installationen haben folgende Struktur:

Raum: SWAP (ca 8GB). Wichtig für Schlafen ohne Stromverbrauch. Der Werkraum der

     den Arbeitsspeicher ergänzt. Mindestens so gross wie dein RAM

eventuelle Kinderzimmer (wenn du nicht weißt was gemeint ist lass dies weg)

 /home
 /home/Anna
 /home/Ben

Boot-Partitionen

/boot -> efi/grub Dateien

System

Raum: / / bedeutet hier findest du alles und kannst Wegweiser zu anderen Räumen erstellen. Das nennt sich mounten.

Wenn du alles gesichert hast dann einfach [weiter] klicken und schauen was passiert. Wenn nicht im Zweifelsfalls auf Mailingliste nachfragen und Stammtisch abwarten

D.h hier werden die sogenannten Mount-Points konfiguriert, welches Zimmer welche Bedeutung hat.

/boot -> /dev/sda1 (500MB) /home/ -> /dev/sda2 (80% der Festplatte) swap -> /dev/sda3 ( ca 8 GB mehr als RAM) / -> /dev/sda4 ( Systemdateien ca 8GB oder mehr empfohlen) /bilder -> /dev/sdb1 ( Systemdateien ca 8GB oder mehr empfohlen)

1 2 3 4 sind die Raumnummern und sda ist die Festplatte. Hier gibts aber andere Wege einen Raum zu identifiziern z.B. UUIDs etc.

Beachte z.B. dass /bilder auf einer zweiten Festplatte liegt die als /dev=/sdb(1 2 3 ) vom Kernel bezeichnet wird. Je nachdem über welchen Bus was angebunden ist heißen Festplatten/SD-Karten/Sticks anders. lsblk ist dein Freund im Zweifel :)

Jetzt hast du verstanden dass eine Festplatte wie ein Gebäude ist mit vielen Zimmern - und diesen Zimmern Bedeutungen gegeben werden kann.

Und jedes Zimmer muss vor der Benutzung mit Regalen versehen werden (also formatiert). Das nennt sich Dateisystem (engl: Filesystem).

wenn du also ein Zimmer neu mit Regalen bestückst (also neu formatierst) sind deine alten Daten weg. Deswegen gibts oft extra Fragen "Bist du sicher?"

Also wenn du wichtige Daten hast mache zuerst ein Backup.

Es gibt dann noch Abstraktionsebenen die Regale oder Räume zusammenzufassen und zu sagen Raum 1 und 2 ergeben zusammen einen Werkraum oder alles soll 2 Mal auf verschiedenen Festplatten abgelegt werden falls ein Regal kaputt geht und Regale sind fortlaufend zu nummerieren. Sowas nennt sich dann Raid. Aber externes Backup zu haben ist wichtiger .. als RAID.

wenn du nicht weisst was, dann nutze BTRFS Regale in den Zimmern, weil das einfach einfach ist und mit dir mitgeht Snapshots und Backups erlaubt und deine Daten schützt und auch als RAID1 Bit-Dreher etc erkennt und korrigieren kann. Für einfache RAID1 ersetzt es alle alten Lösungen wie mdadm volume manager (LVM1 LVM2) etc. Ein Snapshot bedeutet dass du alle Inhalte einfrieren kannst und unter einem Namen erhalten bleiben wie Subvolume /backup-2022-mai

D.h. vor Systemfehlern (Updates) aber auch menschlichen Fehlern versehentliches Löschen schützen.

Was ist SWAP? Wenn man ein Haus bauen will (also Arbeiten) braucht man Ablagen. Wenn der RAUM nicht mehr ausreicht braucht man einen Garten, um dort mal Balken abzulegen. Das ist der SWAP. Dein Garten :)

Wenn du schlafen willst muss alles aus dem Haus raus, und in den Garten. Dann kannst du schlafen. Deswegen muss der Garten mindestens so groß sein wie dein Bett (Arbeitsspeicher) auf dem alles rumliegt um gerade mal Hausaufgaben zu machen.

Merke: Auf dem Bett (Arbeitsspeicher oder RAM) kannst du alles verteilen um den Überblick zu behalten. Wird das Bett zu klein brauchst du einne Garten (SWAP) um noch mehr verteilen zu können. Aber Zugriff wird langsam weil du aus dem Fenster schauen musst und in den Garten laufen musst. Das ist aber immer noch schneller als was von der Festplatte zu holen. (also im Regal zu suchen).

Zusammnefassung: Wenn du keine Ahnung hast nimm was Distro vorschlägt oder ein kleines Zimmer als SWAP und großes Zimmer für alles mit BTRFS Regalen und fertig.

Jetzt verstehst du ein bischen was sda1 sda = Festplattename a = erste b = zweite etc. 1 = erster Raum 2 = zweiter Raum. Was SWAP ist (dein Garten um sachen abzulegen falls PC schlafen will) Was formatieren beudeutet (Raum mit Regalen zu versehen) Was mounten ist in ein Regal ein Hinweis zu schreiben gehe zu Raum 2 .. und suche dort im Regal 3 weiter

Was eine Partitionierung ist (GPT oder DOS) - die Gebäudestruktur. Was ein Boot-Manager macht. Er sagt dem PC in welchem RAUM das Betriebssystem liegt.

Und dass es deine Aufgabe ist zu verstehen dass du ein Gebäude brauchst und Räume anlegen musst bzw der Installationsprozess dies für dich tut.

Festplatten, USB Sticks, SD-Karten, CDs .. alles einfach nur Gebäude mit Regalen. siehe mounten oben. Die meisten Distros machen das für dich heute.

Ein Raum wo man Regale reinmachen kann nennt sich Blockdevice :)


Wenn du jetzt egal welche Installationsanleitung folgst, bist du nicht mehr ganz verloren.

Jetzt welches Linux soll in ein GebäUde einziehen ?


Was kommt in die Regale rein?

  • der Kernel (der orchestriet das Bett, den Garten, die Hardware).
  • deine Daten
  • Anwendungen (sowas wie Kaffeemaschine oder Ofen).
 Nutzbare Dinge wie Firefox (Webbrowser), Thunderbird (Emailprogramm),
 LibreOffice (Briefe etc) sind oft in /bin/ Verzeichnissen abgelegt.
 Oder findet man in der Shell mit firef dann tab um zu firefox zu ergänzen

Paketmanager

sind verantwortlich die Kaffemaschine Waschmaschine, Ofen, Solarium, das Fischaquarium etc im Haus einzubauen. Je nach distor geht das ein wenig anders.

 Debian-Like
 apt-get apt-cache apt


 OpenSuse:
 ...
 Nix -> /etc/nixos/configuartion oder nix-env -i
 Slack:


 voidlinux:


Im Zweifelsfall in der Dokmuentation des Linux nachschauen, vorallem da einige auch schöne Programme anbieten statt Kommandozeile

Was wenn Ich eine chinesische Kaffemaschine habe?

Dann brauchst ein Kernel-Modul, dass chinesisch und die Kaffemaschine versteht :) Das nennt sich dann Treiber. Kaffeemaschine kann ein drucker, ein Fernsehempfanger oder auch eine Funktastatur sein.

So brauchst du z.B manchmal extra Programme die eben Android oder Iphone sprechen und Daten synchronisieren können. Manche Tools sind nicht auf Kernel Ebene. Sondern einfach nur Programme wie eine Kaffemaschine. Das nennt sich dann UserSpace.

Was ist die Kommandozeile?

Ich will dass du aus Festplatte 1 ein GPT-Haus machst:

 # PARAMETER = Umgebungsvariablen
 DEV=XXXXX  # ersetze durch /dev/sda ! aber daten gehen verloren !
 SWAP_SIZE=30GiB
 BOOT_SIZE=512MiB
 # parted für die Bauarbeiten nutzen:
 parted /dev/${DEV} -- mklabel gpt
 parted /dev/${DEV} -- mkpart primary $BOOT_SIZE -$SWAP_SIZE
 parted /dev/${DEV} -- mkpart primary linux-swap -$SWAP_SIZE 100%
 parted /dev/${DEV} -- mkpart primary 1MiB $BOOT_SIZE -$SWAP_SIZE 100%
 parted /dev/${DEV} -- mkpart ESP fat32 1MiB $BOOT_SIZE
 parted /dev/${DEV} -- set 3 boot on
 # 100% = Ende der Festplatte
 # -$SWAP_SIZE = Am Ende der Festplatte $SWAP_SIZE zurückgehen
 # ...
 # Ja, die Kommandozeile kann auch Rechnen z.B. $(( 10 + $SWAP_SIZE ))
 # Was bedeutet dass das Ich eine Anleitung machen kann, und 6 Befehle
 # per Copy Paste hintereinander ausführen kann ohne mich jedes Mal wie 
 # bei Windows wiederholen zu müssen ? Meine Finger tut schon weh
 # vom sich wiederholenden Klicken. Ja, das bedeutet es.

Ich will dass du BTRFS Regale auf festplatte 1 in Raum 2 einbaust:

 mkfs.btrfs /dev/sda2


Ich will dass du eine Lokomotive einbaust (Beispiel Debian-Like)


 atp-get install sl

Ich will dass du ein Malprogramm zur Verfügung stellst:

 apt-get intsall krita -y
 # -y bedeutet mach einfach ohne mich zu fragen


Ich will Firefox, malprogramm und Office:

 apt-get install firefox krita libreoffice -y
 # Wow -> soviel einfacher als Windows :)


um die Sprache der Programme zu verstehen kannst du eingeben

 apt-get --help
 apt-get -h
 man apt-get
 info apt-get


Im Zweifelsfall kommst mit ctrl-c oder q wieder aus Programmen oder Pagern raus.

Ich will dass du in den keller gehst alle Schaltplatten mit .wav findest und sie komprimierst als mp3:

 for schaltplatte in /mnt-keller/regal-1/*.wav; do
   sox $schaltplatte ${schaltplatte/.wav/.mp3}
 done


Ich will dass du den Kofferraum des Autos (mein USB-Stick) verfügbar machst:

 # sdc1 mit lsblk nachschauen
 mount /dev/sdc1 /mnt/


Ich will dass mein USB-Stick weiterfahren kann, also mach den Verweis im Regal /mnt weg, aber bitte warte bis alles im Kofferraum ist:

 umount /mnt


Ist klar wenn Auto weiterfährt während noch Daten reingeladen werden gibts einen Unfall ! :) Ist wie beim Einkaufen. Wenn die Milch runterfällt sind deine Daten weg.


Ja eine Kommandozeile macht Spaß. Man ist Chef.

Dar war nur eine Einführung.. hier gibts viel zu lernen.

Kommandozeilen gibt man in Terminals / Konsolen ein.


Ich bin der Boss ? Wirklich?

Vielleicht hat ein obiger Befehl nicht funktioniert. Der Boss unter Linux heißt root. Du erkennnst wenn du in der Rolle von Root eine Kommandozeile nutzt an dem # in der Shell. Um Root zu werden gib in eine Shell ein

 sudo su

was soviel bedeutet wie als Superuser (root) führe su (switch user) aus. dann sollte # erscheinen und die ganzen Befehle wie oben gezeigt sollten funktionieren. Deswegen findest du in vielen Anleitungen auch immer ein sudo vorangestellt wie in

 sudo atp-get install thunderbird -y


Jetzt verstehst du auch die beudetung von root und sudo :) Weiter gehts ..

Also wo darf ich Boss sein? Wo gebe Ich sowas ein ? =

Google Terminal Distro Name. Dann bekommst du eine Shell. Meist /bin/bash. echo $BASH_VERSION sollte was anzeigen. Dann kannst du Readline-like Abkürzungen nutzen:

 ctrl-a gehe an Anfang
 ctrl-e gehe ans Ende
 ctrl-r such letzte Befehle
 history -> zeige alle Befehle die Ich genutzt habe
 Benutze history --help zu lernen wie man speichert wenn man mehrere Shells auf
 hat (shared history z.B. in ZSH)
 !abc -> letzer Befehl mit abc
 !:$ -> letztes Argument
 ctrl-p vorheriger Befehl oder Pfeil-hoch-Taste
 ctrl-n nächster Befehl oder Pfeil-hoch-Taste
 esc-b oder f  nächstes/vorheriges Wort
 ctrl-u alles links vom Cursor löschen. ctrl-e ctrl-u löscht alles

Wenn du wiederkehrende Aufgaben hast kann man auch Funktionen erstellen.

 mache_backup_auf_usb_stick(){
   ( # ( = Subshell starten
     set -e # bei Fehler abbrechen
     set -x # alle Befehle ausgeben so dass man versteht wie weit das Script ist
     mount /dev/sda1 /mnt # besser UUID verwenden !
     rsync --delete -ra / /mnt/ # Achtung, das überschreibt alles und alte Versionen, es gibt bessere Tools
     umount /mnt
     # oder besser BTRFS verwenden. aber das ist nur eine Illutsration
   )
 }

Mache mehrer Backups und warte bis alle fertig sind

 echo backup1; backup1; echo $?
 echo backup2; backup2; echo $?

Wenn du das in ~/.bashrc speichers ~ steht für $HOME Umgebungsvariable oder /home/$USER dann kannst du in Zukunft mache_b dann Tab Taste und dein Backup startet.

Aber Bash kann noch viel mehr. und bei richtig komplexen Dingen weicht man irgendwann auf Programmiersprachen wie Perl/Python/.. aus.

echo $? gibt die Exit-Codes aus. 0 bedeutet meistens Erfolg. Alles andere Problem.

Jetzt bist du schon fast ein Shell-Profi :) Na ja ein bischen. man bash zeigt dir wie viel du noch lernen könntest.


Wer suchet der findet schneller =

 im Browser ctrl-f
 dann F3 oder shift-F3 weiter / zurück

In less pager z.B. here oder nach man:

 firefox --help | less
 # oder
 man firefox
 /wort dann Return Taste
 Ein Wort benutzen wie Leerzeichen -f Leerzeichen, also " -f " findet schnell das Flag -f.
 q zum beenden
 n oder N weiter/zurück

Mit grep


 firefox --help | grep -i window


In Dateien

 # Suche in /mnt und /etc nach einem Wort, dass mit AB anfängt und DEF aufhört also eine Regulärer Ausdruck (-e) ist, ignoriere Groß/kleinschreibung (-i) und suche rekursiv in allen Unterverzeichnissen (-r) und zeige 5 Zeilen davor und danach an (Context 5 Zeilen -C 5).
 grep -r -C 5 -i -e  'AB*DEF' /mnt /etc


Fundamentale Unterschiede zwischen einigen Distros:

Bitte beachte dass eine Linux-Distro wie ein Volk ist. Man kann es nicht in 3 Sätzen beschreiben. ;-/ Dennoch gibts kulturelle Unterschiede.


OpenSuse

Durch automatische Tests/Kompielierungen grosse Paketquellen zu erwarten. Ulf kennt sich gut aus und kann hier helfen. :)

NixOS Linux:

Neuartiges Paketmanagement mit verteilbaren Offline-Archiven verteilter Kompilierung und zentraler Konfiguration.

D.h. wenn du viel von Github installieren willst ist das ein Versuch wert. Wie einfach es ist hängt aber von Details (-> Mailingliste bzw Community Support der Distros nutzen) Manches ist in 2 min als Paket hinzugefügt, anderes dauert Tage weil viele Libraries fehlen.

Durch perfekte Trennung der Pakete bei Installation durch Sandboxes viele Versionen von gleicher Software installierbar.

Durch eine globale Konfiguration wird /etc/* erstellt. D.h. gleiche Config gleiches Systemverhalten. Aber manche Dinge wie z.B. Krita Python-Scripting funtionieren (noch) nicht. Steigende Nutzerzahl. Flexibel in Konfiguration.

Gibts meine Pakete? Hier einfach suchen, das ist die Quelle aller Pakete: https://github.com/NixOS/nixpkgs/

Es gibt aber auch verteilt Overlays irgendwo auf Github z.B. für CadQuery etc.

Leider gibts n

Gentoo Linux:

Alles von Shell Scripten komplilieren. Es gibt Overlays. Eventuell ist NixOS das bessere System langfristig.

Ubuntu:

War in der Vergangenheit "no brainer". Jedoch wegen Snap und Wayland etc Umstellungen kann es sein dass Dinge die man nutzte wie synergy oder selbst Chrome mit Sprachunterstützung etwas probieren erfordern.

Druckertreiber etc sind aber meist schnell installiert

Grosse Investments dahinter. Leichte Abspaltung von Community.

Debian

Alter Bekannter

Lernsticks

Endless List