Linux ins Gehirn: Unterschied zwischen den Versionen

Aus lugvswiki
Zur Navigation springenZur Suche springen
Zeile 484: Zeile 484:
 
Wenn du das in ~/.bashrc speichers ~ steht für $HOME Umgebungsvariable oder /home/$USER
 
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.
 
dann kannst du in Zukunft mache_b dann Tab Taste und dein Backup startet.
 +
~NAME wird zu /home/NAME also z.B. ~hannes/pfad
  
 
Aber Bash kann noch viel mehr. und bei richtig komplexen Dingen weicht man irgendwann
 
Aber Bash kann noch viel mehr. und bei richtig komplexen Dingen weicht man irgendwann
Zeile 844: Zeile 845:
 
   D.h. lerne zu überspringen was du bereits weißt
 
   D.h. lerne zu überspringen was du bereits weißt
 
   Noch nie ein Terminal aufgemacht hat und mit den Worten Kommandozeile / Shell / Befehlszeile Shellbefehl nichts anfangen kann. Siehe oben.
 
   Noch nie ein Terminal aufgemacht hat und mit den Worten Kommandozeile / Shell / Befehlszeile Shellbefehl nichts anfangen kann. Siehe oben.
   Verpasst hat dass eine persönlichen Daten in ! oder $HOME also /home/user-name liegen.
+
   Verpasst hat dass eine persönlichen Daten in ~ oder $HOME also /home/user-name liegen bzw ~hannes/pfad zu /home/hannes/.. wird.
 
   Verpasst hat dass er eventuell nichts alle sieht. Siehe versteckte Regale oben. (Alles was mit . anfängt).
 
   Verpasst hat dass er eventuell nichts alle sieht. Siehe versteckte Regale oben. (Alles was mit . anfängt).
 
   Nie Communities kennengelernt hat siehe oben wo kann man Fragen stellen.
 
   Nie Communities kennengelernt hat siehe oben wo kann man Fragen stellen.

Version vom 26. Mai 2022, 16:05 Uhr

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 siehe weiter unten "Ich verstehe nicht".

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 :-/

Ich habe Frust und innerhalb von 10 Minuten mein Problem nicht ..

-> Mailingliste und mal fragen. Pause machen. Siehe ganz unten Communities etc.

Wenn Linux ein Auto wäre, dann würde es bestehen aus

 - der Hardware (CPU / GPU RAM / Festplatte(n) / ..) (als das womit du Linux startest).
 - 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 !

Ok Linux gefällt mir, wie gehts weiter, Ich will es dauerhaft nutzen

Kein Backup kein Mitleid

Seid ihr wirklich so streng? Ja Erfahrung :)

https://lug-vs.org//lugvswiki/index.php?title=Backup BTRFS Script von Marc ist schnell differentiell und erlaubt Historie bzw sogar Raids und einfache Prüfung Integrität mit btrfs Tools Alle anderen Lösungen sind langsamer / älter (?).


Windows ersetzen oder durch Linux ergänzen bzw welche Konzepte mir Helfen Linux Installationen zu verstehen - Lass uns ein Haus bauen ;-)

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 In einem externen oft ext2 formatiertem Datei-System werden oft die Boot-Dateien Kernel und Grub etc abgelegt. Falls mal das System abstürzt und das Haupt-Root Dateisystem nicht sauber beendet wurde beeinfluss das den Kernel nicht und er kann dann das root Sytem prüfen. Teilweise durch Journaled Dateisysteme nicht mehr nötig (?).

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.

Was ist ein Journaled Raum/Regal ähm Dateisystem? Wenn der PC abstürzt wenn Regale umgeräumt werden, weil z.B für eine Videodatei zu wenig Platz ist. Dann gibts Chaos. Dabei können auch Daten verloren gehen. Siehe Kofferraum und unmount Beispiel. Journaled Regal-Systeme können einfach schneller aufräumen bzw brauche weniger Checks wenn das passiert ist nach dem neustarten. Also z.B ext4 ist journaled ext2 nicht.

BTRFS z.B ist nur ein Journal weswegen Backups etc schnell sind aber der Zugriff wenn es wirklich viele Snapshots sind ein bißchen langsamer. SSDS heute sind schnell. Meist ist das also ein guter Kompromiss.

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

Hey, ich habe ein verstecktes Regal gefunden

Langweilig, weiß doch jeder. Fängt mit . an. Sowas wie ~/.config oder ~/.firefox Ja dort sind deine Bookmarks und History etc oder ~/.chromium. Ja, manchmal muss man einen öffnen Dialog oder Datei-Browser so konfigurieren, dass ~/.bashrc ~/.bash_history etc angezeigt werden. Hat aber auch seinen Grund. Weil hier solltem an wissen was man tut (oder ein Backup haben).

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?

Früher oder später begegnen dir Kommandozeilen wie dpkg configure -a ;-( Also besser gleich verstehen was man machen kann und wie das geht .. zumindest einmal gemacht haben. Hier hier Beispiele was man machen kann. Nächster Absatz wie man ein Terminal findet wo man dies eingibt und was sudo ist. Siehe auch wer suchet der findet überschrift um sudo zu finden.

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 apt-get install thunderbird -y


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

Und was ist wenn ein Wort Leerzeichen enthält ? Also z.B ein "Mein Urlaub 2020" Ordner ?

 cd Mein\ Urlaub\ 2020
 cd 'Mein Urlaub 2020'
 cd "Mein Urlaub 2020"
 cd Mein' 'Urlaub" "2020 # ja gemischt geht auch ...
 cd Mein' 'Urlaub\ 2020
 ordner="Mein Urlaub 2020"
 cd "$ordner"

Ja .. es gibt viele Möglichkeiten ;-) Gut dass Du gefragt hast.

Also wo darf ich Boss sein? Wo gebe Ich sowas ein ? Wo finde Ich ein Terminal/Shell

Google Terminal Distro Name. Oder ctrl-alt-F1 und einloggen. Mit ctrl-alt-F(meist 7) kommst zurück zu X11.

https://www.youtube.com/watch?v=YAuqgvEiojU (Errata cd ohne alles geht auch ins Homeverzeichnis) https://www.youtube.com/watch?v=S7SAsLh60dE (Errata chmod +x script ohne sudo macht ausführbar)

Dann bekommst du eine Shell. Meist /bin/bash. echo $BASH_VERSION sollte was anzeigen dann hast du bash.

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.

 # Siehe auch Shebang #!/... um lange Scripte in einzelnen Dateien unterzubringen
 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. ~NAME wird zu /home/NAME also z.B. ~hannes/pfad

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.

Shebang - ausführbare Textdateien executable bit und Programmierdateien und Umgebungsvariablen und /etc

Ja es gibt viele viele viele Script-Sprachen unter Linux (perl, Python, PHP, TCL, bash, .. endlose Liste)

Linux hat

  #!/bin/scriptname parameter
  Hier der Quellcode

erfunden, so dass man einfache Textdateien mit ./dateiname ausführen kann. Jedoch brauchen viele Scripte noch weitere Libraries. Z.b Pyhton nutzt import PHP require Zeilen.

Solch ein Script kannst du nur ausführen wenn chmod +x dateiname gemacht wurde oder du die Datei selber mit dem Interpreter startest wie

 python datei.py
 perl datei.pl
 tcl datei.tcl

Manche Sprachen wie .java oder .c, .cc müssen zuerst kompiliert werden. Das führt hier aber zu weit ..

Beispiele für Shebangzeilen - es muss immer die erste Zeile in der Textdatei sein


  #!/bin/sh -e
  #!/usr/bin/env bash -e
  #!/usr/bin/env python
  #!/usr/bin/env perl
  #!/usr/bin/env tcl


/usr/bin/env ist vereinfacht ein Befehl der in $PATH den Interpreter sucht weil je nach Distro der Ort nicht bekannt ist. nur /bin/sh kann angenommen werden dass es immer /bin/sh gibt weil er von glibc selber genutzt wird .. ok wir tauchen wieder auf :)


Damit solche Dateien von der Shell aus ausgeführt werden können müssen sie in Verzeichnissen wie /usr/bin oder /bin oder /usr/sbin .. s steht meist für System abgelegt werden oder $PATH Umgebungsvariable muss um des Verzeichnis ergänzt werden. Z.b in ~/.bashrc.

 # Da PATH normalerweise bereits die export Eigenschaft hat kann es weggelassen werden
 # Es bedeutet weitergeben wenn ein Programm aus dieser Shell gestartet wird.
 # Vergleiche z.B mit dem DEV= .. parted Beispiel hier fehlt es.
 # Weil es nur eine temporäres Variable ist die nur in den folgenden Zeilen genutzt wird
 export PATH=$PATH:~/meine-scripte/

Diese Umgebungsvariablen werden an alle aus dieser Shell gestarteten Anwendungen weitergegeben.

Die Umgebungsvariablen bestimmen sehr viele Dinge wie Sprache, wo das X11 Fenster angezeigt wird Der Befehl export in der Shell zeigt alle bekannten Umgebungsvariablen an. Z.b. LD_LIBRARY_PATH sagt wo Hilfs-Programmteile (Shared Libraries) gefunden werden etc.

