Skip to content
  • Kategorie
  • Nejnovější
  • Značky
  • Populární
  • Uživatelé
  • Skupiny
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cerulean)
  • No Skin
Collapse
Brand Logo

Fórum

raven2czR

raven2cz

@raven2cz
About
Příspěvky
40
Témata
22
Shares
0
Skupiny
1
Sledují ho
0
Sleduje
0

Příspěvky

Nejnovější Nejlepší Kontroverzní

  • Soubor-příkaz
    raven2czR raven2cz

    @Adisseba Ahoj, teď nevím, co znamená to "rozkliknutí". Jako nějaká ikona v menu, která provede daný příkaz? Nebo že se skript zavolá z příkazové řádky?

    Vytvoření základního bash skriptu je velmi jednoduché, stačí vytvořit soubor a na první řádku uvést shebang pro bash

    #!/bin/bash
    # zde uvést dané příkaze bashe, která se mají skriptem volat
    

    Soubor uložit a přidat souborové atributy pro práva pro spuštění skriptu. Například

    chmod ug+x soubor
    

    Přidá spouštěcí práva pro aktuálního uživatele a jeho skupinu.

    Soubor potom lze libovolně spouštět

    • z příkazové řádky
    • nebo si jej přidat do ikony v souboru *.desktop
    • nebo udělat si klávesovou zkratku, která skript spustí po jejím stisknutí.
    Komentáře a zpětná vazba

  • Awesome First Trailer
    raven2czR raven2cz

    Awesome Trailer 😉
    awesome-trailer.jpg

    AwesomeWM

  • Nelze probudit po uspání
    raven2czR raven2cz

    @Myrmica No tady ještě nějaké čtivo před tvým "spaním".

    https://bugzilla.redhat.com/show_bug.cgi?id=2029207

    Nicméně se mi zdá, že dořešené to nemají. Každopádně tohle je problém HW sleep support vs linux kernel. Je to boj, občas je těžké vybrat laptop, tak aby to běželo dobře s novým kernelem a navíc se to v čase i může měnit.

    Na desktopu jsem s tím nikdy problém neměl, na druhou stranu je to hlavně ale dominanta laptopu, kde se to může často používat. Já prostě jsem si odvyknul, normálně, když jdu na meeting, tak to zaklapnu, nechám to ale běžet a vypnu to až při odchodu a ráno znovu zapínám. Sice mě teď ten sleep funguje, ale i tak raději to nepoužívám 😄

    Hardware

  • Nelze probudit po uspání
    raven2czR raven2cz

    @Myrmica Zkus se podívat do biosu, zda tam nemáš volbu Sleep State na "Windows 10" změnit na "Linux". Položka se může jmenovat i trochu jinak. Některé Lenovo laptopy to používají.

    Hardware

  • Nelze probudit po uspání
    raven2czR raven2cz

    @Myrmica open-source nvidia drivers zatím jsou v alpha stádiu, zatím bych to do produkce moc nedával a nestavěl bych na tom.
    Nicméně nerozumím, jak píšeš, že Ti nejdou nvidia proprietary drivers. Co přesně Ti s nimi nejde? Já mám taky 3070ti a běhá mi to v pohodě.

    Hardware

  • Nelze probudit po uspání
    raven2czR raven2cz

    @Myrmica Ahoj, vítám Tě na fóru!
    Konkrétně sleep nebo hibernate jsou velmi problémové procesy pro některé typy HW. Někdy i neřešitelné.
    Nejprve si podle této stránky doinstaluj vše, co je pořeba:
    https://wiki.archlinux.org/title/Laptop/Lenovo#Legion_series
    Viz tvůj příslušný řádek pro Legion 5 Pro.

    Dále v KDE Settings se podívej do sekce Power Management, nebo nějak podobně, kde je nastavení činnosti při zaklapnutí víka. Zda je tam sleep, nebo hibernate. Nastavit pouze sleep.

    Testnout to. Po otevření víka, zda bude černá obrazovka. Ověřit zda notebook jinak funguje, třeba zvuk apod. a jenom je pohasnutý displej na 90 až 100 procent. Pokud se jedná pouze o pohasnutý displej po sleepu. Existuje řada variant, jak tomu zabránit. Toto tedy ověřit, já bych potom napsal víc k brightness konfiguraci.

    Já mám také lenovo, ale jiné a musel jsem udělat právě nastavení pro brithtness obecně, mě to nefungovalo globálně.

    Nicméně sleep a hibernate nepoužívám už řadu let. Start systému mám do 8-10s, takže normálně vypnu notebook a potom jej celý spustím. Nedochází tak mnoha dalších problémům. Každopádně ale zkusit krok po kroku.

    Hardware

  • Awesome ukázka barevných schémat s obrázkovou kolekcí
    raven2czR raven2cz

    Awesome ukázka barevných schémat s obrázkovou kolekcí / Awesome multicolor theme with collage lua component

    Na ukázku design kombinace komponenty lua kolekcí s barevnými schématy projektu multicolor theme. Zajímavé propojení barev, portrétů, pracovního prostředí a fantasy.

    EN: Example of AW design of collage lua component and colorschemes (15 schemes) in multicolor theme project. Interesting connection between colors, working environment, portraits and fantasy.

    awesome-multicolor-gruvbox_dark.jpg

    aw-one-dark-screenshot.jpg

    awesome-multicolor-nord.jpg

    awesome-multicolor-material.jpg

    awesome-multicolor-solarized.jpg

    awesome-multicolor-doom_one.jpg

    awesome-multicolor-monokai_pro.jpg

    AwesomeWM

  • Gnome Tux Series
    raven2czR raven2cz

    Gnome 42 Tux Series bude!

    Nastala dobrá zpráva. Hlavní chyby potřebné pro nahrávku jsou opraveny v Gnome 42. Po Openbox bude tedy možné nahrát Gnome epizodu.

    Tady posílám ukázky z připravovaného dílu.

    gnome-screenshot1.jpg

    gnome-screenshot2.jpg

    gnome-screenshot3.jpg

    Gnome

  • Openbox ricing - posledni dil Tux
    raven2czR raven2cz

    Openbox Ricing (Tux Series)

    Openbox ricing. Finalni ricing a nastaveni openboxu je hotovo!

    Prvni cast pruvodce bude vychazet z tohoto navrhu.

    openbox-screen.jpg

    Openbox

  • Raven2cz Blog
    raven2czR raven2cz

    Geek Room: New Youtube Series

    Poslední díl - TUX: Svět Linuxu od Raven2cz

    Pomalu se blíží konec seriálu TUX: Svět Linuxu od Raven2cz. Poslední díl měl uzavřít základní sérii s Gnome a jeho ergonomické a pracovní nastavení. Nicméně poslední verze 42 natolik rozbila celé prostředí, že je prakticky nepoužitelné a to bohužel není vtip. Nejsou v tom sám, desítky recenzí jsou velmi špatné a není se čemu divit. Gnome team zcela doslova kašle na kritiku a pořád razí svou cestu bez řádné stabilizace a výsledkem je již nepoužitelné DE. Bude nutné počkat na sérii opravných patches, ale otázka je do kolika měsíců nebo let přijdou a na to já čekat nebudu. Rozhoduji se tedy o posledním díle mezi Openbox a Qtile. Jeden je hodně podobný xfce a druhý zase awesomewm, jedná se tedy spíše už o nuance již popisovaných principů.

    Statistika sledovanosti a zájem

    Seriál ukázal zejména obří zájem z Indie a USA. Naopak české publikum je malé, sice nyní začíná hodně narůstat, ale v poměru z anglicky mluvící částí je to pouze několik procent. V časových možnostech není možné vše nahrávat v češtině a pak v angličtině. Z hlediska zájmu toto budu muset otočit a další série budou již anglické a naopak pokud bude zájem, tak se přitočí i české. Dokumentace bude pořád k dispozici a je možné ji do češtiny překládat, když opět bude zájem.

    Geek Room - nová uvažovaná série

    Začal bych od grafického konceptu banneru této nové série.
    Geek Room
    tux-geek-room-2-zoom-1600.png

    Geek Room série bude pořád zaměřena primárně na návody, které ale obsahově nebudou navazovat a budou maximálně v rozsahu 15-20minut. Krom návodů budou zařazovány i krátké spoty pro některé distribuce, specifické nové features, novinky.

    Pokud budete mít zájem na některé konkrétní téma, napište mi.

    EN:

    The last episode - TUX: Linux World from Raven2cz

    The final episode of TUX: Linux World from Raven2cz is slowly approaching. The last episode was determined by Gnome and its ergonomic and working settings. However, the latest version 42 has shattered the whole environment so much that it is practically useless and unfortunately this is not a joke. I'm not alone, dozens of reviews are very bad and no wonder. The gnome team literally coughs up criticism and still makes its way without proper stabilization and the result is no longer usable DE. It will be necessary to wait for a series of bug fixes and patches, but the question is how many months or years will come... I will not wait for that. So I decide on the last episode between Openbox and Qtile. One is very similar to xfce and the other awesomewm, so it is more about the nuances of the principles already described.

    Audience statistics and interest

    The series showed a significant interest from India and the USA. On the contrary, the Czech audience is small, although it is now starting to grow a lot, but in the proportion of English-speaking parts it is only a few percent. It is not possible to record everything in Czech and then in English. In terms of interest, I will have to turn this around and the next series will be in English, and vice versa, if there is interest, Czech will be added. The documentation will still be available and can be translated into Czech when there will be interest.

    Geek Room - a new series under consideration

    I would start with the graphic concept of the banner of this new series (see top).

    The Geek Room series will still focus primarily on guides, which will not follow the previous content and will be in the maximum range of 15-20 minutes. In addition, there will also be short spots for some distributions, specific new features, news.

    If you are interested in a specific topic, write to me details.

    Blogs

  • Raven2cz Blog
    raven2czR raven2cz

    SDDM: Ghost in the Shell Theme

    preview-2.jpg

    preview.jpg

    Simple Desktop Display Manager (SDDM) správce zobrazení. Založeno na Qt-Components a QLM.

    Simple Desktop Display Manager (SDDM) je správce zobrazení (program pro grafické přihlášení a správce relací) pro okenní systémy X11 a Wayland. SDDM byl napsán od nuly v C++ 11 a podporuje motivování pomocí QML.

    EN: The Simple Desktop Display Manager (SDDM) a display manager. Based on Qt-Components and QLM.

    Simple Desktop Display Manager (SDDM) is a display manager (a graphical login program and session manager) for the X11 and Wayland windowing systems. SDDM was written from scratch in C++11 and supports theming via QML.

    Source Code

    https://github.com/raven2cz/sddm-ghost

    Installation

    Just copy it to folder /usr/share/sddm/themes/sddm-ghost

    For example:

    mkdir -p ~/git/github/sddm-ghost
    cd ~/git/github/sddm-ghost
    git clone git@github.com:raven2cz/sddm-ghost.git
    sudo cp -R ~/git/github/sddm-ghost/ /usr/share/sddm/themes/
    
    • Recommended resolution 4K.
    • Select new SDDM GHOST theme in KDE Settings > Startup and Shutdown.
    • Alternative (better) - Change your KDE SDDM Settings in /etc/sddm.conf.d/kde_settings.conf:
      [Theme]
      Current=sddm-ghost
    
      [X11]
      EnableHiDPI=true
      ServerArguments=-nolisten tcp -dpi 120
    

    Licenses

    • License: MIT
    • Based-on:
      • Lavender-SDDM,
      • Kameleon SDDM by rwml
    Blogs

  • Raven2cz Blog
    raven2czR raven2cz

    [HOTOVO] Koláž a kombinování fotografií s pozadím / [DONE] Photo Collage and Portrait Wall

    Podle předchozího příspěvku se mi povedlo o víkendu dodělat tento nápad. Nakonec jsem projekt zjednodušil, negeneruji výsledný image, ale koláž je tvořena widgets přímo v AwesomeWM integrovanými na desktop wallpaper vrstvě. Celá koláž je tedy velmi dynamická a je možné prohazovat on-the-fly jednotlivé obrázky s scrolling kolečkem myši. Koláže mohou být různé per tag. Viz nahrané video Image Collage Lua Feature - Travel, Enjoy Life and Job Desktop.
    Projekt je jako vždy vložen do github awesome-config a je součástí knihovny fishlive a použit v theme.lua. Programová konfigurace je následující.

      ---------------------------
      -- Collage Images Feature
      ---------------------------
      local collageTag = function(wppath, wps, tagids, collage_template)
        local imgsources = {}
        for i=1,#wps do
          imgsources[i] = wppath .. wps[i]
        end
        fishlive.util.shuffle(imgsources)
        collage.registerTagCollage({
          screen = screen,
          collage_template = collage_template,
          imgsources = imgsources,
          tagids = tagids,
        })
      end
      -- Portraits Collage for Dev Tag
      collageTag(notifpath_user, notif_user, {4}, {
        { max_width = 400, posx = 100, posy = 100 },
        { max_width = 400, posx = 100, posy = 800 },
        { max_width = 600, posx = 3740, posy = 2060, align = "bottom-right" },
      })
      -- Joy Collage for love Tag
      local wppath_joy = notifpath .. "joy/"
      collageTag(wppath_joy, fishlive.util.scandir(wppath_joy), {9}, {
        { max_height = 800, posx = 100, posy = 100 },
        { max_height = 400, posx = 100, posy = 930 },
        { max_height = 400, posx = 450, posy = 930 },
        { max_height = 400, posx = 870, posy = 100 },
        { max_height = 400, posx = 1220, posy = 100 },
        { max_height = 800, posx = 870, posy = 530 },
      })
      -- Collage of user wallpapers
      collageTag(wppath_user, fishlive.util.scandir(wppath_user), {3}, {
        { max_width = 800, posx = 100, posy = 100 },
        { max_width = 1200, posx = 100, posy = 800 },
        { max_width = 800, posx = 3740, posy = 1700, align = "bottom-right" },
      })
    

    Nadefinujete si z jakého adresáře čerpat obrázky, dále na jaké tagy je chcete používat a nakonec nadefinujete rozložení šablony pro koláž, jak budou obrázky umísťovány. Je možné rovněž zadávat align pokud se mají obrázky zarovnávat k nějaké definované straně top-left nebo bottom-right. Nahoře v metodě používám náhodné proházení a umístění do připravené koláže, samozřejmě toto si můžete nastavit, jak potřebujete a taky potom dynamicky si je prohodit. Celkově doporučuji si potom hlavně prohlédnout novou knihovnu fishlive.collage.registerTagCollage.
    Ukázka výsledné podoby pro Travel, Job a Enjoy Life Tagy.

    EN:
    According to a previous post, I managed to finish this idea over the weekend. In the end, I simplified the project, I do not generate the resulting image, but the collage is created by widgets directly in Awesome WM integrated on the desktop wallpaper layer. The whole collage is therefore very dynamic and it is possible to shuffle individual images on-the-fly with a scrolling mouse wheel. Collage can be different per tag. See the recorded video Image Collage Lua Feature - Travel, Enjoy Life and Job Desktop.
    As always, the project is embedded in github awesome-config and is part of the fishlive library and used in theme.lua. The program configuration is shown on the top part of this article.
    You define source directory to draw images, which tags you want to use and finally the layout of the template for collage - how the images will be placed. It is also possible to specify an alignment of images - to define top-left or bottom-right align. At the top of the method, I use random shaffling and placement in the prepared collage, of course you can set this as you need and also then dynamically swap them. Overall, I especially recommend looking at the new fishlive.collage.registerTagCollage library.
    Sample of the final form for Travel, Job and Enjoy Life Tags.

    travel-desktop.jpg

    enjoy-life-desktop.jpg

    job-desktop.jpg

    Blogs

  • Raven2cz Blog
    raven2czR raven2cz

    Koláž a kombinování fotografií s pozadím / Photo Collage and Portrait Wall

    Už delší dobu bych chtěl skript/terminalApp, která vezme zvolené portréty/obrázky a nějak pěkně podle šablony, nebo náhodně je rozmístí na obrázek s vybraným pozadím. Ale decentně ne pouze jako fixní koláž, že není vidět vůbec pozadí. Umístí je šikovně, aby pořád bylo pozadí vidět a tyto portréty pouze doplňovaly celek. Vygeneruje výsledný jpg/png obrázek, který se automaticky zobrazí jako tapeta/wallpaper.
    Žádná taková aplikace neexistuje, což je překvapivé, ale hledal jsem opravdu dlouho, nic nefunguje takto pěkně. Jediná možnost je napsat si vlastní skript. Což ve volných chvílích bych rád udělal. Bude to multiplatformní pro jakýkoliv linux, windows, macos, použiji jazyk java a java2d knihovnu, která je přítomna všude a plně dostačuje na všechny věci, které plánuji.
    Nezbývá než se do toho pustit.

    For a long time now, I would like the script / terminal app, which takes the selected portraits / images and somehow nicely according to the template, or randomly places them on an background with the selected wallpaper. But decently not just as a fixed collage, there is no background at all. It places them deftly so that the background is still visible and these portraits only complement the whole wallpaper. Generates the resulting jpg/png image, which is automatically displayed as a wallpaper.
    There is no such application, which is surprising, but I've been looking for a really long time, nothing works so nicely. The only option is to write my own script. Which I would like to do in my free time. It will be cross-platform for any GNU/Linux, Windows, MacOS, I will use the java language and the java2d library, which is present everywhere and fully sufficient for all the things I plan.
    All that remains is to get started.

    Blogs

  • Běžné příkazy pro denní potřebu
    raven2czR raven2cz

    Běžné příkazy pro denní potřebu

    Staré exporty některých poznámek. Pořád ale většina platných. Můžeme sem postupně přihazovat další...

    spusteni procesu na pozadi s ignorivanim logout subsequence, zustane bezet

    nohup ./black-horse.sh &
    

    zabiti konkretniho procesu

    kill -9 processId
    

    seznam procesu

    ps -A  
    

    nastavení eth1

     sudo ifconfig eth1 192.168.1.10 netmask 255.255.255.0 up
    

    Edit Cron
    http://www.tecmint.com/11-cron-scheduling-task-examples-in-linux/

    crontab -e
    

    Hledání dle jména

    whereis test
    locate test
    sudo find / -name test
    

    Rychlé prohledávání obsahu souborů
    instalovat

    sudo paru -S the_silver_searcher
    

    Použití na celý systém bez výpisu chyb a ignorováním připojených mount bodů

    sudo ag --silent --one-device confluence.sh /
    

    Zjisteni bezicich procesu

    ps ax | grep java
    

    Výpis log souboru

    tail -f /data/logs/osgi.log -n 100
    konec: ctrl+C
    

    Wget stahování HTTP/FTP

    wget -o log -O res -Presult.txt http://192.168.1.2:8080/echoGet?name=ahoj
    

    Navod na SSH Server Cygwin pro Windows:
    https://dbaportal.eu/2015/03/05/installing-openssh-cygwin-1-7-35-on-windows-2012-r2/

    Pristup remote k lokalnimu portu forwardingu pres GateWay
    http://superuser.com/questions/588591/how-to-make-ssh-tunnel-open-to-public

    Počasí:

    curl -4 http://wttr.in/Pilsen
    

    Update-Motd

    sudo run-parts /etc/update-motd.d  - zjistit co se blbe sestavuji v welcome do ssh
    

    Thread dump

    kill -3 processJavaId
    

    DSA 3.6.1 tgz extract

    tar -xvzf prodismcd_mcdkernel_openmatics_3.6.1.tgz
    

    Změna terminalu na základní barvy ne 256 colors

    TERM=vt100
    

    Ruční nahození CANu

    canconfig can0 bitrate 250000
    ip link set can0 up
    candump 
    note: pro traxon EL40 nastavit bitrate na 500000 a vypnout v rawAcquisition.xml CAN1 a ISO-TP0
    

    Delete specific host from the known_hosts

    ssh-keygen -f "/home/box/.ssh/known_hosts" -R 192.168.1.1
    

    pip3 upgrade all packages

    pip3 freeze --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip3 install -U
    
    Uživatelské návody

  • Bash Unit Testing
    raven2czR raven2cz

    Bash Unit Testing

    Bats: Bash Automated Testing System
    Bats je TAP-compliant testing framework pro Bash. Poskytuje jednoduchý způsob, jak ověřit, že se programy pro UNIX, které píšete, chovají podle očekávání.

    Testovací soubor Bats je Bash skript se speciální syntaxí pro definování testovacích případů. Pod kapotou je každý testovací případ pouze funkcí s popisem.

    #!/usr/bin/env bats"addition using bc""$(echo 2+2 | bc)""$result"-eq"addition using dc""$(echo 2 2+p | dc)""$result"-eq
    
    @test  {
      result=
      [   4 ]
    }
    
    @test  {
      result=
      [   4 ]
    }
    

    Bats je nejužitečnější při testování softwaru napsaného v Bash, ale můžete jej použít k testování jakéhokoli unixového programu.

    Testovací případy se skládají ze standardních příkazů shellu. Bats při spouštění testovacích případů využívá Bashovu volbu errexit (set -e). Pokud každý příkaz v testovacím případě skončí se stavovým kódem 0 (úspěch), test projde. Tímto způsobem je každý řádek tvrzením pravdy (assertion true).

    Uživatelské návody

  • Bash Trénink
    raven2czR raven2cz

    Bash Trénink

    Regulární výrazy pomocí [[...]]

    $ string=whatever
    $ [[ $string =~ h[aeiou] ]]
    $ echo $?
    0
    

    Evaluace aritmetického výrazu pomocí ((...))
    Možno potom zkombinovat s and příkazem

    ((verbose)) && command ## execute command if verbose != 0
    
    Tests
    -f test regular file
    -e file exists
    -d directory exists
    -h symbolic link
    -x execute file
    -s is file and is not empty
    mozno i negovat pomocí ! -f 
    -z arguments are empty
    -n arguments are nonempty
    

    conditional operators

    if
    if ... then elif then fi
    
    if [ -d "$dir" ] && cd "$dir"
    then
      echo "$PWD"
    fi
    

    Case

    case WORD in
        PATTERN) COMMANDS ;;
        PATTERN) COMMANDS ;; ## optional
    esac
    
    Listing 3-4. Does One String Contain Another?
    case $1 in
        *"$2"*) true ;;
        *) false ;;
    esac
    
    Listing 3-5. Is This a Valid Positive Integer?
    case $1 in
       *[!0-9]*) false;;
       *) true ;;
    esac
    
    Check appropriate count of input arguments
    case $# in
        3) ;; ## We need 3 args, so do nothing
        *) printf "%s\n" "Please provide three names" >&2
            exit 1
            ;;
    esac
    

    Looping

    while
    while <list>
    do
        <list>
    done
    
    until
    n=1
    until [ $n -gt 10 ]
    do
        echo "$n"
        n=$(( $n + 1 ))
    done
    
    for
    for var in Canada USA Mexico
    do
        printf "%s\n" "$var"
    done
    

    Command Substitution

    wc -l $( date +%Y-%m-%d ).log
    

    Vypise pocet radek v danem souboru 2017-03-09.log

    Process Substitution
    Vytvari docasny soubor pro prikaz nebo list prikazu.
    Lze jej uzit potom kdekoliv se pouziva soubor

    while read perms links owner group size month day time file
    do
        printf "%10d %s\n" "$size" "$file"
        totalsize=$(( ${totalsize:=0} + ${size:-0} ))
    done < <(ls -l *)
    echo ${totalsize-unset}
    12879
    

    Check if variable x is set

    if [[ ${x+X} = X ]] ## If $x is set
    unset x ## unset variable x
    export x ## exportuje promennou x do environment variables
    

    Opakování pomocí čárek

    printf "%s\n" ${RANDOM}{,,,,,}
    printf "%s\n" {1..5}{,}  ## dvojice 1122334455 
    

    Poslední pipe bude provedena v current shellu (bash 4.2)

    shopt -s lastpipe
    

    Ověření verze bash skriptu

    case $BASH_VERSION in
        [12].*) echo "You need at least bash3.0 to run this script" >&2; exit 2;;
    esac
    
    ${var:-default} and ${var-default}: Use Default Values
    The most commonly used expansion, ${var:-default}, checks to see whether a variable is unset or empty
    and expands to a default string if it is:
      $ var= 
      $ ba "${var:-default}"  ## The sa script was introduced in Chapter 4
      :default:
      If the colon is omitted, the expansion checks only whether the variable is unset:
      $ var=
      $ ba "${var-default}" ## var is set, so expands to nothing
      ::
      $ unset var
      $ ba "${var-default}" ## var is unset, so expands to "default"
      :default:
      defaultfile=$HOME/.bashrc
      ## parse options here
      filename=${filename:-"$defaultfile"}
    
    ${var:+alternate}, ${var+alternate}: Use Alternate Values
    The complement to the previous expansion substitutes an alternate value if the parameter is not empty or,
    without a colon, if it is set. The first expansion will use alternate only if $var is set and is not empty.
    

    To prevent the leading space, you can use parameter expansion:

    $ var=
    $ for n in a b c d e f g
    > do
    >
       var="${var:+"$var "}$n"
    > done
    $ ba "$var"
    :a b c d e f g:
    another solution:
    [ -n "$var" ] && var="$var $n" || var=$n
    
    ${var:?message}, ${var?message}: Display Error Message If Empty or Unset
    

    If var is empty or not set, message will be printed to the standard error, and the script will exit with a status
    of 1. If message is empty, parameter null or not set will be printed. Listing 5-2 expects two non-null
    command-line arguments and uses this expansion to display error messages when they are missing or null.

    Listing 5-2. checkarg, Exit If Parameters Are Unset or Empty
    ## Check for unset arguments
    : ${1?An argument is required} \
      ${2?Two arguments are required}
    
    ## Check for empty arguments
    : ${1:?A non-empty argument is required} \
      ${2:?Two non-empty arguments are required}
    
    echo "Thank you."
    

    Ostatní viz dokumentace pdf...

    ${var##PATTERN}: Remove the Longest Match from the Beginning
    

    The variable is expanded, and the longest string that matches PATTERN is removed from the beginning of the
    expanded value. This is often used to extract the name of a script from the $0 parameter, which contains the
    full path to the script:
    scriptname=${0##*/} ## /home/chris/bin/script => script

    ${var:OFFSET:LENGTH}: Return a Substring of $var
    

    A substring of $var starting at OFFSET is returned. If LENGTH is specified, that number of characters is
    substituted; otherwise, the rest of the string is returned. The first character is at offset 0:

    $ var=Toronto
    $ sa "${var:3:2}"
    :on:
    $ sa "${var:3}"
    :onto:
    
    ${!var}: Indirect Reference
    

    If you have one variable containing the name of another, for example x=yes and a=x, bash can use an
    indirect reference:

    $ x=yes
    $ a=x
    $ sa "${!a}"
    :yes:
    

    The same effect can be had using the eval builtin command, which expands its arguments and
    executes the resulting string as a command:

    $ eval "sa \$$a"
    :yes:
    
    ${var^PATTERN}: Convert to Uppercase
    $ var=toronto
    $ sa "${var^}"
    :Toronto:
    $ sa "${var^^}"
    :TORONTO:
    

    ${var,PATTERN}: Convert to Lowercase
    This expansion works in the same way as the previous one, except that it converts uppercase to lowercase:

    $ var=TORONTO
    $ sa "${var,,}"
    :toronto:
    $ sa "${var,,[N-Q]}"
    :ToRonTo:There is also an undocumented expansion that inverts the case:
    $ var=Toronto
    $ sa "${var~}"
    :toronto:
    $ sa "${var~~}"
    :tORONTO:
    

    Cyklovani pres vstupni positional parameters

    for param in "$@" ## or just:  for param
    do
        : do something with $param
    done
    

    And this is the second:

    while (( $# ))
    do
        : do something with $1
        shift
    done
    

    Arrays

    $ printf "%s\n" "${BASH_VERSINFO[*]}"
    4 3 30 1 release i686-pc-linux-gnuoldld
    
    $ printf "%s\n" "${BASH_VERSINFO[@]}"
    4
    3
    30
    1
    release
    i686-pc-linux-gnu
    

    Various parameter expansions work on arrays; for example, to get the second and third elements from
    an array, use this:

    $ printf "%s\n" "${BASH_VERSINFO[@]:1:2}" ## minor version number and patch level
    3
    30
    

    The length expansion returns the number of elements in the array when the subscript is * or @, and it
    returns the length of an individual element if a numeric index is given:

    $ printf "%s\n" "${#BASH_VERSINFO[*]}"
    6
    $ printf "%s\n" "${#BASH_VERSINFO[2]}" "${#BASH_VERSINFO[5]}"
    2
    17
    

    Přiřazení hodnot do pole a použití postupně inkrementujícího indexu pole

    $ unset a
    $ a[${#a[@]}]="1 $RANDOM"  
    $ a[${#a[@]}]="2 $RANDOM"
    $ a[${#a[@]}]="3 $RANDOM"
    $ a[${#a[@]}]="4 $RANDOM"
    $ printf "%s\n" "${a[@]}"
    1 6007
    2 3784
    3 32330
    4 25914
    
    $ province=( Quebec Ontario Manitoba )
    $ printf "%s\n" "${province[@]}"
    Quebec
    Ontario
    Manitoba
    
    $ province+=( Saskatchewan )
    $ province+=( Alberta "British Columbia" "Nova Scotia" )
    $ printf "%-25s %-25s %s\n" "${province[@]}"
    Quebec   Ontario   Manitoba
    Saskatchewan   Alberta    British Columbia
    Nova Scotia
    

    Associative Arrays
    Associative arrays, introduced in bash in version 4.0, use strings as subscripts and must be declared before
    being used:

    $ declare -A array
    $ for subscript in a b c d e
    > do
    >     array[$subscript]="$subscript $RANDOM"
    > done
    $ printf ":%s:\n" "${array["c"]}" ## print one element
    :c 1574:
    $ printf ":%s:\n" "${array[@]}" ## print the entire array
    :a 13856:
    :b 6235:
    
    Uživatelské návody

  • Restic - rychlý a bezpečný zálohovací program
    raven2czR raven2cz

    Restic - rychlý a bezpečný zálohovací program

    Na Arch Linuxu je balíček zvaný restic nainstalovaný z oficiálních komunitních repozitářů.

    $ pacman -S restic
    
    restic init --repo ~/nfs/homes/box/backup/arch-main/
    restic init --repo ~/nfs/homes/box/backup/mx/ 
    restic init --repo ~/nfs/homes/box/backup/arch1/ 
    
    sudo restic -r ~/nfs/homes/box/backup/arch-main backup --one-file-system --exclude-caches --exclude={/dev,/media,/mnt,/proc,/run,/sys,/tmp,/var/tmp,/home/box/Downloads,/home/box/WFD-REPOSITORY,/home/box/AOS-AUTO,/home/box/SynologyDrive,/home/box/OneCloud,/home/box/git,/home/box/Videos,/home/box/Pictures,/home/box/nfs,/home/box/Music,/home/box/ide} --verbose /
    
    sudo restic -r ~/nfs/homes/box/backup/mx backup --one-file-system --exclude-caches --exclude={/dev,/media,/mnt,/proc,/run,/sys,/tmp,/var/tmp,/home/box/Downloads,/home/box/WFD-REPOSITORY,/home/box/AOS-AUTO,/home/box/SynologyDrive,/home/box/OneCloud,/home/box/git,/home/box/Videos,/home/box/Pictures,/home/box/nfs,/home/box/Music,/home/box/ide} --verbose / 
    
    sudo restic -r ~/nfs/homes/box/backup/arch1 backup --one-file-system --exclude-caches --exclude={/dev,/media,/mnt,/proc,/run,/sys,/tmp,/var/tmp,/home/box/Downloads,/home/box/nfs} --verbose /
    
    
    restic -r ~/nfs/homes/box/backup/arch-main check
    
    restic -r ~/nfs/homes/box/backup/arch-main snapshots
    
    restic -r /srv/restic-repo copy --repo2 /srv/restic-repo-copy
    
    #Full restore:
    restic -r ~/nfs/homes/box/backup/arch-main restore latest --target /tmp/restore --path "/" --host r7arch
    
    #Restore specific file/folder
    restic -r /srv/restic-repo restore 79766175 --target /tmp/restore-work --include /work/foo
    
    #Dump specific file to pipe
    restic -r /srv/restic-repo dump 098db9d5 production.sql | mysql
    
    #Mount snapshot
    $ mkdir /mnt/restic
    $ restic -r ~/nfs/homes/box/backup/arch-main mount /mnt/restic
    
    #Deleting and pruning
    restic -r /srv/restic-repo forget bdbd3439
    restic -r /srv/restic-repo prune
    
    #Best deleting for me
    restic forget --keep-last 3 --prune
    
    Uživatelské návody

  • Postgres Installation
    raven2czR raven2cz

    Postgres Installation

    sudo pacman -S postgresql postgis
    sudo -u postgres -i
    initdb --locale $LANG -E UTF8 -D '/var/lib/postgres/data/'
    exit
    sudo systemctl enable --now postgresql.service
    #sudo systemctl start postgresql.service
    sudo su postgres
    psql --version
    psql
    # insert admin password
    \password
    \q
    sudo pamac install pgadmin4
    

    Upgrade databáze (pokud nejsou update scripts)

    Je nutné smazat :

    /var/lib/postgres/data/
    

    přidělit práva /var/lib/postgres/ pro user a skupinu postgres

    potom znovu vytvořit databáze repository:

    initdb --locale $LANG -E UTF8 -D '/var/lib/postgres/data/'
    

    pak již znovu nahodit server.

    Uživatelské návody

  • Skřípání a praskání zvuku od kernel 5.10 (fix)
    raven2czR raven2cz

    Skřípání a praskání zvuku od kernel 5.10 (fix)

    Problém praskání zvuku může docházet u některých zvukových čipů zejména od verze 5.10, kde došlo ke změnám.

    Toto řešení funguje pouze do doby, než restartujete systém.
    Pro trvalou opravu vytvořte nový soubor *.conf:

    /etc/modprobe.d/audio_disable_powersave.conf
    

    Přidejte do souboru následující nastavení:

    možnosti snd_hda_intel power_save=0
    

    Poté restartujte systém.

    Uživatelské návody

  • Nelze zapisovat do oddílu NTFS v Linuxu (fix)
    raven2czR raven2cz

    Nelze zapisovat do oddílu NTFS v Linuxu (fix)

    Máte problémy s tím, že NTFS je uzamčen win10/11 a GNU/Linux umí otevřít oddíl ntfs pouze s přístupem pouze pro čtení (read-only)? Existují příkazy; jak to vyřešit!

    Oprava uzamčeného oddílu NTFS

    Nejprve odpojte svůj oddíl ntfs, protože pokud je uzamčen, je oddíl nastaven do režimu pouze pro čtení.

    sudo umount /mnt/hdd2tb
    

    Potom zavolejte příkaz ntsfixs uuid vašeho oddílu ntfs, který je třeba opravit.

     sudo ntfsfix /dev/disk/by-uuid/2CE8875EE88724E4     
    

    Pokud je příkaz úspěšný, uvidíte protokol výstupu, kde bude úspěšné opravení. Poté můžete znovu připojit svůj oddíl s právy pro čtení a zápis.

    sudo mount -o rw /dev/disk/by-uuid/2CE8875EE88724E4 /mnt/hdd2tb
    

    HOTOVO 😉

    PS: Od kernel verze 5.15 je již k dispozici kompletní MS podpora pro NTFS. Snad pomůže i při tomto problému.

    Uživatelské návody
  • 1
  • 2
  • 1 / 2
  • Přihlásit se

  • Nemáte účet? Registrovat

  • Login or register to search.
  • First post
    Last post
0
  • Kategorie
  • Nejnovější
  • Značky
  • Populární
  • Uživatelé
  • Skupiny