Bash pro začátečníky

Jak používat klasifikační nálepkuTato stránka je součástí kurzu:
Kategorie Bash pro začátečníky nenalezena
začátečníci
Příslušnost: všeobecná

Informace o kurzuEditovat

  • Předpoklady: dobré je mít základní znalost angličtiny a zájem zkoumat věci
  • Jak s tímto kurzem pracovat: Tento kurz je postaven tak, že ho sami vytváříte a zároveň se učíte od studentů, kteří jím prošli před Vámi. Jak často a kdy se budete studiu Bashe věnovat je na Vás. Nejlépe se Bash učí, pokud se na Linuxu rozhodnete dělat vše v příkazové řádce - můžete tak pronikat do jeho tajů přímo při řešení reálných problémů z praxe. Pokud by Vás nic nenapadlo, můžete využít níže řešené problémy a zkusit si je. V případně vašich problémů a otázek, je zapište níže a až najdete na Internetu (nebo chatGPT) řešení, tak ho i zapište. Je také možné že u řešených příkladů, bude potřeba je upřesnit či připojit grafiku. // V kurzu se střídají lehké a těžké sekce, ale Vaše vnímání může být opačné. Jelikož pracujete s jazykem, který může vytvářet nevratné změny na Vašem PC doporučujeme obsah pravidelně zálohovat a pracovat s rozvahou (t.j. nezkopírovat hned každý příkaz, který někde najdete. V momentě, kdy se Vám podaří vytvořit pár skriptů, je čas postoupit do vyšší úrovně. // Pokud byste chtěli měnit strukturu kurzu, prodiskutujte to napřed na diskusní stránce.
  • Vyšší úroveň: Bash pro středně pokročilé
  • Co potřebujete: Ke studiu Bashe potřebujete počítač, Internet a nejlépe linuxový terminál (ve Windows 10+ lze nainstalovat Windows Subsystém for Linux)
  • Kde hledat pomoc: chatGPT 3,5+, YouTube, Internet
  • Zaměření kurzu: kurz je koncipován zejména pro operační systémy Debian/Ubuntu, nicméně dá se použít i pro jiné operační systémy na bázy Linux

Grafické a strukturní konvenceEditovat

  • kurziva – pod nadpisy sekcí obsahuje pokyny jak s danou sekcí pracovat. Kurziva v textu je prvním stupněm zvýraznění, kurziva v příkazech vyjadřuje proměnou, kterou musíte sami navolit (např. apt-cache search název balíčku znamená, že místo textu název balíčku, napíšete konkrétní název balíčku).
  • tučně – je zvýrazněn text k vyjádření silného důrazu
  • počítačový kód – je název položky zvýraznění Vizuálního editoru pro zápisy příkazů Bashe a výpisy terminálu
  • nejnovější poznámky – jdou vždy odspoda v dané sekci

Spuštění a případná instalace termináluEditovat

Operační systémy na bázy LinuxuEditovat

Zde by bashovský terminál měl být již předinstalovaný. Obvykle se spouští stiskem kláves CTRL+ALT+T. V poli vzhledávání též můžete zadat slovo terminal. Jediné co se může stát, že máte jiný než bashovský terminál. V tom případě zadejte do terminálu echo $SHELL a zmáčněte ENTER. Měl by so objevit výpis toho, jaký terminál máte. Pokud se zobrazí něco jiného než /bin/bash, máte pravdpodobně jiný shell a Bash budete muset navirtualizovat.

Výuková částEditovat

Jak něco udělat?Editovat

Terminál si otevřeme stiskem CTRL + ALT + T (nebo jinak, pokud jsme si změnili klávesovou zkratku).

Pokud nenastartuje systém, lze terminál otevřit i přes GRUB. Do GRUBu se vztoupí při startu BIOSu opakovaným tisknutím klávesy SHIFT (někdy to trvá než se člověk strefí).

Jednotlivé úkoly si můžete ozkoušet níže. Dobrou praxí je, se podívat, co jednotlivé příkazy dělají. Terminál je mocný nástroj a pokud byste jen příklazy opisovali slepě z webu, můžete si zadělat problémy. Pokud níže nenajdete řešení svěho problému, tak ho zapište a zkuste najít na webu řešení. Případně si můžete najít řešení i k úkolům, které níže to řešení nemají.

Č. Co Jak Poznámky
J.1 Jak vyprázdnit koš? cd

rm -rf .local/share/Trash

Pro odmazání adresáře Trash, je potřeba být ve výchozí složce, dostanu se tam zadáním příkazu cd
2 Jak zobrazit nápovědu k příkazu? man (příkaz), help (příkaz), (příkaz) --help Cesty jsou různé, protože nexistuje povinnost vytvářet manuály k příkazům (například příkaz echo má manuál, příkaz cd nikoliv). man je nástroj, který zobrazuje po stránkách existující soubory manuálů příkazů (například man echo zobrazí manuál k příkazu echo). help zobrazí seznam vestavěných příkazů (help) a případě k nim i nápovědu (např. help cd). Samotný help nemá manuál, takže nápověda k help se volá help help. Některé příkazy mají sami funkci nápovědy volatelnou, přes --help, nebo -h. Zde je nutno ale podotknout, že -h může mít i jiné funkce. Problém pak nastává, pokud tyto funkce nejsou popsány v nápovědě k příkazu (např. v nápovědě příkazu cd není uvedeno, že --help dá nápovědu). -- v bash znamená, že nemají být interpretovány další možnosti, protože nechceme aby nápověda zmizela a probíhaly další operace.
3 Jak zobrazit skryté adresáře? ls -a Možno též dir -a
5 Jak zjistit kolik mám volného místa? df -Th

df -h -t (systém souborů)

  1. Zjistíme systém souborů, který bude uveden vedle názvu pro disk (SDAx) s největším přiděleným prostorem. Funkce -T vypíše názvy souborových systémů, funkce -h výpis zpřehlední.
  2. Zjistí informace o disku a uspořádá je (funkce -h). Funkcí -t odfiltrujeme ostatní (např. dočasné systémy souborů tmpfs, které mění velikost podle potřeby)
6 Jak najdu nápovědu pro cd? help cd Postupujeme dle J.2. Pokud nenajdeme manuál po zadání příkazu man, zkoušíme další možnost, tedy příkaz help.
7 Jak nainstalovat KdenLive? sudo snap find kdenlive

(heslo)

sudo snap install kdenlive

  1. příkaz hledá snap s kdenlive
  2. druhý ho nainstaluje
