@archos gimp dělal jsem pro reddit

raven2cz
@raven2cz
Name: Antonín Fischer
Role: Arch User
Discord: raven2cz#2073
WWW: https://fishlive.org
https://github.com/raven2cz
https://arch-linux.cz
PGP key: 0x4DDE50A97B3C01BD
Languages: English, Czech, Java, Kotlin, JS, Lua, Elisp, Python, C, EasyLanguage
Other profiles: AUR :: Github
Best posts made by raven2cz
-
AwesomeWM - awesome window manager
AwesomeWM - awesome window manager
Awesome je vysoce konfigurovatelný správce oken nové generace pro Xorg. Je velmi rychlý a rozšiřitelný pomocí perfektně zdokumentovaného API. Primárně se zaměřuje na pokročilé uživatele, vývojáře a všechny lidi, kteří se zabývají každodenními složitějšími úkoly a chtějí mít plnou kontrolu nad ovládáním jejich vlastního grafického prostředí.Základem je programovací jazyk Lua. Lua je odlehčený, reflexivní, imperativní a procedurální programovací jazyk navržený jako skriptovací jazyk s rozšiřitelnou sémantikou. Název je odvozen z portugalského slova pro měsíc.
EN: Awesome is a highly configurable next-generation window manager for Xorg. It is very fast and extensible using a perfectly documented API. It's primarily focus on advanced users, which have complex daily tasks and want to have full control of system and their own graphical environment.
The basis is the Lua programming language. Lua is a lightweight, reflexive, imperative and procedural programming language designed as a scripting language with extensible semantics. The name is derived from the Portuguese word for moon.
Odkazy
- Website: https://awesomewm.org/
- API doc: https://awesomewm.org/apidoc/
- Šablony a recepty (templates and recipes): https://awesomewm.org/recipes/
- Reddit: https://www.reddit.com/r/awesomewm/
- Discord: https://discord.gg/BPat4F87dg
- GitHub Project: https://github.com/awesomeWM/awesome/
- Průvodce CZ:
- Awesome Základy: https://youtu.be/wi_EM5zXt8s
- Awesome Ricing 1: https://youtu.be/FCxd5id77c4
- Awesome Keybindings and Demo Project: https://youtu.be/1dNNwsOx6hU
- Awesome Ricing 2: https://youtu.be/KDJbas2FVXM
- Guide EN:
- Tux Docs: https://github.com/raven2cz/tux (focus awesome-basics, awesome-ricing)
- Awesome Basics: https://youtu.be/gPJQzUnSRxI
- Awesome Ricing 1: https://youtu.be/gh6h9DvUJRI
- Awesome Keybindings and Demo Project: https://youtu.be/1dNNwsOx6hU
- Awesome Ricing 2A: https://youtu.be/gYa3Srllbbk
- Awesome Ricing 2B: https://youtu.be/OjTdJg40pQg
-
RE: Raven2cz Blog
Public-Wallpapers Portraits Extension
Rozšíření public-wallpapers projektu o rozsáhlou sbírku portrétů pro zvolené coloscheme a zájmové téma.
Postupně byly pečlivě vybrány jednotlivé portréty pro danou skupiny a barevné zobrazení, aby dobře doplňovalo zvolený okruh.
Jednotlivé portréty jsou v podadresářiportraits/<colorschemeID>
EN: Extension of the public-wallpapers project with an extensive collection of portraits for the selected coloscheme and theme of interest.
Gradually, the individual portraits for the group and the color representation were carefully selected to complement the chosen theme scope.
The individual portraits are in theportraits / <colorschemeID>
subdirectoryProject
https://github.com/raven2cz/public-wallpapers
Link na obrázky některých barevných schémat
-
RE: Install
@Blender Pro instalaci archu se doporučuje postupovat vždy podle aktuálního návodu na arch wiki - https://wiki.archlinux.org/title/Installation_guide
Po základní instalaci přejít a pokračovat na stránce
https://wiki.archlinux.org/title/General_recommendations
Během tohoto instalačního procesu je silně doporučeno číst i ostatní články, které přímo s instalačním popisem souvisejí. Nikoliv pouze zkopírovat příkaz a pokračovat dál, ale prokliknout uvedený odkaz a přečíst si tak klíčové informace.
Často se s nováčky na redditu setkávám s tím, že přeskočí například článek bootloader nebo dokonce grub a pak nevědí, co mají dělat, nebo špatně grub nainstalují a pak po restartu jim instalace nefunguje.
Po základní instalaci a obecných doporučeních je nutné mít představu, které desktop prostředí nebo window manager používat. Je nutné někde začít. Kombinovat je samozřejmě v archu možné daleko lépe než s jinou distribucí. Je nutné si ale udělat nějaký plán, co pro začátek nainstalovat a používat. Samozřejmě za měsíc to může být úplně něco jiného.Připravili jsme rovněž český návod a youtube průvodce pro instalaci archu. Tento postup se snaží rozšiřovat a popisovat některé aspekty a problematické body instalace. Měl by ale být vždy pouze doplňkem již popsaného postupu.
https://arch-linux.cz/arch-linux-instalace/
Tento odkaz je součástí vzniklého seriálu a je dobré v něm nepřeskakovat a postupovat krok za krokem od prvního dílu.V seriálu je rovněž vysvětleno, že pro úplné GNU/Linux začátečníky, nebo pro uživatele, kteří nemají zkušenosti s terminálem, je vhodné několik týdnů cvičit ve VM, například virtualboxu. Nacvičit a naučit se nejzákladnější body instalace a pochopit GNU/Linux principy a až s dostatečnou zkušeností instalovat systém na reálné železo již jako "profík", nebo přesněji někdo, kdo již má natrénováno. VM navíc umožňuje si provést snapshoty svojí práce a jednoduše se k jednotlivým bodům vracet, pokud se něco nepovedlo nebo vyzkoušet jinou sérii kroků apod.
https://arch-linux.cz/jak-na-virtualbox/
https://arch-linux.cz/virtualbox-arch-linux-nastaveni/ -
Awesome ukázka barevných schémat s obrázkovou kolekcí
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.
-
RE: Raven2cz Blog
Atom - Grammer and Syntax for EasyLanguage TradeStation
Tvorba gramatiky a syntaxe pro Atom editor pro jazyk Easylanguage TradeStation.
Šlo o velmi zajímavou jednodenní práci pro správné zvýrazňování tohoto obchodního jazyka. Easylanguage je podporován přímo IDE TradeStation a powerlanguage Multicharts, ale tyto IDE nejsou úplně vhodné pro jednoduchou dnešní práci. Atom toto může skvěle doplnit a tak nahradit řady operací s kódem, které nejsou v těchto IDE vůbec možné.EN Translation: Grammar and syntax created for Atom Editor for Easylanguage TradeStation.
It was a very interesting one-day work to properly highlight this trading language. Easylanguage is directly supported by the TradeStation IDE and the Multicharts powerlanguage, but these IDEs are not entirely suitable for simple work today. Atom can complement this perfectly and thus replace a number of code operations that are not possible in these IDEs at all.Ukázka výsledku
Links
Výslednou gramatiku a syntaxi si lze stáhnout již jako hotové balíčky, které jsem připravil do atom.io.
EN Translation: The result grammar and syntax can be downloaded as ready-made packages that I prepared for atom.io.
Atom Packages
https://atom.io/themes/easylanguage-syntax
https://atom.io/packages/language-easylanguageGitHub Pages
https://github.com/raven2cz/atom-language-easylanguage
https://github.com/raven2cz/easylanguage-syntax -
Openbox ricing - posledni dil Tux
Openbox Ricing (Tux Series)
Openbox ricing. Finalni ricing a nastaveni openboxu je hotovo!
Prvni cast pruvodce bude vychazet z tohoto navrhu.
-
Gnome Tux Series
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.
-
XFCE - lightweight desktop environment
XFCE - lightweight desktop environment
Xfce je odlehčené desktopové prostředí pro unixové operační systémy. Má za cíl být rychlé a nenáročné na systémové zdroje při zachování atraktivního vzhledu a uživatelské přívětivosti. Xfce je psané na GTK2. Je založeno na filosofii jednoduchosti. Některé ovládací prvky přejalo z prostředí GNOME v odlehčené variantě. Jeho velikou výhodou je malá náročnost, a tak funguje skvěle i na starších počítačích. Maskotem Xfce je myš, která má symbolizovat rychlost a minimální velikost.Historie Xfce sahá do roku 1997, kdy Olivier Fourdan vytvořil pomocí XForms jednoduchý panel pro FVWM. Vývoj panelu pokračoval a roku 1998 jej Fourdan vydal spolu s XFWM (Xfce Window Manager). V této době si Xfce všimla řada uživatelů, nicméně snaha zařadit projekt do distribuce Red Hat Linux se minula účinkem, kvůli omezeným licenčním podmínkám XForms. Přelom nastává v roce 1999 s příchodem Xfce 3.0, které je licencováno pod GNU GPL a postaveno na knihovnách GTK+. S verzemi 4.x (od roku 2003) Xfce přechází na knihovny GTK+ 2 a získává svou současnou podobu. [zdroj: xfce webpage a wikipedie]
Odkazy
- Website: https://www.xfce.org
- API doc: https://docs.xfce.org
- Arch Wiki XFCE (CZ): https://wiki.archlinux.org/title/Xfce_(Čeština)
- Reddit: https://www.reddit.com/r/xfce
- Community: https://www.xfce.org/community (use Libera Chat)
- Gitlab Project: https://gitlab.xfce.org
- Průvodce CZ:
- XFCE Instalace: https://youtu.be/tehEIbcYn8U
- XFCE Ricing: https://youtu.be/VspS7Q9Spjs
-
RE: Raven2cz Blog
SDDM: Ghost in the Shell Theme
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:
Latest posts made by raven2cz
-
Awesome ukázka barevných schémat s obrázkovou kolekcí
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.
-
Gnome Tux Series
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.
-
Openbox ricing - posledni dil Tux
Openbox Ricing (Tux Series)
Openbox ricing. Finalni ricing a nastaveni openboxu je hotovo!
Prvni cast pruvodce bude vychazet z tohoto navrhu.
-
RE: Raven2cz Blog
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
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.
-
RE: Raven2cz Blog
SDDM: Ghost in the Shell Theme
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:
-
RE: Raven2cz Blog
[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í knihovnyfishlive
a použit vtheme.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
nebobottom-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 knihovnufishlive.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 imageson-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 thefishlive
library and used intheme.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 definetop-left
orbottom-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 newfishlive.collage.registerTagCollage
library.
Sample of the final form for Travel, Job and Enjoy Life Tags. -
RE: Raven2cz Blog
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. -
Běžné příkazy pro denní potřebu
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ů
instalovatsudo 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-publicPoč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
-
Bash Unit Testing
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). -
Bash Trénink
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 souborwhile 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: