Příkazovou řádku znáte. Ve Windows je CMD (a nově PowerShell), v Linuxu/Macu je to terminál zpřístupňující shell, v různých provedeních (bash, zsh, atd). Je velmi snadné tam prostě spustit jeden příkaz, ale co když jedním zadáním chcete spustit víc?
Windows (CMD)
Spuštění více příkazů za sebou bez ohledu na výsledek (&):
příkaz1 & příkaz2 & příkaz3 …
Postupně spoustí první, následně druhý, třetí, atd.
Spuštění dalšího příkazu jen při úspěchu předchozího (&&):
příkaz1 && příkaz2 && příkaz3 …
Spuštění dalšího příkazu jen při chybě předchozího (||):
příkaz 1 || příkaz 2
Tady se příkaz 2 spustí pouze pokud příkaz1 skončí chybou.
TIP: Co to znamená CLI? a pro připomenutí je vhodné i Co je to ten DOS? A příkazová řádka?
PŘÍKLAD: CMD (Windows) – záloha složky + hláška, jestli to vyšlo
robocopy C:\Data D:\Zalohy\Data /MIR && echo ZALOHA OK || echo ZALOHA SELHALA
Windows (PowerShell)
V PowerShellu fungují zvyklosti jako dále v Linux a podporováno je
- řetězení – ;
- spustit další jen při úspěchu předchozího – &&
- spustit další při neúspěchu předchozího – ||
Aby zmatku nebylo málo, starší PowerShell (5.1) používal $? a if, konkrétně takto:
if ($?) { Command2 } else { Command3 }
PŘÍKLAD: PowerShell – spusť backup skript, jen když existuje, jinak hláška
Test-Path C:\skripty\backup.ps1 && & C:\skripty\backup.ps1 || Write-Host "Backup skript nenalezen nebo selhal"
Linux/Mac OS (bash, zsh, sh – terminál)
Spuštění více příkazů za sebou (nezávisle na výsledku):
příkaz1; příkaz2; příkaz2
Background (& – běží na pozadí)
příkaz1 & příkaz2
Zde se příkaz1 spustí na pozadí a okamžitě také spustí příkaz2.
Spuštění dalšího příkazu jen při úspěchu předchozího (&&)
příkaz1 && příkaz2
Spuštění dalšího příkazu jen při chybě předchozího (||)
příkaz1 || příkaz2
POZNÁMKA: Můžete kombinovat.
příkaz1 && oříkaz2 || příkaz3
tj. zkus 1, když uspěje, udělej 2, jinak 3
Jde používat i složené závorky pro seskupování příkazů, takže například:
{ příkaz1; příkaz2; } || echo "Něco se pokazilo"
PŘÍKLAD: Bash (Linux/macOS) – bezpečná úprava configu + reload služby
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak &&
nano /etc/nginx/nginx.conf && sudo systemctl reload nginx
POZNÁMKA: V příkazové řádce funguje i roura/pipe (|) pro předání výstupu z jednoho programu do vstupu druhého a “<” a “>” pro vstup a výstup.
Další tipy týkající se Linuxu (a podobných věcí)
-
TIP#3126: Aplikace pro Chromebook? To nejlepší ze tří světů. Vlastní, pro Android a pro Linux
Pro Chromebooky existují tři hlavní typy aplikací. Nativní, pro Android a pro Linux. Dává to dost velké možnosti najít nejen ty rozšířené a oblíbené, ale přesně to co potřebujete. Související příspěvky TIP#2805: Historie…
-
TIP#3123: Jak na používání Chromebooku a iPhone? Platí i na používání čehokoliv, co není od Apple a k tomu iPhone
Co když máte iPhone a k tomu Chromebook? Jak tohle vhodně skloubit? Prakticky stejně, jako když máte iPhone a k tomu Windows či Linux. Prostě něco co není uzavřený jablečný svět. Související…
-
TIP#3119: Jak v ChromeOS mít terminál (shell). Jak na virtuální stroj s Linuxem. Vývojářský režim a co je to VT2 shell
Chromebooky umí normální linuxový terminál – stačí v nastavení zapnout Vývojové prostředí Linux. Tím se vytvoří virtuální stroj s Debianem (Crostini) a dostanete plnohodnotný shell, aniž byste museli zapínat Developer Mode. Související…
-
TIP#3115: Jak v příkazové řádce spustit více příkazů než jeden
Příkazovou řádku znáte. Ve Windows je CMD (a nově PowerShell), v Linuxu/Macu je to terminál zpřístupňující shell, v různých provedeních (bash, zsh, atd). Je velmi snadné tam prostě spustit jeden příkaz, ale…
-
TIP#3113: K čemu použít starší Chromebook? Ale i starší notebook či počítač
Pokud jste si pořídili něco novějšího či jiného a zbyl vám Chromebook, je řada možností jak ho začít používat na něco trochu jiného, než byla práce či zábava. Související příspěvky TIP#3131: Chromebook:…
-
TIP#3111: Umíte používat rouru/pipe (|)? Jaké další podobné operátory můžete využívat?
Rouru (|) znáte? A co < a >? Víte jak tyhle věcí fungují a k čemu je můžete použít? Liší se to nějak mezi operačními systémy? Související příspěvky TIP#3115: Jak v příkazové…
-
TIP#486: Jak zkontrolovat otevřené TCP/IP porty ve Windows. Poznejte příkaz netstat a další možnost jak na to
Po vysvětlení k čemu slouží ve Windows příkaz ipconfig je čas na další související příkaz (spustitelný z příkazové řádky). Jmenuje se netstat a můžete si ho nejprve vyzkoušet jako netstat /? (případně…
-
TIP#3092: Jak v Linuxu kopírovat soubory a složky? Naučte se cp
cp je základní příkaz v Linuxu pro kopírování souborů, stejně jako copy ve Windows. Ostatně je zkratka právě z oné delší verze. Související příspěvky TIP#2989: Jak na (nejen) Raspberry Pi (rychle) vidět…
-
TIP#3091: Jak na MacOS mít (spustit) Linux?
MacOS je “tak trochu” Linux, ale se záplavou změn a omezení vytvořených Apple. Pokud potřebujete skutečný Linux, tak je na to třeba jít trochu jinak. Související příspěvky TIP#3145: Proč mi na MacOS…
-
TIP#3082: Končí (podpora) Windows 10. Co to znamená? Co dělat, když mám Windows 10
14. října skončily WIndows 10. Nebudou k dispozici opravy ani nové funkce, přestane být dostupná i technická podpora. Pro jednotlivce to ještě chvíli tak velký problém nebude, ale pro firmy to problém…
-
TIP#3019: Jak z YouTube v terminalu (Mac, Linux, atd) stáhnout video z youtube? A získat zvukovou stopu?
Nejlepší na věcech jako je příkazová řádka (terminál) v Linuxu či Mac OS (ale máte to i ve Windows i jinde) je, že tam hodně věci jde udělat mnohem snáz, než v…
-
TIP#2989: Jak na (nejen) Raspberry Pi (rychle) vidět chyby/problémy, ke kterým v systému došlo?
Občas je užitečné vědět jak se snadno/rychle podívat, jestli někde v hloubí vaše Rasberry nedošlo či nedochází k nějakým chybám. Nejčastěji když něco zlobí, ale vyplatí se to čas od času kontrolovat…
-
TIP#2970: Jak v terminálu v Linuxu otevřít či si prohlédnout soubor?
V okamžiku kdy se ocitnete v terminálu v LInux, tedy nikoliv v grafickém rozhraní, tak narazíte na něco co právě v GUI bývá snadné, jenže tady nic takového není. Jak se podívat…
-
TIP#2961: Jak změnit mapování portů (či IP adresu) na které běží kontejner v Dockeru?
Taková nepraktická věc, kterou vlastně moc nechápu proč nejde udělat jednoduše. Máte kontejner, spuštěný třeba na portu 5566 a chcete (potřebujete) ho dát na jiný port. Nebo běží na nějaké vnější IP…
-
TIP#2950: Ve Windows je NET VIEW. Je něco podobného v Linuxu? Jak zjistit jaké servery v síti mají jaké síťové disky?
NET VIEW ve Windows slouží k zkoumání toho, co za sdílené disky/prostředky je dostupné na serveru či počítači (a případně i v celém sítí či doméně). Související příspěvky TIP#2765: Raspberry Pi a…
