Wer suchet der findet schneller

 im Browser ctrl-f
 dann F3 oder shift-F3 weiter / zurück
 Tipp oft wird rechts am Scrollbalken gezeigt wie viele Vorkommen es gibt und wo sie zu finden sind.


 Auf dem Handy dort in Chrome Browser Menü dort suchen Wort eingeben. Pfeiltasten nächstes/vorheriges Vorkommen


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


Tipp: Oft macht es Sinn nach komischen Kombinationen zu suchen wie "u su" findent zU SUchen. Solche Wortkobinationen sind oft eindeutiger als das ganze Wort.

no permission / keine Berechtigung / mehr als ein Besitzer warum root und sudo ?

Linux hat verschiedene Aufkleber für Dateien um zu bestimmen wer was darf wie erstellen, lesen verändern. Deswegen wird jedem Prozess ein Benutzer und mehrere Gruppen zugeordnet. Intern sind das Nummern. Mit ls -l kannst du dies erkennen. Mit dem "id" Befehl kannst du deine Benutzer-ID und Gruppen herausfinden. Jede Datei / Verzeichnis speichert also ob der Beistzer bzw welche Gruppe lesen schreiben ausführen darf.

Es gibt aber auch noch weitere Ebenen wie ACLs und AppArmor SeLinux etc. Das führt aber jetzt hier zu weit.

Es ist nicht immer gewollt dass ein Kind oder ein Nutzer das ganze System verändern kann.

Auch sticky bits etc gehört in diese Kategorie.

https://www.youtube.com/watch?v=2RgpNc7AEQU https://www.youtube.com/watch?v=hcXA2nePQ4M