8 Jak spustit program? echo $PATH
  1. v PATH je cesta k adresáři programu --> název programu
  2. v PATH není cesta k adresáři programu --> doskákat do adresáře - chmod a+x název programu - ./název programu
PATH voláme proto, aby jsme nepoškodili systém pro případ, kdy by program měl stejný název jako nějaký příkaz v terminálu. Pokud program v PATH není, je tedy z tohoto důvodu i rychlosti výhodného ho do PATH přidat (viz otázka 25).
9 Jak najít program? whereis (název)

dpkg --list

Pokud whereis nefunguje, můžeme zkusit dpkg --list a následně interní funkcí v terminálu hledat podle předpokládaného názvu.
10 Jak nainstalovat Wine? lscpu

sudo apt install wine64

  1. v kroku 1 zjistíme jaký máme systém. pokud je tam 32, 64 máme 64
  2. pak ho zadáme za wine
11 Jak zjistit, kolik ja na disku volného místa? df -h Jde i df, ale df -h (human) je čitelnější.
12 Jak zobrazím strom adresářů? Nebo si najít defaultní strukturu na webu.
13 Jak zobrazím obsah adresáře, který se vejde na jednu stránku?
14 Jak nainstalovat R? Na webu R je nápověda.
15 Jak zjistím jakou mám verzi? cat /etc/os-release Vypíše informace k verzi.
16 Jak nainstalovat Gephi? sudo snap find gephi

(heslo)

sudo snap install gephi

  1. příklaz hledá snap (balíček) s gephi
  2. příkaz nainstaluje gephi
17 Jak odinstalovat Gephi? sudo snap remove gephi

sudo apt-get autoremove

Druhý krok odinstaluje nepoužívané dependencies a je dobré ho udělat.
18 Jak najít package (balíček)?
  1. apt get update
  2. apt-cache search název balíčku
Je nutno dodat, že se nerozlišuje hledání na webu, nebo hledání v počítači, protože informace o balíčcích pro příkaz apt jsou umístěny v počítači, ale samotné balíčky jsou umístěny na webu. Proto je dobré před samotným hledáním balíčku tyto informace updatovat přes apt get update. Jak najít balíček typu snap (J20), ppa či jiný je vysvětleno jinde.
19 Jan nainstalovat OpenRefine? - Jelikož nemá snap, zjistím po zadání "sudo snap find refine", musím použít jinou cestu instalace. Zdá se, že se OpenRefine neinstaluje. Pouze se stáhne, rozbalí a spustí přes terminál příkazem ./refine ve složce OR. Otevře se v záložce prohlížeče.
20 Jak najít snap? snap find něco něco nahradíme názvem hledaného softwaru
21 Jak najít nainstalované balíčky (snapy)? sudo snap list
21 Jak se přemísťovat ve stromu adresářů? ls

cd (název adresáře)/cd ..

  1. vypíše aresáře soubory v aktuálním adresáři
  2. přejde do daného adresáře/odzkouší o jeden adresář níž
22 Jak přidat tiskárnu do Opery? Stačí pouze přidat v systému. Pokud je ale Opera snapem, je potřeba udělit jejímu balíčku práva.
23 Jak vytvořit iso flašku?
24 Jak zjistím jakou mám verzi Javy? java -version
25 Jak přidat program do PATH?
  1. cd
  2. PATH=$PATH:cesta do adresáře, kde je program
  1. Nejprve se přesunu do domovského adresáře.
  2. V podstatě vytvořím novou proměnou PATH. Proměnná je označená znakem dolaru. Když ale vytvářím proměnnou, tak tam ten dolar znak nedávám. Chci, aby ale v PATH bylo to co dopusud, proto se nová proměnná rovná původní proměnné $PATH a za dvojtečku uvedu cestu do adresáře, kde je program, respetive shellový skript. Kdybych vkládal další adresáře, tak ty cesty vždy oddělím dvojtečkou. Příklad pro spouštění skriptu VicuñaUploader může být: PATH=$PATH:~/diskD/Vicuna/"Verze Juan 1"/vicuna/bin/
26 Jak updatovat Javu?
  1. sudo apt update
  2. sudo apt install default-jre
  1. stáhne informace o balíčcích dostupných na webu
  2. nainstaluje defaultní jre (?)
27 Jak odinstalovat gscan2pdf?
  1. sudo apt get remove gscan2pdf
  2. y+enter
28 Jak nainstalovat program, který není ve snapu?
29 Jak nainstalovat Edge? Ověřené řešení viz: https://www.omgubuntu.co.uk/2021/01/how-to-install-edge-on-ubuntu-linux
30 Jak nainstalovat ET na Ubuntu 22?
31 Jak restartovat počítač?
32 Jak nainstalovat OBS Studio?
33 Jan nainstalovat gscan2pdf?
  1. sudo apt-add-repository ppa:jeffreyratcliffe/ppa
  2. sudo apt install gscan2pdf
  1. pak se stáhne patřičný repozitář
  2. následně se gscan2pdf nainstaluje
34 Jak nainstalovat aplikaci eObcanka?
35 Jak vyberu konkrétní screen, ke kterému se chci připojit?
36 Jak po napsání něčeho, rychle vložit již někde napsaný řetězec?
37 Jak vypsat soubory určitého typu na celém PC a zastavit vždy po pokrytí celé stránky?
38 Jak najít název souboru jinak volatelný přes man bash? whereis bash Ve výpisu je to třeti řetězec. Například při zadání whereis bash, dostaneme výpis

bash: /usr/bin/bash /usr/share/man/man1/bash.1.gz kde bash: je název (příkazu), /usr/bin/bash je cesta k binárnímu souboru a /usr/share/man/man1/bash.1.gz je cesta ke stránce s manuálem.

39 Jak zjistit informace o souboru? stat (název souboru)

file (název souboru)

Záleží na tom co chceme zjistit. Například stat poskytné různé statistické informace o souboru, ale už neumí dobře určit formát souboru. Na dotaz "stat  -c  --format=%F (soubor)" třeba odpoví, že se jedná o běžný soubor. Pokud potřebujeme zjistit a jaký soubor se jedná, je tedy lepší použít příkaz file.
40 Jak rozbalit archiv gzip do určitého místa? cp (původní umístění) (nové umístění)

gunzip (název archivu)

Jelikož funkce gunzip neumožňuje rozbalit archiv do určitého místa, je potřeba tuto operaci provést v krocích a nejprve daný archiv do určitého místa překopírovat příkazem cp.
41 Jak upgradovat balíčky?
  1. sudo apt update
  2. sudo apt upgrade
  3. (sudo apt autoremove)
  1. stáhne informace o balíčcích dostupných na webu
  2. stáhne a nainstaluje dostupné updaty balíčků
  3. pokud výpis hlásí, že některé balíčky není potřeba, je možné je odebrat
42 Jak zobrazit význam barev u příkazu ls?
43 Jak vypsat pouze adresáře? ls -d */ -d jako directory má ve skutečnosti funkci zamezit zobrazení obsahu adresářů. Cesta za tím, pak zajišťuje výpis adresářů. Je to proto, že synopse příkazu ls je ls [OPTION]... [FILE]...
44 Jak upgradovat Python?
45 Jak zařídit, aby v terminálu fungovali zkratky CTRL+C a CTRL+V? V Terminálu: Edit: Keyboard Shortcuts...: poklikat na Copy a stisknout CTRL+C a to samé udělat s CTLR+V
46 Jak zjistím, jestli mám nainstalovaný Python? Začnu psát python a někde uprostřed kliknu na TAB. Tím dojde k doplnění případného řetězce. Pokud dojde k doplnění řetězce, například pyt na python3, vím, že mám minimálně Python verze 3x.
47 Jak zjistím, jaké verze Pythonu mám nainstalované? ls /usr/bin/python*
48 Jaký je rozdíl mezi knihovnami a binárními soubory?
49 Jak nainstalovat nejnovější verzi Python?
50 Jak nainstalovat IDLE?
  1. sudo apt update
  2. sudo apt install idle
  1. Stáhne informace o balíčcích dostupných na webu
  2. Nainstaluje IDLE
51 Jak zjistit, jestli něco není příkaz? text + TAB Začnu psát text a stisknu TAB, když mi to něco doplní, tak ten příkaz už existuje. Například p+TAB nic, py+TAB nic, pyt+TAB hodí python3
52 Jak vytvořit alias?
53 Jak updatovat informace o ppa balíčcích?
54 Jak převést pdf do OCR?
55 Jak vytvořit shortcut pro příkaz?
56 Jak nainstalovat Avidemux?
  1. git clone https://github.com/mean00/avidemux2.git
  2. cd avidemux2
  3. git submodule update --init --recursive
  4. bash createDebFromSourceUbuntu.bash --deps-only
  1. Okopíruje z webu repozitář avidemux2 a vloží ho do adresáře stejného jména v aktuálním adresáři. Git je příkaz na správu verzí. Git clone naklonuje konkrétní repozitář z dané URL.
  2. Přejdeme do adresáře avidemux2.
  3. Vytvoří repozitář ve stávajícím repozitáři (adresář?).
57 Jak smazat adresář?
  • rmdir název
58 Jak nainstalovat software, který je pouze pro Windows?
59 Jak odinstalovat Avidemux sestavený ze zdrojového kódu?
  1. zazálohovat systém
  2. smazat ručně jeho soubory
Pokud byl softare nainstalován zkombilováním binárních souborů, měl by ten, kdo nabízí nápovědu k instalaci uvádět i nápovědu k odinstalaci. V opačném případě je možné zkusit ručně odmazat některé soubory s Avidemuxem související, ale doporučuje se předtím zazálohovat systém.
60 Jak vytvořit spustitelný příkaz pro program?
  1. cd
  2. PATH=$PATH:cesta do adresáře, kde je program
  3. alias něco=název programu
  1. Nejprve přejdem do domovského adresáře, abysme to nepomotali.
  2. Poté přídáme cestu do adresáře, kde je program do proměnné $PATH. Děláme to tak, že vytvoříme novou proměnou PATH, kam umístíme starou proměnou PATH plus za dvojtečku cestu do adresáře, kde je náš program. Tím vznikne možnost spustit program přes jeho plný název. Bash totiž bude hledat tento název ve všech adresářích, které má uloženy v proměnné PATH a až ho najde, tak ho spustí. Taková cesta může vypadat následovně: PATH=$PATH:~/diskD/Vicuna/"Verze Juan 1"/vicuna/bin/. Program v tomto adresři se jmenuje vicuna.sh a volá se napsáním vicuna do terminálu. (Podrobněji viz J 25)
  3. V případě, že bysme chtěli program volat jinak, třeba kratší cestou vytvoříme k němu alias. Například zápis alias vu="vicuna", nám umožní skript vicuna.sh volat pouhým zadáním zkratky vu.
61 Jak spustit MATE Calculator? mate-calc
62 Jak přenést do popředí MATE Calculator po stisku klávesnice kalkulačka?
63 Jak zobrazím práva k souboru? ls -l název souboru
64 Jak zobrazím informace o balíčku apt? sudo apt-cache show název balíčku
65 Jak otevřít Visual Code Studio z terminálu? code
66 Jak vytvořit někde soubor?
67 Jak updatovat RStudio?
  1. Stáhnout patřičnou .deb verzi ze stránek vývojáře
  2. doskákat do místě, kde je instalační balíček typu .deb
  3. sudo dpkg -i název instalačního balíčku
68 Jak zadat zkratky CTRL+C a CTRL+V ve všech Bash shellech (např. i RStudio)?
69 Jak restartovat program?
70 Jak downgradovat program?

Terminál, manuál a BashEditovat

Vysvětlení manuálové syntaxeEditovat

V tomto oddíle procvičujeme pochopení manuálové syntaxe. V příkazové řádce zadejete man váš příkaz a připište si sem syntaxi. Pak se můžete pokusit s ohledem na man man (manuál manuálů) dovodit, jak se příkaz používá. Když si nebudete jisti, zkuste jiný zápis syntaxe, např. z man7.org, nebo si někde najděte ukázku. Cílem tohoto cvičení je k tomu přistoupit co „nejstrožeji“, tak abysme se naučili nespoléhat na jiné zdroje informací, než lokální manuály a případně objevily a mohli popsat zákonitosti či nedostatky syntaxí manuálů.

Příkaz case (dořešit)Editovat

Syntaxe: case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac

Příklad:

x=3
case "$x" in
"1") echo "x se rovná 1" ;;
"2") echo "x se rovná 2" ;;
"3"|"4") echo "x se rovná 3 nebo 4" ;;
*) echo "x je větší než 4" ;;
esac
x se rovná 3 nebo 4

Úvahy:

  • case...je začátek příkazu[1]
  • esac...konec skryptu, vypadá jako case obráceně!
  • WORD.....je slovo, které se srovnává vůči jednotlivým vzorům PATTERN. V tomto případě je WORD $x, tedy řetězec. Uvozovky zde mají zřejmě jen metainformatický charakter.
  • [PATTERN [| PATTERN]...)....asi odpovídá řádku 5 a konkrétně "3"|"4"), tzn. že 3 je jeden vzor (PATTERN) a 4 druhý. Složené závorky ([]) a výpustka (...) se v kódu neobjevují, tzn. že se musí jednat o nějaké metainformace. K příkazu case není manuálová stránka a nápovědu nelze ani vyvolat přes case --help. Funguje pouze help case, kde je ale nepatrné množství informací. V man man se pro [-abc] uvádí, že žádný, nebo všechny arguments (argumenty) v závorkách jsou volitelné. Dále se zde praví, že [expression] ...   znamená, že expression (výraz) se dá opakovat. Otázkou tedy je, jestli PATTERN je argument, nebo výraz. Jediné co je z toho zcela jasné, je to, že složené závorky se v kódu skutečně nepíší a pouze nesou nějakou informaci. Řekněme, že řetězec [| PATTERN]... lze vyjmout a tak nám zbyde jen PATTERN. To by odpovídalo příkazům na řádcích 3, 4 a 6.
  • [PATTERN) COMMANDS ;;] vezměmě hypotézu, že toto je expression a odpovídá třeba řádku 3 kde závorka se nepíše, PATTERN je 1, závorka ) se zapíše, COMMANDS odpovídá příkazu echo, respetive echo "x se rovná 1" a výraz se ukončí středníky ;;
  • Pak se ale můžeme zeptat, proč in není ve složených závorkách a PATTERN ano? Logická odpověď je, že in není výraz. Co ale je potom in? Podle manuálu je in rezervované slovo za určitých případů (jako, že není v uvozovkách či stojí na třetí pozci jako u příkazu case).[2]
  • |.... podle help case je svislík oddělovačem jednotlivých vzorů. Trochu ale nechápu, proč je až uvnitř závorky, přišlo by mi logičtější, kdyby byl zápis následující [PATTERN |[PATTERN]...) COMMANDS ;;]. Znamená to tedy, že svislík neoděluje výrazy, ale vzory? Ovšem pokud by se nejednalo o [PATTERN], ale o [PATTERN]..., pak by možná dávalo smysl, proč není svyslík před závorkou ale za ní ([|PATTERN]...)? A hrají nějakou roli mezery, které jsou kolem značek [|? Protože v uvedeném příkladu kolem vzorů ani svislíku mezery nejsou a když je zkusím dát do skryptu, tak to nemá vliv na výsledek.
  • ... (tři tečky, nebo-li výpustka (původní fonty shellů asi výpistku neměli)) je ve dvou případech v man man uvedeno jako řešení, které uvádí předchozí argument, nebo výraz.
  • Jinak shell přečte celý skrypt interpretuje ho asi postupně, protože když zadám x=0, tak výsledkem je stejně echo z řádku 6.
  • ....mezera se zdá, že v uvedeném příkladu by se mohla úplně zrušit, protože každý výraz je nějakým způsobem ohraničen, ale je – kdyby nebyl. Například proč musí bý čísla uvedena v uvozovkách, ale je to asi proto, že zde nedochází k interpretaci čísel, ale řetězců, tedy jsou to textové řetězce?
Srování různých zápisů syntaxeEditovat
  • case WORD in [PATTERN [| PATTERN]...) COMMANDS ;;]... esac“ - terminál
  • case EXPRESSION in CASE1) COMMAND-LIST;; CASE2) COMMAND-LIST;; ... CASEN) COMMAND-LIST;; esac[3]
  • case word in [ [(] pattern [| pattern]...) command-list ;;]... esac[4]
Příkaz cp (vyřešeno)Editovat

Syntaxe man:

  1. cp [OPTION]... [-T] SOURCE DEST
  2. cp [OPTION]... SOURCE... DIRECTORY
  3. cp [OPTION]... -t DIRECTORY SOURCE...

Příklad:

Úvahy:

  1. cp je zkratka příkazu, tedy copy
  2. Podle man man kapitálky nic neoznačují, respetive man man odkazuje na to, že názvy sekcí manuálu se píší kapitálkami. Jde tedy asi o osobní invenci pisatélů manuálu příkazu copy, nebo může jít o jejich způsob zvýraznění.
  3. V man man jsou pouze dva příklady s hranatou závorkou. Jednou jsou ale tučně, podruhé podtrženě. Těžko pak soudit co je co!
  4. Dle manuálu manuálů označuje výpustka to, že daná věc před závorkou se dá opakovat. V případě [OPTION]... by se tedy asi dalo několikrát zopakovat, to co je před třemi tečkami. Otázka ovšem je, jak to zapsat, když neznáme pravidla pro 3. V případě SOURCE... a DIRECTORY SOURCE... (je otázka pro jakou část syntaxe se ve třetím případě opakovatelnost vztahuje, jestli pro SOURCE, DIRICTORY SOURCE, nebo dokonce pro -t DIRECTORY SOURCE) opakovatelnost zdroje či zdrojového adresáře. Dalším problémem manuálu cp je, že neobsahuje sekci Options, hned by bylo jasné, co [OPTION] může znamenat.
  5. Man man píše, že něco jako [-T] znamená, že jsou argumenty volitelné. Žel bohu se opět man man a man cp liší v tom, že v man man jsou argumenty na rozdíl od man cp tučně. Z prostého vzhledu lez ale dovodit, že v případě man cp se jedná skutečně o argumenty. Otázka, která tady vyvstává, je ale co to znamená [OPTION]... [-T], protože dle formátu v man man by OPTIONS měly být také argumenty. Kdyby tomu bylo stejně i v případě man cp, pak je tento název syntaxe zbytečně složitý. Může to tedy znamenat, že Option není argument. Tady už začíná vyvstávat moc otazníků a hypotéz, zkusme zápis z man7.org
    1. Z vysvětlení, které poskytl chatGPT ale plyne, že výrazy [OPTION]... a [-T] označují trochu něco jiného. Zatímco [OPTION]... označuje možnosti, které se dají opakovat, [-T] ty, které se opakovat nedají. Takto vysvětleno to dává smysl, proč jsou de facto zapsány dvě totožné věci. Další možnosti, které se nedají opakovat jsou podle chatGPT -r, -u a -n. Ostatní jsou tedy opakovatelné (viz man cp). V man man je sekce s těmito flagy skutečně označena jako Options, tože v man cp tomu tak není může být chyba či nedbalost. Důvod pro použití -T v příkazu je pak zcela jasný – zdůrazňuje to, že tuto možnost nelze opakovat (nicméně jistě by se to dalo zapsat i jinak, například [option]... [option], případně [-a]... [-T] (jenom připomínám, že kurziva zde značí řetězec, který má být nahrazen argumentem a tučný text řetězec, který se musí zapsat tak jak je). Nicméně, když na ten druhý příkaz koukám, tak si nejsem jistý jestli je přesný. Oba jsou v závorce, to znamená, že mohou a nemusí být použity. Když použity budou, pak si nejsem jistý, jestli fakt, že jsou tučným písmem, je tam nevnucuje explicitně.)
  6. Podle dovysvětlení první syntaxe AI by se pak dalo říct, že u druhé syntaxe cp [OPTION]... SOURCE... DIRECTORY, to znamená, že mohu za příkaz cp vložit nějakou možnost, respetive možností může být víc (nepřipouští to tedy možnosti, které nejde opakovat?), následuje jeden nebo více zdrojů (například baf1.txt, baf2.txt) a následně název adresáře, kam se to má kopírovat.
  7. A konečně třetí příklad syntaxe cp [OPTION]... -t DIRECTORY SOURCE... by pak znamenal, že za příkaz cp mohu vložit možnost nebo možnosti, musím uvést možnost -t a následně mi to není jasné. Jen vím, že adresář je jeden a zdrojů může být vícero.
    1. Tak po diskusi s AI z toho plyne, že argument -t umožní zadat napřed cílový adresář a vše ostatní jsou kopírované soubory či adresáře. ChatGPT dále upozorňuje, že tato možnost, nemusí být u všech verzí příkazu cp a pokud tomu tak není, tak se holt musí použít standardní postup ve formátu příkaz, argumenty, kopírovaný soubor či aresář a cílové místo.

Syntaxe man7.org:

  1. cp [OPTION]... [-T] SOURCE DEST

Úvahy:

  1. Bohužel zde, je syntaxe velmi podobná manuálu! Nicméně cp tučně by mělo znamenat, že se musí zapsat, tak jak je. To je ostatně logické.
  2. V man man se píše, že se má kurziva nahradit patřičným argumentem. Tady je kurzivou skoro vše, což není na škodu, protože vše za příkazem jsou de facto argumenty.
  3. Připusťme tedy, že man man říká, že to co je v závorce je volitelné. Znamenalo by to tedy, že jediným nevolitelným argumentem je v tomto případě SOURCE DEST, což asi znamená zdrojové umístění. Takový příkaz by pak mohl vypadat třeba cp /home/juan/avidemux2, ale je otázka co by takový příkaz udělal? Když si něco takového vyzkouším, tak mi cp hlásí chybu: missing destination file operand after '/home/juan/test'. Znamená to tedy, že chybí cílové umístění. Zdá se tedy, že příkaz cp /home/juan/test je chápán jako okopíruj /home/juan/test někam a ptá se kam. Nefunguje to ani, když je aktuálním adresářem test a když zadám vytvořený test2. Z tohoto rozboru tedy plyne, že tento zápis syntaxe, není asi správný.
    1. ChatGPT poskytl následující příkaz cp file.txt directory/ # Copies 'file.txt' into 'directory/file.txt'. To znamená, že jsem synopsy pochopil špatně a SOURCE DEST jsou dva výrazy, ne jeden. Napřed jde zdrojový sobour (adresář), pak jde ten kam se to má uložit.
  4. A skutečně při kopírování sobourů (ne pří kopírování adresářů) to funguje. Například cp /home/juan/test/baf.txt /home/juan/test2/ překopíruje soubor baf.txt do adresáře test2.

Shrnutí:

Syntax tedy znamená, že po zápisu názvu příkazu copy, tedy cp se mohou vložit atributy z čehož některé jsou opakovatelné a jiné ne a následné se vkládají soubory a adresáře, či cesty k nim a cílové umístění. Některé verze příkazu cp, pak umožňují prohodit zdroj a umístění díky vložení atributu -t (cp [OPTION]... -t DIRECTORY SOURCE...). Dále se dá říct, že manuál příkazu cp se neřídí syntaxí uvedenou v manuálu manuálů.

Snap find (nedořešeno)Editovat

Syntaxe man: snap [OPTIONS] find [find-OPTIONS]

Úvahy:

  1. snap je název příkazu
  2. [OPTIONS] - man man nezná něco co je kapitálkama, v man man jsou options název sekce, ve které jsou možnosti či argumenty
  3. find - je v man snap označen jako Option command, man man žádný Option command nezná, ale mohl by to být příkaz, který jde užívat s jiným příkazem. A skutečně existuje příkaz find, který má i svůj manuál a synopsy (find  [-H]  [-L] [-P] [-D debugopts] [-Olevel] [starting-point...] [expression]).
  4. [find-OPTIONS] - opět jako v případě bodu 2 man man nezná něco s kapitálkama, stejně jako Options jsou pro něj atributy. Jinak man snap nemá sekci Options, pouze Option Commands. Man find má sekci Options a jsou tam atributy. Man snap nijak nerozvádí co by to měly být ty Options.

Shrnutí:

  • Z výše uvedeného tedy můžeme s jistotou říci, že lze spojit dva příkazy (v tomto případy snap a find).
  • Nemůžeme s jistotou říct, co jsou OPTIONS a jak se chovaj, můžem pouze předkládat hypotézy:
    1. H: Pro snap jsou OPTIONS možnosti v sekci Option Commands
    2. H: Pro find jsou OPTIONS možnosti v sekci Options v manuálu find (proto je to označeno jako find-OPTIONS)
    3. H: Závorka se v příkladu nezapíše.
    4. H: OPTIONS se nahradí jedním, nebo vícero jinými příkazy
    5. H: Stejně tak find-OPTIONS se nahradí jedním nebo víceropříkazy
  • Trochu matoucí je ale zápis typu [OPTIONS] find, když víme, že find by teoreticky mohl být součástí výrazu OPTIONS. Ale na druhou stranu k přihlédnutí k tomu, že se tento zápis synopse nachází v sekci Option Commonds:find můžeme říct, že to smysl dává a prostě to značí, že před find může být jeden a více příkazů a že find sám může mít jeden a více atributů.
  • Co z toho ale není jasné, jestli tam vždy musí být nějaké OPTIONS, nebo někdy ne

Struktura manuálu a BasheEditovat

Manuál k příkazům voláme příkazem man něco, dokonce i příkaz man má svůj manuál volatelný přes man man. Ne všechny příkazy ale manuál mají, někdy musíte zkustit příkaz --help. Případně se dají manuálové stránky najít na webu, kde jsou i barevně podbarvené.

