Šikovné útržky kódu

Založil Petr Blažíček, 22. 03. 2020, 08:03:46

Předchozí téma - Další téma

Petr Blažíček

Sem bych postupně přidal takové ty magické útržky většinou bash skriptů, které člověku dokážou ulehčit život. Jako první:

Rozbalení libovolného archivu v konzoli
Tohle je velmi známá funkce, která umožňuje jednotným příkazem rozbalit i poměrně exotické typy archivů. Přepsal jem to pro 7zip, bez kterého to ovšem nepůjde:
# apt install p7zip-rar
a tento kód zkopírujeme na konec ~/.bashrc:

# extract any archive
function ex {
if [ -z "$1" ]; then
    # display usage if no parameters given
    echo "Usage: ex <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|arj|exe|tar.bz2|tar.gz|tar.xz>"
else
    if [ -f "$1" ] ; then
        NAME=${1%.*}
        # mkdir $NAME && cd $NAME
        case "$1" in
          *.tar.7z)    7z x -so ./"$1" | tar x ;;
          *.tar.gz)    tar -xzf ./"$1"    ;;
          *.tar.xz)    tar -xJf ./"$1"    ;;
          *.tar.bz2)   tar -xjf ./"$1"    ;;
          *.lzma)      7z x ./"$1"        ;;
          *.bz2)       7z x ./"$1"        ;;
          *.rar)       7z x ./"$1"        ;;
          *.gz)        7z x ./"$1"        ;;
          *.tar)       tar -xvf ./"$1"    ;;
          *.tbz2)      tar xvjf ./"$1"    ;;
          *.tgz)       tar xvzf ./"$1"    ;;
          *.zip)       7z x ./"$1"        ;;
          *.Z)         7z x ./"$1"        ;;
          *.7z)        7z x ./"$1"        ;;
          *.xz)        7z x ./"$1"        ;;
          *.arj)       7z x ./"$1"        ;;
          *.exe)       7z x ./"$1"        ;;
          *)           echo "extract: '$1' - unknown archive method" ;;
        esac
    else
        echo "'$1' - file does not exist"
    fi
fi
}

Odhlásit/přihlásit - a stačí:
$ ex archiv.lzma
A už to hóří...
Ještě jednou a samozřejmě lépe (trochu učesáno)
Lze rozbalit mnoho archivů najednou (ex *.rar)...

# extract any archive(s)
ex() {
  declare file

  if (($# > 0)); then
    for file in "${@}"; do
      if [[ -f $file ]]; then
        case "$file" in
          *.tar.7z) 7z x -so ./"$file" | tar x ;;
          *.tar.gz) tar -xzf ./"$file" ;;
          *.tar.xz) tar -xJf ./"$file" ;;
          *.tar.bz2) tar -xjf ./"$file" ;;
          *.tar) tar -xvf ./"$file" ;;
          *.tbz2) tar -xvjf ./"$file" ;;
          *.tgz) tar -xvzf ./"$file" ;;
          *.7z | *.arj | *.bz2 | *.exe | *.gz | *.lzma | *.rar | *.xz | *.zip | *.Z) 7z x ./"$file" ;;
          *) echo "ex: '$file' - unknown archive method" ;;
        esac
      else
        echo "'$file' - file does not exist"
      fi
    done
  else
    echo "Usage: ex <file> [<file>]..."
  fi
}


Barevně odlišený prompt
V konzoli chci prostě na první pohled na dálku vidět, že jsem root. Přidáme řádek na konec .bashrc v /root:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
Chcete-li jinou než červenou barvu, změňte hodnotu 31.

Přehledný výpis adresáře
Na konec souboru ~/.bash_aliases:
alias lsl='ls -lG --group-directories-first -A -v'

XFCE, VLC a Power Manager
Pokud někdo nedáte dopustit na XFCE a rádi usínáte např. u mluveného slova - mám v PM nastavenou hibernaci po hodině nečinnosti, ale jak to udělat s VLC? Ten potlačí screensaver - při přehrávání videa. Screensaver nepoužívám a hlavně mi jde o audio. Nejdřív nastavím ve VLC vypnutí po přehrání playlistu.
A tady je spouštěcí miniskriptík, který při spuštění VLC nastaví režim prezentace a při vypnutí zruší:
!!! POZOR !!! Nejdřív je nutno aspoň jednou ručně přepnout prezentační mód, aby byla proměnná viditelná/přístupná.

#!/usr/bin/env bash
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/presentation-mode -s true
vlc
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/presentation-mode -s false

Roman Horník

Debian Sid/Experimental 64bit + Mate Desktop Environment
* CPU: Intel i5 3570
* GPU: NVIDIA GTX650 1GD5
* MB: Lenovo IH61M
* RAM: 16GiB Deutsche Demokratische Republik 3 @ 1600MHz