Bei welcher Distro welche Gruppen genutzt werden ist wieder unterschiedlich. Spezielle Gruppen wie "wheel" bedeutet so viel wie Steuerrad. D.h. der Benutzer darf sehr viel - fast soviel wie root um auch das System zu verändern und steuern. Viele Gruppen wie Scanner,Print werden einfach nach einem Einsatzzweck wie darf Drucker benutzen benannt. D.h. ein Benutzer mit wheel,print,scanner darf das System verändern z.B Pakete installieren, drucken und scannen. Welche /dev/* Dateien dann dazugehören ist wieder Spezialwissen ;-)

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 und Garbage Collector und GC roots.

D.h. wenn du viel von Github installieren willst oder Inkscape mit Plugins .. 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.

Wie fühlt es sich an NixOS zu nutzen ?

Man hat eine Konfigurationsdatei wie :

  xorg.extraConfig =  hier der Inhalt 
  system.crons = [ "hier cron Zeile" "noch eine Cron Zeile" ]
  environment.systemPackages = [ firefox (writeScriptBin "mache_backup" 
  #!/bin/sh
  hier der Code USB mounten, Backup machen, unmounten
  )]

und weiß was passiert und kann es schneller reproduzieren weil man nur z.B. 2 Dateien anschauen muss. Eine die das System konfiguriert und eine die die Hardware (mounten) konfiguriert. So hat man eine klare Trennung.

Bei anderen Distros bedeutet das obige /etc/X11/.. config /etc/cron/... /usr/bin/... und apt-get install manuell oder per Script (kompliziert) anzupassen. Und es ist schwerer zu verstehen was gemacht wurde wenn man ein Setup duplizierren will. Weil man muss dann drandenken die Xorg Config anszuschauen .. ;-/

Gentoo Linux

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

Gobo Linux

Idee ist jede Anwendung in einem Verzeichnis zu haben so dass einfach wieder gelöscht werden kann. Ich denke Nixos ist die bessere Zukunft mit Garbage Collector ;-)

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

Wie installiere ich jetzt Linux ?

Es gibt viele Wege Linux zu nutzen.

 Auf USB Stick zum Mintnehmen (Bios Booten von externen Medien meist Taste nach Einschalten oder extra Boot-  Menü Knopf am Laptop mit Nadel erreichbar
 Auf Festplatte.
 Von CD (einfach aber langsam)
 Neben Windows gleiche Partition
 Innerhalb von Windows virtualisiert (VMWare oder VirtualBox)
 Innerhalb von Windows mit Linux Subsystem für Windows
 Linux auf Windows nativ mit cygwin oder mingw
 Also Google Cloud Shell (ohne UI), Auch ein Android Telefon ist im Prinzip eine Art von Linux
 Unter Android z.B mit userland (bißchen langsam mit VNC Setup aber geht).
 Hosting-Centrum nehmen und Server einrichten mit Lieblingsdistro wie Hetzner uvw.

Deswegen versuche die offizielle Dokumentation deiner Disttro zu nutzen . Siehe oben wie man sucht. Wenn du Probleme hast nutze unsere Mailingliste.

Google oder Youtube Suche Beispiele:

"Linux mit Virtualbox installieren" "OpenSuse installieren" "Nixos Installieren" (TODO Anleitungen hier rein die funktionieren) Falls du Probleme hast nutze unsere Mailingliste (Suche diese Wiki-Seite).


Wie lange dauert eine Installation?

Je nach Konfiguration mit oder ohne Netzwerk Quellmedium (CD oder USB 2 oder 3) und Zielmedium (solid oder SSD) CPU Geschwindigkeit und Distro 20 min bis ca 2h.

Bitte aufs Datum der Anleitungen achten !


Beispiel: Per Google übersetzte Original Dokumentation von OpenSuse:

https://doc-opensuse-org.translate.goog/documentation/leap/startup/html/book-startup/art-opensuse-installquick.html?_x_tr_sl=en&_x_tr_tl=de&_x_tr_hl=en-US&_x_tr_pto=wapp


Beispiel-Suche Videos, wie man OpenSuse installiert:

https://www.youtube.com/watch?v=jPYNSGv1qh0&list=PLy1PHp-EWtxPcww4qMvxegTvpUG3L_vOR

Erklährt wie man Installationsmedium vorbereitet und dann installiert.


Welche Software gibts / Welche Distro Version benutze Ich gerade ?

Jede Distro erlaubt suchen. apt-cache search etc. Viele Distros haben auch Online-Listen. Oft kommt man weiter mit Google Suche "Packages software Distro-Name". Kompliziert wirds weil jede Distro mehrere Versionen hat welche eine Lebenszeit haben. D.h. manche Pakete werden nur für einige Distro Versionen bereitgestellt. Deswegen darauf achten dass du die richtige Anzeige du zu deiner Linux Version passt benutzt. Z.b probiere "cat /etc/os-release" manchmal auch 'lsb_release' Befehl.

Wenn du was nicht findest heißt das nicht dass man eine Software nicht mit geringem Aufwand installieren kann. Manchmal gibt es Overlays also weitere Programmquellen für Distros die von kleinen Communities supported werden.

Ein paar Beispiele

 https://www.debian.org/distrib/packages
 https://scc.suse.com/packages?name=SUSE%20Linux%20Enterprise%20Desktop&version=15.2&arch=x86_64
 https://packages.gentoo.org/
 https://search.nixos.org/packages
 

weitere Quellen:

 Github (hat eigene Suche). Installation meist fortgeschritten es sei denn
 das Paket kann über Paketmanager installiert werden.
 Sourceforce (nicht nur Windows)
 Oder Steam
 Oder Web app (im Browser)
 snap
 docker
 ...

Oder Mailingliste mal fragen.

Such-Ideen:

 "Wie kann Ich unter linux .."
 "Linux Anwendungen um verlorene Bilder wieder herzustellen"
  du solltest PhotoRec finden


Texte edtieren: VSCODE, Emacs, Vim, viele weitere Optionen

 Grafiken machen? Inkscape, Gimp, Krita, ...
 gelöschte Dateien wiederherstellen.. Kein Backup kein Mitleid. Es gibt paar Tools z.B PhotoRec
 Briefe: LibreOffice swriter
 Browser? Firefox/Chromium/Opera/Webkit oder viele weitere bis lynx in Terminal
 Broschüren ? auch Scribus
 Mathe ? Latex/ Lyx
 Spiele: z.B Steam oder andere Andwendungen
 Mathe ausrechnen: Maxima
 Charts: gnuplot, matplotlib, scalc
 Radtouren planen: Browser brouter.de/ -> Web Link
 PDFs erstellen: Scribus/ Inkscape / LibreOffice oder einfach Drucken in Datei von irgendeiner Anwendung.
 3d Konstruktion: CadQuery, openscad, freecad evtl auch Blender
 CT Scans anschauen: slicer.org
 Programmieren: Wikipedia -> Liste von Programmierprachen -> :-)
 

Haus aufräumen: Probiere VR Brillen mit arcan oder OpenXR ;-) Witz

u.v.m.

Ich verstehe nicht, Ich brauche Hilfe zu was auch immer? Communitys

Versuche die Seite des Projektes zu finden. Dort findest du Dokumentationen und Hinweis wo sich der größte Teil der Community aufhält.

- Google Suche - Google Video suche - Google Bilder suche - Youtube Suche

Gute Wörter "Howto" "Anleitung" "Introduction" "Anfänger" "Einführung" "Forum" "Mailingliste" Ein Forum ist eine Frage/Antwortseite Eine Mailingliste ist eine Frage/Antwort E-Mail Support Channel wo eine Email an alle Mitglieger weitergeschickt wird und meist auch im Internet archiviert wird. (Ja der LUG-VS hat das auch ;-)

Beispielsuchen:

  "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.

Manchmal ist alles auf English. Nutze translate.googl.com oder Alternativen (?).

IRC: https://libera.chat/ dann /join #networking z.B. auch mal Netzwerkfragen loswerden zu können. Viele Distros haben dort einen Support/Community Channel Einfach mal einen Tag dort mitlesen und man lernt sehr viel ;-) Googeln "Howto WAS" oder "Einführung WAS" "Introduction Was" oder "Forum Was" oder ähnliches.

Oft reicht auch man prog oder info prog oder prog -h oder prog --help Die Seiten findet man oft auch per Google weil sie auch im Internet sind. Dann auf die Version achten! Du verstehst nicht? Siehe Terminal auf dieser Seite

Gerne kannst du auch auf der LUG-VS Mailingliste nachfragen, die ist garantiert auf Deutsch. Das ist der empfohlene Weg wenn Du mal nicht in sinnvoller Zeit weiterkommst.

Tip: Hast du ein Youtube Video gefunden was dir gefallen hat? Klicke auf den Ersteller-Link und du findest alle seine Videos. Unter Youtube's Mediathek dann Verlauf findest du Videos die du mal angeschaut hast wieder.

Doof ist wer ;-)

Nicht böse gemeint. Wollte nur Deine Aufmerksamkeit. Kleine Checkliste für Dich ob du wichtige Dinge verstanden hast ;-)

  Was zweimal in der Konsole schreibt. Siehe ctrl-r !! Bash / Shell Features oben
  Das Suchen Ctrl-f bzw / in less nicht kann (siehe oben Wer findet)
  länger als 10min an einem Problem sich die Zähne ausbeißt ohne Pause zu machen bzw auf der Mailingliste zu fragen
  Keine Backups hat
  10 Distros gleichzeitig nutzt .. weil dann ist was nicht verstanden (?) es sei denn es gibt wirklich einen Grund ..
  Noch nie den Geschwindigkeitsregler von Youtube probiert hat oder alles von vorne bis hinten anschaut. Weil manches wiederholt sich.
  D.h. lerne zu überspringen was du bereits weißt
  Noch nie ein Terminal aufgemacht hat und mit den Worten Kommandozeile / Shell / Befehlszeile Shellbefehl nichts anfangen kann. Siehe oben.
  Verpasst hat dass eine persönlichen Daten in ~ oder $HOME also /home/user-name liegen bzw ~hannes/pfad zu /home/hannes/.. wird.
  Verpasst hat dass er eventuell nichts alle sieht. Siehe versteckte Regale oben. (Alles was mit . anfängt).
  Nie Communities kennengelernt hat siehe oben wo kann man Fragen stellen.
  (sein System nie updated wegen Sicherheitslücken ?)
  Nicht verstanden hat dass Linux bedeutet die Vielfalt der Welt und ihrer
  Bewohner und derrer vielen Meinungen wiederzuerkennen ;-/ Es gibt ein Windows und ein OSX -  Aber ... ;-)
  deswegen such dir deine Community gut aus und schätze Anzahl der Benutzer ab falls von bekannten Wegen weit abweichen willst.
  ugo nicht versteht (user group others) Siehe no permission oben. Wenn man was nicht gelesen oder verändert werden kann könnte das der Grund sein.
  Wer bei Youtube noch nie Mediathek -> Verlauf genutzt hat. Oder wer noch nie auf den Ersteller geklickt hat um alle seine Videos zu finden.
  Linux zu benutzen manchmal so ist wie den ewigen Jungbrunnen zu finden. Erst wenn man überall auf der Welt gesucht hat weiß man dass es ihn gibt/ nicht gibt.
  Deswegen nutze die Communities und ihr Wissen. Du könntest deine wertvolle Zeit nutzen um anderen zu helfen. Lasst uns uns gegenseitig helfen. Zeit ist wertvoll.
  Wer denkt dass Linux das einzige Open-Source Betriebssystem ist. ReactOS, BSD und weitere ..
  noch nicht weiss dass Linux sehr vielseitig verwendet wird von Android bis SpaceX https://www.linux-magazin.de/news/spacex-raketen-mit-echtzeit-linux/ Desktops PIs embedded ...