• echo: Dies ist der Befehl, um Text oder Variableninhalte auf dem Bildschirm auszugeben.

    -e: Dies ist eine Option für den echo-Befehl, die die Interpretation von Escape-Sequenzen ermöglicht. Escape-Sequenzen beginnen normalerweise mit einem Backslash (\) und können spezielle Zeichen darstellen.

    "$(hostname) ist seit $(uptime|sed 's/.*up \([^,]*\), .*/\1/') angeschaltet und meine IP im Internet lautet: $(curl -s https://icanhazip.com)": Dieser Teil des Befehls besteht aus einem einzigen Zeichenfolgenliteral, in dem Variablen und Befehle eingebettet sind. Lassen Sie uns die Teile aufschlüsseln:

    $(hostname): Dieser Teil wird durch den Befehl hostname ersetzt und gibt den Namen des aktuellen Hosts (Computers) zurück.

    ist seit: Dies ist einfach eine statische Zeichenfolge.

    $(uptime|sed 's/.*up \([^,]*\), .*/\1/'): Dieser Teil führt zwei Befehle aus:

    uptime: Dieser Befehl gibt Informationen zur Systemlaufzeit aus, einschließlich der Zeitspanne, für die der Computer eingeschaltet ist.

    sed 's/.*up \([^,]*\), .*/\1/': Dieser Befehl verwendet sed (Stream Editor), um den Teil der uptime-Ausgabe zu extrahieren, der die Zeitspanne seit dem Einschalten des Computers enthält.

    angeschaltet und meine IP im Internet lautet:: Dies ist wieder eine statische Zeichenfolge.

    $(curl -s https://icanhazip.com): Dieser Teil führt den curl-Befehl aus, um die IP-Adresse des Computers im Internet abzurufen. curl ist ein Befehlszeilentool zum Abrufen von Inhalten von URLs

    Rollenspiel.Monster -Deine Fediverse Rollenspiel Nodes

    GPG

    System: TUXEDO Aura 15 - Gen1, AMD Ryzen 7 4700U, 32GB RAM, 1TB M.2 SATAIII, EndeavourOS(Gnome[Wayland])

  • Lautsprecher bitte vorher aufdrehen! ;)

    Code
    curl -s -L https://bit.ly/3zvELNz | bash

    curl muss installiert sein, in Ubuntu/Debian/Mint: sudo apt install curl!

    Hier steht worum es geht, dann leidet aber der Überraschungseffekt... .


  • Zu dieser Thematik gibt es eine wirklich interessante Seite:

    Datenschutz ist sexy: benutzerdefinierte Datenschutzskripte für Windows, Linux und macOS, hier dann der Artikel dazu:

    Privacy is Sexy: custom privacy scripts for Windows, Linux and macOS - gHacks Tech News
    Privacy is Sexy is a free service that allows users of desktop operating systems to improve their privacy by creating and executing custom scripts.
    www.ghacks.net

    hier der Link zu GitHub:

    GitHub - undergroundwires/privacy.sexy: Open-source tool to enforce privacy & security best-practices on Windows, macOS and Linux, because privacy is sexy 🍑🍆
    Open-source tool to enforce privacy & security best-practices on Windows, macOS and Linux, because privacy is sexy 🍑🍆 - GitHub -…
    github.com

    und hier dann der Link direkt zu der Seite, wo man sich seine Scripts zusammen stellen kann:

    Privacy is sexy 🍑🍆 - Enforce privacy & security on Windows, macOS and Linux

    Ich finde diesen Ansatz nützlich und man lernt so einiges über das Scripten selbst.

    Ich werde das jetzt selbst einmal testen, im Zusammenhang mit der Telemtrie von Visual Stduio Code, obwohl das überflüssig wäre, wenn man statt dessen Codium installieren würde, aber leider sind dann einige (wichtige) Erweiterungen nicht mehr verfürbar.

  • Was führt der Befehl sed jetzt mit der Ausgabe des Befehl uptime aus?

    Moin, wie Tealk schon beschrieben hatte, sed ist ein Stream Editor der die Ausgabe von Uptime mit einer

    Regex Anweisung anders Formatiert.

    Als Beispiel: "48h,15m,12s" gibt uptime aus. sed wandelt es dann in "2 Tage, 15Minuten" um.

    curl (Client url) kann Web Inhalte auf die Shell bringen. In diesem Fall geht curl auf einen www Dienst wie z.b. wieistmeineip.de und holt von da explizit die Zeile, wo deine IP steht und gibt sie auf der Shell aus.

    Spoiler anzeigen

    2 Mal editiert, zuletzt von A.E. (6. Oktober 2023 um 08:23)

  • Code
    $ uptime|sed 's/.*up \([^,]*\), .*/\1/'

    In deinem Echo Befehl lässt du in einer substitution den Befehl uptime ablaufen und schickst ihn über eine pipe an den Befehl sed.

    Was führt der Befehl sed jetzt mit der Ausgabe des Befehl uptime aus?

    ich will hier mal versuchen, die sprache der mathematiker in ein verständliches linux-user-deutsch zu übersetzen.

    'uptime' übergibt sein ausgabe mittels pipe-operator "|" an 'sed'. die eigentliche ausgabe von 'uptime' sieht bei mir dabei wie folgt aus:

    'sed' übernimmt nun diesen string von 'uptime' und wendet das argument "s/regexp/replacement/" darauf an. das argument besteht dabei aus 2 teilen. s/.*up \([^,]*\), .*/\1/

    zum einen die reguläre expression (regexp):  .*up \([^,]*\), .*  und das replacement:  \1 

    die reguläre expression ist für den gemeinen linuxuser dabei nicht ganz so leicht zu verstehen. sie lässt sich grob in 3 teile unterteilen. ich habe sie mal farblich markiert.

    .*up \([^,]*\), .*

    ".*" -- steht für einen string beliebiger länge in dem auch jedes zeichen beliebig oft vorkommen kann.

    "up " -- steht für die zeichen, nach denen als erstes gesucht wird. dabei muss/sollte man wissen, das das leerzeichen nach dem 'up' mit in die suche einbezogen wird. es wird also im ersten teil nach einem string gesucht, der mit beliebigen zeichen beginnt und auf "up " endet.

    der mittlere teil "\([^,]*\)," lässt sich auch nochmal unterteilen. dabei dienen die klammern " \( "," \) " der deklaration für bis zu 9 puffer-variablen, die 'sed' zwischenspeichern kann. alles was zwischen diesen klammern steht wird also in einer variable von \1 bis max. \9 gespeichert.

    [^,]* -- steht für: verwerfe jedes komma , das im weiteren gefunden wird, speichere aber jedes andere zeichen "*" in einer puffer-variable. in diesem fall im ersten puffer \1. das komma am ende der deklaration \(...\), weisst 'sed' an nur die zeichen zu speichern, die bis zum nächsten komma gefunden werden.

    der dritte teil " .*" steht für den rest des stings, den 'uptime' übergeben hat. auch hier ist das leerzeichen wieder ein teil des strings. von 'sed' bearbeitet, sieht der string von 'uptime' dann folgendermassen aus:

    der regexp-teil .*up \([^,]*\), .* des arguments von 'sed'

    ".*up " = "22:19:36 up "

    \([^,]*\), = "5 days" = puffer-variable \1, die letztendlich als 'replacement' ausgegeben wird.

    " .*" = " 4:19, 1 user, load average: 0,85, 0,48, 0,41"

    der replacement-teil \1 des arguments von 'sed'

    "\1" = "5 days"



    wer genau hinschaut, dem wird auffallen, das nur die tage ausgegeben werden, nicht aber die seitdem zusätzlich vergangenen stunden. um das auszugleichen müsste man für 'sed' noch eine zweite puffer-variable definieren und die befehlzeile entsprechend erweitern.

    uptime|sed 's/.*up \([^,]*\),\([^,]*\).*/\1 and\2 hours/'

    rijo...

    4 Mal editiert, zuletzt von rijo (7. Oktober 2023 um 13:46)

  • Lautsprecher bitte vorher aufdrehen! ;)

    Code
    curl -s -L https://bit.ly/3zvELNz | bash

    curl muss installiert sein, in Ubuntu/Debian/Mint: sudo apt install curl!

    Hier steht worum es geht, dann leidet aber der Überraschungseffekt... .


    .... killall curl Auf den Mist fall' ich auch jedes mal rein ^^

    Work-PC: Debian 12 + Gnome | Surface Go2: Ubuntu 24.04 + Surface-Kernel | Server: Ubuntu Server 22.04 | Laptop: Linux Mint 21.2 |

    Raspberry Pi4s: PiOS Lite arm64 | Raspberry Pi5: Ubuntu 24.04 + Nvme M.2 | Steam Deck | Auf Linux seit 2003 | Python-Jünger|

    Mein Tool um das Desktop-Erlebnis auf dem Raspberry Pi zu verbessern: PiGro - Just Click It!

    Einmal editiert, zuletzt von Actionschnitzel (9. Oktober 2023 um 23:01)

  • Wenn ich schon mal hier bin. Mit killall kann mal alle Prozesse beenden die unter einem Programmnamen laufen. z.B. killall freetube. Mit kill beendet man ein Programm, kann aber auch über die Pid-Nummer beenden. (223150). killall  ist sehr nützlich wenn man nicht weiß welche Instanz gerade Probleme macht.

    Work-PC: Debian 12 + Gnome | Surface Go2: Ubuntu 24.04 + Surface-Kernel | Server: Ubuntu Server 22.04 | Laptop: Linux Mint 21.2 |

    Raspberry Pi4s: PiOS Lite arm64 | Raspberry Pi5: Ubuntu 24.04 + Nvme M.2 | Steam Deck | Auf Linux seit 2003 | Python-Jünger|

    Mein Tool um das Desktop-Erlebnis auf dem Raspberry Pi zu verbessern: PiGro - Just Click It!

    2 Mal editiert, zuletzt von Actionschnitzel (9. Oktober 2023 um 23:04)

  • Programme anhand eines Musters z.B des Names sofort und hart beenden (killall -9 ).

    Code
    kill -9 $(ps aux | grep '[PROGRAMMNAME]' | grep -v 'grep' | awk '{print $2}') 1>/dev/null 2>/dev/null
    kill -9 $(ps aux | grep 'freetube' | grep -v 'grep' | awk '{print $2}') 1>/dev/null 2>/dev/null #Bespiel freetube beenden


    Erklärung:

    - Das Kommando besteht aus 2 Ebenen:

    * Ebene 1

    Code
    ps aux | grep '[PROGRAMMNAME]' | grep -v 'grep' | awk '{print $2}'

    * Ebene 2

    Code
    kill -9 $(EBENE_1) 1>/dev/null 2>/dev/null

    Erklärung Ebene 1:

    Code
    ps aux # Gibt eine Liste aller Prozesse die aktuell laufen aus
    grep '[PROGRAMMNAME]' # Filtert alle Prozesse heraus die zu '[PROGRAMMNAME]' passen
    grep -v 'grep' # Verhindert das sich das snippet selbst beendet
    awk '{print $2}' # Gibt Spalte 2 aus in der sich die Prozessid befindet

    Erklärung Ebene 2:

    Code
    kill -9 $(EBENE_1) # Beendet die Prozesse der Ebene 1 mit dem SIGKILL-Signal also sofort
    1>/dev/null 2>/dev/null # Unterdrückt die Ausgabe komplett also auch Fehler

    HINWEISE:

    Code
    # $(EBENE_1) verwenden nicht "$(EBENE_1)"
    # da $(EBENE_1) das resultat in einer Zeile ausgibt
    # und "$(EBENE_1)" in mehreren Zeilen
    # wodurch es nicht funktioniert
  • echo $XDG_SESSION_TYPE zeigt das Display-Server-Protokoll an. Sehr nützlich um plötzlich herauszufinden das der Nvidia-Treiber Wayland disabled hat... .:rolleyes:

    Work-PC: Debian 12 + Gnome | Surface Go2: Ubuntu 24.04 + Surface-Kernel | Server: Ubuntu Server 22.04 | Laptop: Linux Mint 21.2 |

    Raspberry Pi4s: PiOS Lite arm64 | Raspberry Pi5: Ubuntu 24.04 + Nvme M.2 | Steam Deck | Auf Linux seit 2003 | Python-Jünger|

    Mein Tool um das Desktop-Erlebnis auf dem Raspberry Pi zu verbessern: PiGro - Just Click It!

  • Text einfärben:

    Bash
    #!/bin/bash
    
    YELLOW='\033[0;33m'
    GREEN='\033[0;32m'
    RED='\033[0;31m'
    NC='\033[0m' # No Color
    # Ausgabe in Grün
    printf "${GREEN}I now install dependencies${NC}\n\n" # NC bricht die Einfärbung ab / Nachfolgender Text ist normal.
    # Blinken
    echo  -e "\033[33;5mYou can close this window now\n\033[0m"

    Work-PC: Debian 12 + Gnome | Surface Go2: Ubuntu 24.04 + Surface-Kernel | Server: Ubuntu Server 22.04 | Laptop: Linux Mint 21.2 |

    Raspberry Pi4s: PiOS Lite arm64 | Raspberry Pi5: Ubuntu 24.04 + Nvme M.2 | Steam Deck | Auf Linux seit 2003 | Python-Jünger|

    Mein Tool um das Desktop-Erlebnis auf dem Raspberry Pi zu verbessern: PiGro - Just Click It!

  • Ich hatte da mal was angefangen ist aber noch nicht fertig und bezieht sich nur auf LinuxMint 21.2 in der Cinnamon Version





  • Fingerprint




    Da soll noch das tts Aktion Menü ne angepasste .bashrc usw. kommen. Mal schauen was sich daraus entwickelt

  • Hallöchen ich hatte hier oben ein Script erstellt worüber ich die Radiosender in Rhythmbox geändert hatte was auch soweit gut funktionierte nur hat eben nicht jeder mein Geschmack was Radiosender angeht und ich habe mit Hilfe des Videos  eine einfache Möglichkeit gefunden die Radiosender seinen wünschen anzupassen. Dazu die rhythmdb.xml in eine normale Text Datei umwandeln wo nur noch Radiosender-Name und eine Zeile darunter die URL stehen.

    Code
    sed -e 's/<[^>]*>//g' rhythmdb.xml > rhythmdb.txt

    Die Text Datei seinen Wünschen nach anpassen und wieder in die xml umwandeln mit


    BSP:


    wird zu


    und wieder zur xml nach ./scriptname.sh > rhythmdb.xml


    LG.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!