Stammtisch 2024-07-19: Unterschied zwischen den Versionen
(22 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 22: | Zeile 22: | ||
=== Kleine Shelleinführung – Teil 4 === | === Kleine Shelleinführung – Teil 4 === | ||
<!-- Stichwort 1, Stichwort 2, Stichwort 3 (zum Thema 1) --> | <!-- Stichwort 1, Stichwort 2, Stichwort 3 (zum Thema 1) --> | ||
− | Plocki macht noch einmal eine kurze Zusammenfassung der letzten Woche (Teil 3). Holger fragt, was denn eigentlich das ''/dev/std*'' bedeutet; z.B.: | + | Plocki macht noch einmal eine kurze Zusammenfassung der letzten Woche (Teil 3). Holger fragt, was denn eigentlich das <code>''/dev/std*''</code> bedeutet; z.B.: |
− | <§> '''ls -la /dev/std*''' | + | <§> '''ls -la /dev/std*''' |
Die Ausgabe sähe dann (bei Holger) so aus: | Die Ausgabe sähe dann (bei Holger) so aus: | ||
holger@aelbler:~> '''ls -la /dev/std*''' | holger@aelbler:~> '''ls -la /dev/std*''' | ||
Zeile 32: | Zeile 32: | ||
Das ''std'' bedeutet so viel wie ''Standard''. | Das ''std'' bedeutet so viel wie ''Standard''. | ||
− | + | Ulf und Plocki verlieren sich dann ein wenig in den Konventionen (Art der Abkürzungen), warum zum Beispiel ''ls'' ('''l'''i'''s'''t = auflisten) ohne "I" und "T", oder auch ''fsck'' ('''f'''ile'''s'''ystem '''c'''hec'''k''' = Dateisystem-Prüfung) abgekürzt wird. Im Nachhinein nicht immer nachvollziehbar ... | |
− | Doch nun geht es weiter mit | + | Doch nun geht es weiter mit dem Vortrag; Plocki geht auf die ''Operatoren'' ein. |
− | '''>''' = Umleitung der Standardausgabe in eine Datei | + | '''>''' = Umleitung der Standardausgabe in eine Datei |
− | '''>>''' = Umleitung in eine Datei, hängt Ausgabe an eine bereits bestehende Datei | + | '''>>''' = Umleitung in eine Datei, hängt Ausgabe an eine bereits bestehende Datei |
− | '''|''' = Pipe. Ausgabe eines Kommandos als Eingabe zu einem anderen Kommando | + | '''|''' = Pipe. Ausgabe eines Kommandos als Eingabe zu einem anderen Kommando |
− | '''<''' und auch '''<<''' = Statt von der Standardeingabe (Tastatur) wird aus einer Datei gelesen | + | '''<''' und auch '''<<''' = Statt von der Standardeingabe (Tastatur) wird aus einer Datei gelesen |
− | '''&''' = Umleitung in anderen File Discriptor | + | '''&''' = Umleitung in anderen File Discriptor |
− | Hier | + | Hier findet sich das [https://plocki.org/blog/linux/shell-1.html ''Script von Plocki'' (unter '''Operatoren''' suchen)], um sich die Sache genauer anzuschauen. |
----- | ----- | ||
− | + | === Umstellung von openSUSE Tumbleweed oder Leap auf Slowroll === | |
− | <!-- | + | <!-- Tumbleweed- und Leap-Umstellung auf Slowroll, keine Neuinstallation notwendig --> |
− | [https://forums.opensuse.org/t/how-to-migrate-from-tumbleweed-to-slowroll/172747/8 ''How to migrate from Tumbleweed to Slowroll'']. | + | Ulf teilt diesen Link: [https://forums.opensuse.org/t/how-to-migrate-from-tumbleweed-to-slowroll/172747/8 ''How to migrate from Tumbleweed to Slowroll'']. |
+ | Der Beitrag ist in Englisch gehalten. | ||
+ | Denn Holger hatte vor einigen Wochen mitbekommen, dass die openSUSE-Community sich per Abstimmung darauf geeinigt hatte, dass [https://get.opensuse.org/leap/15.6/ ''Leap''] – welches eher "konservativ" programmiert ist und [https://get.opensuse.org/tumbleweed/ ''Tumbleweed''], welches sehr häufig Aktualisierungen erhält – dauerhaft durch [https://de.opensuse.org/openSUSE:Slowroll '''''Slowroll'''''] ersetzt werden soll. | ||
+ | Slowroll ist ein Kompromiss zwischen dem recht konservativen ''Leap'' und dem doch sehr aktuellen ''Tumbleweed''. Nutzer, welche nicht auf die allerneuesten Updates angewiesen sind und ein noch stabileres System als ''Tumbleweed'' wünschen, andererseits aber doch ziemlich aktuelle Software benötigen, sind hier angesprochen. Wie gesagt; das wird bei openSUSE die Zukunft sein. | ||
+ | Es ist jetzt also möglich durch ein paar Eingaben in der Konsole – es werden wohl nur die Pakete, welche aktualisiert und gepflegt werden sollen, geändert – schon jetzt auf ''Slowroll'' umzusteigen. Das Betriebssystem an sich (Tumbleweed oder Leap) muss nicht ersetzt werden. | ||
+ | ---- | ||
+ | |||
+ | === Verzeichnisse und Ordner in der Konsole anlegen, verschieben und löschen === | ||
+ | <!-- Befehle: cd, ls, mkdir, touch, rm, rmdir und mv --> | ||
+ | Holger "lamentiert", dass er Plockis Vortrag (von der Geschwindigkeit) her nicht folgen kann und meint, dass er schon beim Anlegen oder Betreten von Verzeichnissen (wie im Vortrag gesehen) abgehängt wird. | ||
+ | Darum fragt er – wenn die anderen Zeit und / oder Lust haben – ob es möglich ist, dass er den Bildschirm teilt und so rudimentäre Dinge, wie das Anlegen von Verzeichnissen und Ordner, das Verschieben dieser und auch wieder das Löschen versucht. Denn da kommt er normalerweise immer sehr schnell an seine Grenzen. | ||
+ | Holger teilt den Bildschirm und Plocki gibt "Einzelunterricht", wie Jos das später benennt. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Legende der (unten meist) verwendeten Shellkommandos ==== | ||
+ | <$> '''cd''' – '''Wechsel''' des ''Verzeichnisses'' (cd = change directory) | ||
+ | <$> '''cp''' – ''Dateien'' '''kopieren''' (cp = copy) | ||
+ | <$> '''ls''' – '''Anzeige''' aller ''Dateien'' eines ''Verzeichnisses'' (ls = list) | ||
+ | <$> '''mkdir''' – ''Verzeichnis'' '''anlegen''' (mkdir = make directory) | ||
+ | <$> '''touch''' – '''Anfassen''', aber auch '''Anlegen''' einer ''Datei'' | ||
+ | <$> '''tree''' – '''Auflisten''' von ''Verzeichnissen und deren Inhalten (Dateien)'' im aktuellen Verzeichnis | ||
+ | <$> '''mv''' – '''Verschieben, bzw. Namensänderung''' von ''Dateien'' (mv = move) | ||
+ | <$> '''rm''' – '''Löschen''' von ''Dateien'' (rm = remove) | ||
+ | <$> '''rmdir''' – '''Löschen''' von ''Verzeichnissen'' (rmdir = remove directory) | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Verzeichnis anlegen ===== | ||
+ | Holger legt also einen "Versuchsordner" an; das geschieht im /home-Verzeichnis: | ||
+ | <$> holger@aebler:~> '''mkdir''' Versuchsordner | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Verzeichniswechsel ===== | ||
+ | Danach wechselt er in den neu erstellten Ordner: | ||
+ | <$> holger@aebler:~> '''cd''' Versuchsordner/ | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Unterordner anlegen ===== | ||
+ | In diesem Ordner wiederum möchte Holger weitere Ordner anlegen; die '''U'''nter-'''O'''rdner "UO1" bis "UO3": | ||
+ | <$> holger@aebler:~> '''mkdir''' UO1 UO2 UO3 | ||
+ | Dazu kann man die zu erstellenden Ordner, getrennt durch ein Leerzeichen, gleich hintereinander eingeben ... | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Datei in einem der erstellten Unterordner anlegen ===== | ||
+ | Und nun möchte er noch in den Unterordner 3 ('''UO3''') eine ''Datei'' mit Namen "Datei3" erstellen: | ||
+ | <$> holger@aebler:~ '''~/Versuchsordner> '''touch''' UO3/Datei3 | ||
+ | Dazu muss er sich | ||
+ | # im gewünschten Verzeichnis (hier ~/Versuchsordner) befinden | ||
+ | # und dann die gewünschte Datei mit dem Befehl ''touch'', gefolgt vom Pfad, in dem sie liegen soll, anlegen. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Anzeige der Unter-Verzeichnisse und Dateien eines Verzeichnisses ===== | ||
+ | Mit dem Befehl '''ls''' und der Option '''-l''' werden die Ordner aufgelistet: | ||
+ | <$> holger@aebler:~> '''ls -l''' | ||
+ | insgesamt 0 | ||
+ | drwxr-xr-x 1 holger users 0 19. Jul 21:32 '''UO1''' | ||
+ | drwxr-xr-x 1 holger users 0 19. Jul 21:32 '''UO2''' | ||
+ | drwxr-xr-x 1 holger users 12 19. Jul 21:34 '''UO3''' | ||
+ | |||
+ | Mit dem Befehl '''ls'' und der Option '''-R''' (oder '''--r''') dagegen werden die erstellten Ordner rekursiv (bis ins letzte Glied) aufgelistet: | ||
+ | <$> holger@aelbler:~/Versuchsordner> '''ls -R''' | ||
+ | .: | ||
+ | UO1 UO2 UO3 | ||
+ | |||
+ | ./UO1: | ||
+ | |||
+ | ./UO2: | ||
+ | |||
+ | ./UO3: | ||
+ | Datei3 | ||
+ | Wie man sieht, enthalten die Unterordner UO1 und UO2 keine Dateien; lediglich der Unterordner UO3. | ||
+ | |||
+ | Das funktioniert auch mit dem Befehl ''tree'' (Baumstruktur anzeigen); zunächst muss man sich aber im gewünschten Verzeichnis befinden: | ||
+ | <$> holger@aelbler:~> '''cd''' ~/Versuchsordner/ | ||
+ | holger@aelbler:~/Versuchsordner> '''tree''' | ||
+ | . | ||
+ | ├── UO1 | ||
+ | ├── UO2 | ||
+ | └── UO3 | ||
+ | └── Datei3 | ||
+ | |||
+ | 5 directories, 1 file | ||
+ | holger@aelbler:~/Versuchsordner> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Verschieben einer ''Datei'' in ein anderes ''Verzeichnis'' ===== | ||
+ | Holger möchte nun im Verzeichnis ''UO3'' noch ein weiteres Unterverzeichnis erstellen ('''UO3_1''') und danach die schon erstellte Datei ('''Datei3''') aus dem Verzeichnis ''UO3'' in dessen Unterverzeichnis ''UO3_1'' verschieben. | ||
+ | |||
+ | Zunächst muss erst einmal dieses neue Unterverzeichnis ''UO3_1'' erstellt werden: | ||
+ | <$> holger@aebler:~> '''mkdir''' UO3/UO3_1 | ||
+ | Das kontrolliert Holger mit dem Befehl ''ls -R'': | ||
+ | <$> holger@aebler:~/Versuchsordner> '''ls -R''' | ||
+ | .: | ||
+ | UO1 UO2 UO3 | ||
+ | |||
+ | ./UO1: | ||
+ | |||
+ | ./UO2: | ||
+ | |||
+ | ./UO3: | ||
+ | Datei3 UO3_1 | ||
+ | Wie man sieht, befinden sich im Ordner ''UO3'' nun die ''Datei3'' und das neue Unterverzeichnis ''UO3_1''. | ||
+ | |||
+ | Und nun noch das Verschieben der Datei ... | ||
+ | <$> holger@aebler:~/Versuchsordner> '''mv''' UO3/Datei3 UO3/UO3_1 | ||
+ | Also der Befehl move ('''mv'''), gefolgt von | ||
+ | # Ort und Namen, wo die zu verschiebende Datei derzeit liegt – und | ||
+ | # Ort und Namen des Zielverzeichnisses | ||
+ | |||
+ | Holger kontrolliert den Erfolg mit dem Befehl ''tree'': | ||
+ | <$> holger@aelbler:~/Versuchsordner> '''tree''' | ||
+ | . | ||
+ | ├── UO1 | ||
+ | ├── UO2 | ||
+ | └── UO3 | ||
+ | └── UO3_1 | ||
+ | └── Datei3 | ||
+ | |||
+ | 5 directories, 1 file | ||
+ | holger@aelbler:~/Versuchsordner> | ||
+ | |||
+ | So soll es sein ... | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Löschen von Dateien und Verzeichnissen ===== | ||
+ | Soweit kamen wir heute nicht mehr so richtig. Auch da gibt es ein paar "Pferdefüße" ... | ||
+ | |||
+ | ---- | ||
+ | |||
+ | === Kritik === | ||
+ | Jos merkt an, dass Holger – seiner Meinung nach – Einzelunterricht erhalten hat (nun schon mehrfach). | ||
+ | Außerdem findet er es schade, dass [["Zukunft_der_LUG-VS"|Uwe's Schreiben]] vom 31.01.2024 in Seinen Augen nicht umgesetzt wurde. | ||
+ | |||
+ | Nun haben aber vor Beginn von Holgers "Einzelunterricht" alle Teilnehmer – bis auf Jos, Plocki und Holger – die Online-Sitzung wegen Müdigkeit oder fortgeschrittener Zeit verlassen. Es reden also nur noch die drei verbleibenden eine Weile über die unterschiedlichsten Dinge, die man verbessern sollte / könnte und noch (nicht) umgesetzt hat. | ||
+ | |||
+ | Also durchaus ein Punkt, der noch mal besprochen gehört; | ||
+ | # Wie weit sind wir mit der Umsetzung der uns gesteckten Ziele? | ||
+ | # Was klappt? | ||
+ | # Was klappt nicht (warum)? | ||
+ | # Eigene Vorschläge?! | ||
---- | ---- | ||
+ | |||
+ | |||
+ | |||
Zurück zur [[Archiv|Übersicht]] | Zurück zur [[Archiv|Übersicht]] |
Aktuelle Version vom 23. August 2024, 19:59 Uhr
19.07.2024 - 20:00 Uhr, Online-Stammtisch auf https://bbb.ch-open.ch/rooms/ulf-nm2-y26/join
wöchentlicher onlineStammtisch
Auf dem Stammtisch Mai 2020 beschlossener wöchentlicher Stammtisch jeden Freitag ab 20:00 Uhr anstelle des monatlichen Stammtisches im realen Leben.
Anwesende
- Holger
- Christoph
- Bertram
- Ulf
- Plocki
- Klaus
- Jos
Themen
Kleine Shelleinführung – Teil 4
Plocki macht noch einmal eine kurze Zusammenfassung der letzten Woche (Teil 3). Holger fragt, was denn eigentlich das /dev/std*
bedeutet; z.B.:
<§> ls -la /dev/std*
Die Ausgabe sähe dann (bei Holger) so aus:
holger@aelbler:~> ls -la /dev/std* lrwxrwxrwx 1 root root 15 18. Jul 13:22 /dev/stderr -> /proc/self/fd/2 lrwxrwxrwx 1 root root 15 18. Jul 13:22 /dev/stdin -> /proc/self/fd/0 lrwxrwxrwx 1 root root 15 18. Jul 13:22 /dev/stdout -> /proc/self/fd/1
Das std bedeutet so viel wie Standard.
Ulf und Plocki verlieren sich dann ein wenig in den Konventionen (Art der Abkürzungen), warum zum Beispiel ls (list = auflisten) ohne "I" und "T", oder auch fsck (filesystem check = Dateisystem-Prüfung) abgekürzt wird. Im Nachhinein nicht immer nachvollziehbar ...
Doch nun geht es weiter mit dem Vortrag; Plocki geht auf die Operatoren ein.
> = Umleitung der Standardausgabe in eine Datei >> = Umleitung in eine Datei, hängt Ausgabe an eine bereits bestehende Datei | = Pipe. Ausgabe eines Kommandos als Eingabe zu einem anderen Kommando < und auch << = Statt von der Standardeingabe (Tastatur) wird aus einer Datei gelesen & = Umleitung in anderen File Discriptor
Hier findet sich das Script von Plocki (unter Operatoren suchen), um sich die Sache genauer anzuschauen.
Umstellung von openSUSE Tumbleweed oder Leap auf Slowroll
Ulf teilt diesen Link: How to migrate from Tumbleweed to Slowroll. Der Beitrag ist in Englisch gehalten. Denn Holger hatte vor einigen Wochen mitbekommen, dass die openSUSE-Community sich per Abstimmung darauf geeinigt hatte, dass Leap – welches eher "konservativ" programmiert ist und Tumbleweed, welches sehr häufig Aktualisierungen erhält – dauerhaft durch Slowroll ersetzt werden soll.
Slowroll ist ein Kompromiss zwischen dem recht konservativen Leap und dem doch sehr aktuellen Tumbleweed. Nutzer, welche nicht auf die allerneuesten Updates angewiesen sind und ein noch stabileres System als Tumbleweed wünschen, andererseits aber doch ziemlich aktuelle Software benötigen, sind hier angesprochen. Wie gesagt; das wird bei openSUSE die Zukunft sein.
Es ist jetzt also möglich durch ein paar Eingaben in der Konsole – es werden wohl nur die Pakete, welche aktualisiert und gepflegt werden sollen, geändert – schon jetzt auf Slowroll umzusteigen. Das Betriebssystem an sich (Tumbleweed oder Leap) muss nicht ersetzt werden.
Verzeichnisse und Ordner in der Konsole anlegen, verschieben und löschen
Holger "lamentiert", dass er Plockis Vortrag (von der Geschwindigkeit) her nicht folgen kann und meint, dass er schon beim Anlegen oder Betreten von Verzeichnissen (wie im Vortrag gesehen) abgehängt wird. Darum fragt er – wenn die anderen Zeit und / oder Lust haben – ob es möglich ist, dass er den Bildschirm teilt und so rudimentäre Dinge, wie das Anlegen von Verzeichnissen und Ordner, das Verschieben dieser und auch wieder das Löschen versucht. Denn da kommt er normalerweise immer sehr schnell an seine Grenzen. Holger teilt den Bildschirm und Plocki gibt "Einzelunterricht", wie Jos das später benennt.
Legende der (unten meist) verwendeten Shellkommandos
<$> cd – Wechsel des Verzeichnisses (cd = change directory) <$> cp – Dateien kopieren (cp = copy) <$> ls – Anzeige aller Dateien eines Verzeichnisses (ls = list) <$> mkdir – Verzeichnis anlegen (mkdir = make directory) <$> touch – Anfassen, aber auch Anlegen einer Datei <$> tree – Auflisten von Verzeichnissen und deren Inhalten (Dateien) im aktuellen Verzeichnis <$> mv – Verschieben, bzw. Namensänderung von Dateien (mv = move) <$> rm – Löschen von Dateien (rm = remove) <$> rmdir – Löschen von Verzeichnissen (rmdir = remove directory)
Verzeichnis anlegen
Holger legt also einen "Versuchsordner" an; das geschieht im /home-Verzeichnis:
<$> holger@aebler:~> mkdir Versuchsordner
Verzeichniswechsel
Danach wechselt er in den neu erstellten Ordner:
<$> holger@aebler:~> cd Versuchsordner/
Unterordner anlegen
In diesem Ordner wiederum möchte Holger weitere Ordner anlegen; die Unter-Ordner "UO1" bis "UO3":
<$> holger@aebler:~> mkdir UO1 UO2 UO3
Dazu kann man die zu erstellenden Ordner, getrennt durch ein Leerzeichen, gleich hintereinander eingeben ...
Datei in einem der erstellten Unterordner anlegen
Und nun möchte er noch in den Unterordner 3 (UO3) eine Datei mit Namen "Datei3" erstellen:
<$> holger@aebler:~ ~/Versuchsordner> touch UO3/Datei3
Dazu muss er sich
- im gewünschten Verzeichnis (hier ~/Versuchsordner) befinden
- und dann die gewünschte Datei mit dem Befehl touch, gefolgt vom Pfad, in dem sie liegen soll, anlegen.
Anzeige der Unter-Verzeichnisse und Dateien eines Verzeichnisses
Mit dem Befehl ls und der Option -l werden die Ordner aufgelistet:
<$> holger@aebler:~> ls -l insgesamt 0 drwxr-xr-x 1 holger users 0 19. Jul 21:32 UO1 drwxr-xr-x 1 holger users 0 19. Jul 21:32 UO2 drwxr-xr-x 1 holger users 12 19. Jul 21:34 UO3
Mit dem Befehl ls und der Option -R' (oder --r) dagegen werden die erstellten Ordner rekursiv (bis ins letzte Glied) aufgelistet:
<$> holger@aelbler:~/Versuchsordner> ls -R .: UO1 UO2 UO3 ./UO1: ./UO2: ./UO3: Datei3
Wie man sieht, enthalten die Unterordner UO1 und UO2 keine Dateien; lediglich der Unterordner UO3.
Das funktioniert auch mit dem Befehl tree (Baumstruktur anzeigen); zunächst muss man sich aber im gewünschten Verzeichnis befinden:
<$> holger@aelbler:~> cd ~/Versuchsordner/ holger@aelbler:~/Versuchsordner> tree . ├── UO1 ├── UO2 └── UO3 └── Datei3 5 directories, 1 file holger@aelbler:~/Versuchsordner>
Verschieben einer Datei in ein anderes Verzeichnis
Holger möchte nun im Verzeichnis UO3 noch ein weiteres Unterverzeichnis erstellen (UO3_1) und danach die schon erstellte Datei (Datei3) aus dem Verzeichnis UO3 in dessen Unterverzeichnis UO3_1 verschieben.
Zunächst muss erst einmal dieses neue Unterverzeichnis UO3_1 erstellt werden:
<$> holger@aebler:~> mkdir UO3/UO3_1
Das kontrolliert Holger mit dem Befehl ls -R:
<$> holger@aebler:~/Versuchsordner> ls -R .: UO1 UO2 UO3 ./UO1: ./UO2: ./UO3: Datei3 UO3_1
Wie man sieht, befinden sich im Ordner UO3 nun die Datei3 und das neue Unterverzeichnis UO3_1.
Und nun noch das Verschieben der Datei ...
<$> holger@aebler:~/Versuchsordner> mv UO3/Datei3 UO3/UO3_1
Also der Befehl move (mv), gefolgt von
- Ort und Namen, wo die zu verschiebende Datei derzeit liegt – und
- Ort und Namen des Zielverzeichnisses
Holger kontrolliert den Erfolg mit dem Befehl tree:
<$> holger@aelbler:~/Versuchsordner> tree . ├── UO1 ├── UO2 └── UO3 └── UO3_1 └── Datei3 5 directories, 1 file holger@aelbler:~/Versuchsordner>
So soll es sein ...
Löschen von Dateien und Verzeichnissen
Soweit kamen wir heute nicht mehr so richtig. Auch da gibt es ein paar "Pferdefüße" ...
Kritik
Jos merkt an, dass Holger – seiner Meinung nach – Einzelunterricht erhalten hat (nun schon mehrfach). Außerdem findet er es schade, dass Uwe's Schreiben vom 31.01.2024 in Seinen Augen nicht umgesetzt wurde.
Nun haben aber vor Beginn von Holgers "Einzelunterricht" alle Teilnehmer – bis auf Jos, Plocki und Holger – die Online-Sitzung wegen Müdigkeit oder fortgeschrittener Zeit verlassen. Es reden also nur noch die drei verbleibenden eine Weile über die unterschiedlichsten Dinge, die man verbessern sollte / könnte und noch (nicht) umgesetzt hat.
Also durchaus ein Punkt, der noch mal besprochen gehört;
- Wie weit sind wir mit der Umsetzung der uns gesteckten Ziele?
- Was klappt?
- Was klappt nicht (warum)?
- Eigene Vorschläge?!
Zurück zur Übersicht