CategoryBASH

Předpověd počasí v Bashi

Výsledkem je předpověď počasí na 3 dny s informacemi o všem dúležitém a to včetně obrázků:

Snímek obrazovky 2016-02-18 v 13.28.35

Defensivní programování v Bashi

Pokud spravujete nějaký ten linuxový server, nebo vašim desktopem je nějaká linuxová distribuce, pak musíte aspoň do nějaké míry ovládat Bash a pak by se vám mohl líbit tento opravdu hezký článek o defensivním programování v Bashi.

shelljs místo gulpu a gruntu

Shelljs je NPM balíček, který nabízí funckionality linuxového shellu NodeJS aplikacím.

Jestli vyvíjíte nějakou javascriptovou aplikaci, tak pak jak vám rostala pod roukama, pocítili jste v nějakém momentě potřebu nějakého automatizovaného systému pro build aplikace, nebo jakoukoliv jinou činost, akci související s prací nad zdrojákem v rámci projektu.

Dříve tenhle úkol zastával Grun, později se objevil Gulp. Oba dělají totéž, každý trochu jinak a je jen věcí osobního vkusu, který použijete.

Nicméně, oba jsou nějaké obecné nástroje, které víceméně dávkově pracují nad soubory projektu a něco s nimi dělají. To co s nimi dělají je dané nějakými pluginy, které danou funkcionalitu nabízejí.

A tady se dostávám k jádru věci. Ona funkcionalita není nic jiného než nějak zabalený a integrovaný NPM balíček. A tohoto chování jste schopni v podstatě docílit sami bez Gulpu či Gruntu jen pomocí opět jiného NPM balíčku a glob balíčku.
Pomocí těchto dvou balíčků si můžete napsat jakou koliv vlastní funkcionalitu, kterou pak můžete pohodlně spouštět v shellu stejně jako gulp či grunt scripty…

Výhodou může být rychlejší přístup k novinkam v NPM, protože nemusíte čekat, až se nová verze NPM balíčku s funkcionalitou promítne do daného gulp/grunt pluginu. Další výhodou může být psaní vlastních celých velkých scriptů dle vzoru Makefile…

Shelljs

No a pak se přímo v konzole dá spouštět:

Glob

shelljs

Git branch v bash promptu

Super název, ale vystihuje přesně o co jsem se snažil.

Hodně práce při vývoji a pak při deploy aplikace strávím v terminálu (iTerm2). Pro správu verzí používám Git a pro deploy se přepínám mezi různými branchemi dané aplikace. A docela mi vadilo, že když uděláte git checkout, tak hned vidíte, že jse se přepnuli do nějaké větve, ale po zadání několika dalších příkazů vám info z gitu odscroluje a pak už nevíte nic. No a těsně před tím, než se rozhodnete udělat git push, zase spustíte git branch, abyste se přesvědčili, že pushujete tu správnou větev… A takhle několikrát deně… Strašný vopruz.

A protože jsem už kdysi viděl v zsh, že jde info o branchi umístit přímo do promptu vašeho shelu, začal jsem hledat jak nastavit bash prompt v iTerm2. Vyzkoušel jsem několik postupů a možností, až mi vyšel tenhle jako nejlépe fungující a zároveň nejjednodušší:

Tohle umístěte do .bashrc:

Uložte .basrc a proveďte source .bashrc.

Výsledkem bude krásný prompt, který obsahuje název aktualní branche vašeho git projektu.
Snímek obrazovky 2015-12-04 v 21.21.42
Hezké je, že když se nenacházíte v adresáři s git repozitářem, tak se v promptu žádná informace nevypisuje.

Vypnutí screensaveru na terminálu

Na serverech spouštím nějaké monitorovací apliakce a čas od času kouknu co to ukazuje. Teda v případě, že monitor právě nezčerná, protože nejste aktivní na terminálu…

Pokud chcete vypnout screensaver na vašem terminálu:

Opsáno odsud.

Mutli screen

Snímek obrazovky 2015-09-24 v 16.32.34 (2)

Tak tahle vypadá screenshot mého okna s terminálem na notebooku, ve kterém je spuštěno 11 ssh klientů na jednotlivé fyzické servery v cloudu.

Pro rozdělení okna terminálu používám příkaz screen.

Ctrl a + S Rozděli aktuální okno horizontálně
Ctrl a + \ Rozdělí aktuální okno vertikálně
Ctrl a + Tab Zafokusuje další okno (buffer)
Ctrl a + c Spustí v aktuálním okně shell

Z povšimnutí stojí, že na aplikačních serverech jsou 4 jádrové procesory, na databázových serverech 2 jádra a minimální RAM na strojích je 8GB RAM (respektive jeden config server má jen 4GB RAM, ale to sám nevím proč).

a1 až a3 jsou aplikační servery, d1 až d3 jsou databázové servery, c1 až c3 jsou config servery a fs1 s fs2 jsou file servery (data v MongoDB databázícj v ReplicaSetech přes tyto servery).

Git a pushování

Pokud jste součástí nějakého týmu, který svůj projekt spravuje v Gitu, a vy pracujete na nějaké funkcinalitě v oddělené lokální větvi, pak se čas od času nevyhnete tomu, že budete muset přepínat mezi svou vývojovou větví, nějakou hlavní větvi a pak se vracet zpátky do svého vývoje. No a pak čas od času budete komitovat své změny do remote branche vaší větve.

Abych si tohle co nejvíc zjednodušil a přitom viděl co a kam se pushuje, napsal jsem si bash script, který tohle dělá.

BASH: klávesové zkratky

BASH je příkazavý řádek, ale nejen to, pomocí kterého můžete zadávat příkazy vašemu počítači. Ano, jde to i jinak než klikáním myši a honěním ikonek na obrazovce. Ale ani i Windowsy mají svůj shell, říkají mu příkazový řádek, nebo Power Shell.

Ale i přesto, že se více méně stále pohybuji mezi nějakými GUI aplikacemi, minimálně v jednom okně mám spuštěný BASH a v něm provádím různé příkazy, které je šikovnější, rychlejší a efektivnější spouštět přímo s příkazové řádky.

Klávesové zkratky

Význam Zkratka
Skok na konec řádku CTRL+e
Skok na začátek řádku CTRL+a
Smaž od kurzoru do konce řádku CTRL+k
Smaž od kurzoru k začátku řádku CTRL+u
Skok na konec dalšího slova ESC+f
Skok na začátek předcházejícího slova ESC+b
Smaž od kurzoru jen do konce slova ESC+d
Smaž od kurzoru k začátku slova CRTL+w
Prohod 2 sousedící písmenka pod kurzorem CRTL+t
Smaž znak před kurzorem CTRL+h
Smaž znak pod kurzorem CRTL+d
O znak zpět na řádku CTRL+b
O znak vpřed na řádku CTRL+f
Přehodí 2 celá slova ESC+t
Udělej malá písmena od kurzoru do konce slova ESC+l
Udělej velká písmena od kurzoru do konce slova ESC+u
1. znak ve slově velkým a skok na další slovov ESC+c

© 2017 pepa.holla.cz

Theme by Anders NorénUp ↑