Č. Otázka Odpověď Poznámky
1.P Co to znamená man? Manual
2 Jak rozumět sekci synopse?
3 Jaké jsou způsoby pro jasné zvýraznění synopse? Například nainstalovat aplikaci most.
4 K čemu je příkaz intro? Obsahuje návod pro práci v příkazové řádce.
5 Proč řádka nevykresluje tučné písmo? Asi není zapnuté. Zapne se: Edit-Profile Preferences-General-Allow bold text.
6 Proč řádka nevykresluje kurzivu? Může za to sázecí jazyk roff, který se stále používá a kurzivu neumí, takže kurziva se vykresluje jako podtržené písmo.[5]
7 Jak zjistím jaký pager používá příkaz man?
Poznámky z manuáluEditovat

Přečtěte si manuál k Bash a níže zanehte své postřehy, otázka a myšlenky.

  • chápu to dobře, že shell je operační systém?
  • pokud soubory fungují jako příkazy, jak se dá spustit třeba /bin?
  • token je sekvence jednoho a více znaků. Tokenem může být slovo, nebo operátor.
  • metacharacter (metaznak) je znak, který odděluje slova pokud není označen uvozovkami (mezera, tabulátor, nová řádka, ‘|’, ‘&’, ‘;’, ‘(’, ‘)’, ‘<’, nebo ‘>’.
  • vysvětlení slova operátor je skoro jak vysvětlení v kruhu!
  • bash obsahuje stejne build in příkazy jako Bourne Shell (sh)
Gramatika BasheEditovat

Cílem této sekce je společně vytvořit gramatiku Bashe, to vysvětlit jednotlivé terminy jako (arguments, expressions) a popsat funkci metainformací a dále logiku skládání jednotlivých znaků při skryptování.

SlovaEditovat
  • argument - argument
  • expression
  • operator - operátor, zajišťuje nějakou operaci
  • snap - zkratka pro Snap package, balíček
  • Snap - nástroj pro manipulaci se snapy, tj. balíčky
  • package -
  • argument

Práce s terminálemEditovat

  • TAB – tabulátor v terminálu doplní rozepsaný řetězec a urychlý tím práci

OtázkyEditovat

Při práci s terminálem mohou vyvstat i různé otázky, které se nevejdou do sekce Jak něco udělat. Nebojte se a klidně zapište své otázky níže.

Č. Otázka? Odpověď Poznámky
O.1 Co je to snap? Snap je balíček softwaru a závislostí, snap je nástroj pro manipulaci se snapy.
2 Co je adresář "/dev/sda5" a případně sda1? Označují části disků. /dev/sda je disk a sda 1 a 5 jsou jeho části.
3 Co je v adresáři udev? Ovladač jádra OS, tedy userspace /dev
4 Co je to "mounting"?
5 Co je to /dev? Označuje umístění souborů.
6 Jaký je minimální prostor pro spuštění OS? Asi 8 G.
7 Kde se nachází repositories a jak se najdou?
8 Co je to distro a jak ho zjistím? Distro, je distribution, tedy operační systém využívající Linux kernel. Takže například Ubuntu je distro. V příkazovém řádku stačí zadat cat /etc/*-release.
9 Co je to snap? Snap je balíček softwaru a závislostí, snap je nástroj pro manipulaci se snapy.
10 Kdo vytváří snapy? Vymysleli je Ubuntu vývojáři ve verzi 16.04. Asi kdokoliv, ale ne ke všemu jsou snapy.
11 Co je to socket?
12 Co je to system daemon? Program, který stále běží, aby systému zajistil služby, které potřebuje.
13 Co je to $PATH? Proměnná prostředí, která systému říká ve kterém adresáři hledat, když uživatel zadává příkazy v terminálu. Obsahuje soubor, kde jsou v textové podobě uloženy texty k adresářům (path - cesta k adresáři).
14 Co je to main?
15 Co v ls označuje světle modrá barva? Symbolický odkaz, měkký odkaz, přesměrování - soubor obsahující odkaz na jiný soubor či adresář (může obsahovat i síťový odkaz).
16 Co je to /etc/alternatives/?
17 Jak vypsat seznam všech příkazů?
18 Lze si aliasem přepsat existující příkaz? Ano, ale pokud se to neuloží do .bashrc, tak se to po restartu nezapamatuje.
19 Co to znamená, když v terminálu nejde psát?
20 Co v bashi znamená --? Pokyn jádru neinterpretovat další možnosti (vyjma pozičních parametrů (parametr, který začíná číslem (vejma nuly))). Některé příkazy to ovšem nemusí akceptovat, jako například vestavěný příkaz echo.
21 Jak rozumět zápisu užití příkazů v manuálu?
22 Jaká je dobrá praxe při práci v terminálu?
23 Jaké existují metaznaky? mezera, tabulátor, nová řádka,|, &, ;, (, ), <, >
24 Co jsou potom v bashi tyto závorky: []?
25 Co značí tečka (.)? Označuje aktuální pracovní adresář.
26 Co je to token? Token je sekvence, jednoho nebo více znaků.
27 Může se instlací upgradovat software? Ne, když instaluji jinou verzi sw, tak budu mít dvě verze a budu muset určit, která se má používat. Ale nejedná se o upgrade.
28 Používá Ubuntu MATE k něčemu Python?
29 Jak zjistím jaký mám model PC? sudo dmidecode | grep -A3 '^System Information'
30 Jak zjistím, kolik místa na disku zabírají soubory?
31 Co je to binary? Binární soubor (anglicky binary) je soubor obsahující binární člověku nesrozumitelný kód.
32 Co je to source file? Soubor obsahující instrukce k programu.
33 Jaké příkazy se používají pro vyhledávání souborů? find, whereis, which, (p)locate
34 Jaká jsou pravidla pro dávání řetězců do uvozovek?
35 Jak určím, která verze programu se bude používat.
36 Proč mám nainstalováno více verzí pythonu? Tedy proč obecně mít více verzí a ne jednu, která se bude upgradovat.
37 Co je to software-properties-common?
38 Co je to ppa? Znamená to Personal Package Archive, jsou to balíčky pro uživatele Ubuntu.
39 Jaký je rozdíl mezi ppa a repozitářem? Repozitář je kolekce balíčků na vlastním serveru, kdežto PPA je kolekce na hostovaném serveru firmy Canonical (firma, která vyvíjí Ubuntu). Následníkem PPA jsou snapy (také poskytované firmou Canonical), které jsou lépe dohledatelné a snad i bezpečnější.
40 Proč se musí oficiální balíčky installovat a o čem ta instalace je?
41 Kde se nachází balíčky?
42 Jakou příponu mají balíčky?
43 Co je to kompilace? Převod programu ze zdrojového kódu do spustitelného binárního souboru. Umožňuje optimální využití prostředků daného počítače.
44 Jak se updatují balíčky?
45 Co dělá příkaz sudo apt update? Tento příkaz updatuje informace o balíčcích dostupných na webu. Může se tak objevit nový stáhnutelný balíček, či informace, že lze některé balíčky, repetive jejich obsah upgradovat.
46 Jaká jsou pravidla pro tvorbu názvů příkazů?
47 Kde bere snap informace o balíčcích? Zhruba 4x deně se updatují informace o snapech z centrálního repozitáře snapů u Cannonical Ltd. Ručně se to dá vyvolat přes příkaz sudo snap refresh.
48 Co to znamená nainstalovaný repozitář?
49 Jaké typy balíčků pro Ubuntu existují?
50 Jaké jsou strategie zálohování? Ideálním způsobem zálohování, je zálohovat kód v Githubu, kdy se vyrovnávají změny v kódu, což odpovídá obecné metodice nazvané differential backup, kdy se musí nejprve provést kompletní backup a pak se ukládají pouze informace o změnách. Na Linuxu takový backup umí např. program Backups. Hodně věcí jde také dělat příkazem rsync, a pak jde vytvořit skript pro pravidelné backupy a dát ho do cronu. Například u Backups je dobré některé adresáře vyjmout, protože se backupují jinde a u některých je potřeba dávat pozor, aby neobsahovali klíče a hesla, které si může někdo na uložišti otevřít (je tedy potřeba mít zabezpečené uložiště, nebo zakódovaná hesla). Dobré je zálohovat na 3 různých místech (např. PC, datadisk a cloud). Někdo také řeší způsob uložení na discích, tzn. rozmístit všude po disku/ích, kdyby se některé části disku rozbili, aby bylo možné data obvnovit? U Linuxu je dobré dělat backup nastavení systému (něktéré systémy vytváří system snapshots systému). Případně se to dělá nástrojem Timeshift. Nicméně Backups a Timeshift jsou programy a bylo by dobré, se podívat co přesně dělají a pak vytvořit například svůj vylepšený v terminálu.
51 Lze zálohovat pouze změny (roztřídění souborů, v dokumentech? Ano, differential backup by to měl zařídit.
52 V jakém pořadí Shell interpretuje příkazy a skrypty?
53 Kde skladovat uživatelské skripty? Patří do /usr/local/bin, kde je nepřepíší distro upgraty a další změny.
54 Co to je copy-region-as-kill?
55 Co to je kill ring?

Chyby a problémyEditovat

Chybová hlášeníEditovat

Při práci s terminálem narazíme na celou řadu chybových hlášení, je dobré jim rozumět.

Č. Hlášení Vysvětlení
CH.1 Exception in thread "main" java.lang.UnsatisfiedLinkError Chybové hlášení Javy. Program volá jinou verzi Javy, než je k dispozici v PATH. Pokud tedy máme správnou verzi Javy, ale nemáme ji v PATH (viz O.13) nebude to fungovat.
CH.2 bash: cd: java: Not a directory
3 No remote refs found similar to ‘flathub’
4 E: Unable to locate package
5 Bad Interpreter: No Such File or Directory Konkrétněji /bin/bash^M: bad interpreter: No such file or directory znamená, že script má windowsácké respetive dosácké zakončení řádku (\r\n), kdežto Linux potřebuje \n. Toto tvrzení lze ověřit zadáním příkazu file název skriptu. Pokud to vyhodí hlášku CRLF line terminators, je to skutečně tento problém.

ProblémyEditovat

1: Nejde otevřít adresářEditovat
  • tak nakonec se zjistilo, že se nejedná o adresář (modře po příkazu ls), ale o redirekt (světle modře) - prostě na tom černém pozadí ty barvy nejsou tak zřetelný
2: Nejde spustit VicuñaUploaderEditovat
  • stáhnu si verzi, robalím, poklikám na soubor "vicuna" a nic (otevře se terminál a zase zavře)
  • při spuštění programu z terminálu, tedy J.8, mit hlásí chybu CH.1
    • tato chyba může být způsobena tím, že je nainstalova headles java, opravím to přeinstalací normální javy, například příkazem
      sudo apt install openjdk-17-jdk
      
    • případně se dají doinstalovat další součásti javy, viz návody
3: V terminálu je tilda (~) a nejde v něm pracovatEditovat
  • jediné na co terminál reaguje je enter, ale vždy vypíše novou řádku s uživatelským jménem ukončeným tildou
  • může jít o to, že je poškozen systém adresářů, protože došlo k vybytí při zapnutí systému
  • některé příkazy ale fungují
  • ŘEŠENÍ: nakonec se ale ukázalo, že LT funguje a že písmo mělo stejnou barvu jako pozadí a nebylo vidět.
4: Vicuna nejde spustit příkazem v termináluEditovat
  • vložil jsem odkaz na adresář VU do $PATH v .bashrc, pak vytvořil alias, a otevřel nový terminál. Při zadání vicuna i aliasu vu to hlásí "command not found"
  • takže se postupným hledáním chyby zjistilo, že se nejedná o bash skript, ale sh skript, protože je na začátku skriptu #!/usr/bin/env sh

Dobrá praxeEditovat

Jaká je dobrá praxe při správně Ubuntu systému.

  • před každou instalací spustit update:
    • sudo apt update – stáhne informace o balíčcích dostupných na webu, jejich obsah je možné následně nainstalovat, nebo upgradovat
    • sudo apt upgrade – upgraduje balíčky
  • po odinstalování sw:
    sudo apt-get autoremove
    

ZálohováníEditovat

Součástí praxe je také zálohovat svoje data a nastavení systému. To může být lokálně, třeba na vlastní data disk, ale i na webu (např. v různých cloudových službách). Počítačový kód se pak může zálohovat třeba na Githubu. Obecně je zálohování nákladné, proto se doporučuje, na každý druh dat používat různé dostupné služby co jsou zdarma (třeba již uvedený Github pro kód). Zároveň využívat efektivní metodu zálohování - například změnové zálohování (anglicky differential backup), které zazálohuje jednou obsah disku a pak již zálohuje jen změny na disku provedené. Při zálohování hesel a klíčů je pak potřeba dávat pozor na bezpečnost, tj. buď zálohovat do míst, ke kterým nemají přístup další osoby, nebo citlivé údaje zašifrovat.

Mezi cloudové služby patří:

  • Github – počítačový kód, dokumentace; umožňuje verzování
  • Zenodo – výzkumné datasety, články a software; přiděluje DOI, umožňuje přetahovat věci z Githubu

SkriptyEditovat

Až zde vytvoříte pár skriptů, můžete se pustit do kurzu Bash pro středně pokročilé.

Po stisku klávesy kalkulačka se objeví MATE Calculator, nebo se přenese do popředí, ten již zobrazenýEditovat

Příkaz vu spustí skript vicuna.shEditovat

  • například v /diskD/Bash/skripty/ vytvoříme skript vu:
#!/bin/bash

#Initiate sh shell to run vicuna.sh
sh ~/diskD/Vicuna/Test1/vicuna/bin/vicuna
  • skript vu umístíme do /usr/local/bin například přemístěním z jiné lokace, kde jsem ho editovali (sudo cp ./diskD/Bash/skripty/vu /usr/local/bin)
  • přesunem se do onoho adresáře přes cd /usr/local/bin a zjistíme jeho práva přes ls -l vu, případně udělíme práva spouštět všem skupinám přes sudo chmod +x vu
  • následně by příkaz terminálu vu měl spustit vicuna.sh

PoznámkyEditovat

PříkazyEditovat

Č. Příkaz Co znamená Česky Co dělá Příklad Popis příkladu Poznámky
1 man manual nápověda Pokud existuje manuál k příkazům, zobrazí, ho. man rm vypíše nápovědu k příkazu rm Pokud manuál neexistuje, lze zkusit příkaz help
2 ls
3 dir
4 rm remove odebrat
5 cd change (the working) directory změnit pracovní adresář umožňuje přesouvat se mezi adresáři cd .. vrátí se ve stromu adresářů o jednu zpět
6 du odhadne obsazení disků
7 df disk free volný disk ukazuje obsazenost disku
8 sudo superuser do superuser dělá spustí příkaz jako superuser
9 find find najít hledá soubor napříč adresáři
  1. find . -type d -iname "*python*"
  2. find . -type f -iname "*python*"
  3. find . -type f -mtime -20
  4. find . -type f -mtime +20
  5. find -type f -mmin +1 -mmin -5
  6. find . -size +3G
  1. Najde (find) adresáře (-type d), které mají v názvu python (-iname "*python*"). Tečka, která se nemusí uvádět, označuje hledání od aktuálního adresáře a není potřeba (může být nahrazena cestou odkud hledat). d jako directory, f jako file. i v name zahrne i případná velká písmenka (z anglického caps insensitive), *python* je glob umožňující hledat cokoliv co má v sobě řetězec python.
  2. Stejné jako výše, jen hledá soubory (protože -type je f, tedy file)
  3. Najde (find) soubory (-type f), které byly modifikovány do 20 dní zpět (-mtime -20, tedy m - modifikovány, time - dny, - zpět, počet dní 20) ve stromu počínající aktuálním adresářem (.)
  4. Stejné jako výše jen hledá soubory modivikovaná, před více jak 20 dny (-mtime +20)
  5. Najde (find) soubory (-type f), které byly změněny před 2-5 minutama (-mmin +1 -mmin -5) a nachází se ve stromě pod aktuálním adresářem. Respetive změněny před více jak minutou a méně jak pěti minutami.
  6. Najde (find) všechny soubory větši než 3 giga (-size +3G) nacházející se ve stromě počínajícím od aktuálního adresáře (.). Pokud se nezadá typ, hledá v souborech, ale je možné hledat i dle velikosti adresářů (-type d). M je pro megabity a k pro kilobity.
A možná umí vyhledat jen soubory, které byly použité v nedávné době.
10 clear clear vyčistit vyčistí obrazovku clear vyčistí obrazovku
11 exit exit opustit ukončí proces exit zavře terminál
12 whereis where is kde je najde program, ovšem programu musí být v PATH whereis gimp najde adresáře, kde je GIMP Hledá hlavně programové soubory, ale ne ostatní soubory!
13 lscpu list CPU vypiš CPU vypíše informace o PC lscpu vypíše parametry hardwaru
14 apt advanced package tool pokročilý nástroj balíčků nástroj pro zjednodušenou práci s balíčky sudo apt update
15 install
16 cat
17 dpkg debian package (manager) nástroj pro balíčky debian nástroj pro manipulaci s balíčky debian
18 connect connect spojení Zahájí spojení do zásuvky (socket)
19 systemctl Operuje s nástrojem systemd
20 chmod change file mod bits
22 source Příkaz spouštějící určitý soubor v konkrétním jádře
23 ll
24 help help nápověda Pokud má daný příkaz nápovědu, tak ji vypíše na obrazovku. help cd nabídne kompletní nápovědu pro příkaz cd
25 chmod change mode Ve skutečnosti change file mode bits.
26 which Hledá umístění příkazů. which python3 Najde umístění příkazu python3 (tedy výstup by byl /usr/bin/python3).
27 (p)locate Hledá soubory, snadněji než find.
28 rsync remote synchron*? vzdálená synchronizace? Program slouží ke kopírování a umí posílat pouze rozdíly.

NástrojeEditovat

Č. Název Co to znamená Česky Co to umí Poznámky
1 snap Nástroj pro manipulaci se snapy (tj. balíčky)
2 cups Open source sw zajišťující komunikaci od editoru (Word) do tiskárny.
3 systemd Je to systémový démon (viz O 12), který se spouští hned při startu.
4 fwupd Je systémový démon
5 apt Nástroj pro manipulaci s debs (tj. balíčky)
6 man Systémový stránkovač (dalšími stránkovači jsou například more, less, či most (most zvýrazňuje syntax barevně)).

OdkazyEditovat

CitaceEditovat

  1. Bash Reference Manual. www.gnu.org [online]. [cit. 2023-04-18]. Dostupné online. 
  2. Bash Reference Manual. www.gnu.org [online]. [cit. 2023-04-18]. Dostupné online. 
  3. Using case statements. tldp.org [online]. [cit. 2023-04-18]. Dostupné online. 
  4. case Man Page - Linux - SS64.com. ss64.com [online]. [cit. 2023-04-18]. Dostupné online. 
  5. bash - Console doesn't render according to man manual. Unix & Linux Stack Exchange [online]. [cit. 2023-03-28]. Dostupné online. (anglicky) 

Externí odkazyEditovat