Bash pro začátečníky/Jak něco udělat

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

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
J.2 Jak zobrazit nápovědu k příkazu? man příkaz, help příkaz, info příkaz, příkaz --help, příkaz -? 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.
J.3 Jak zobrazit skryté adresáře? ls -a Možno též dir -a
J.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)
J.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.
J.7 Jak nainstalovat KdenLive? sudo snap find kdenlive

(heslo)

sudo snap install kdenlive

  1. příkaz hledá snap s kdenlive
  2. druhý ho nainstaluje
J.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).
J.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.
J.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
J.11 Jak zjistit, kolik ja na disku volného místa? df -h Jde i df, ale df -h (human) je čitelnější.
J.12 Jak zobrazím strom adresářů? Nebo si najít defaultní strukturu na webu.
J.13 Jak zobrazím obsah adresáře, který se vejde na jednu stránku?
J.14 Jak nainstalovat R? Na webu R je nápověda.
J.15 Jak zjistím jakou mám verzi? cat /etc/os-release Vypíše informace k verzi.
J.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
J.17 Jak odinstalovat Gephi? sudo snap remove gephi

sudo apt-get autoremove

Druhý krok odinstaluje nepoužívané dependencies a je dobré ho udělat.
J.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.
J.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.
J.20 Jak najít snap? snap find něco něco nahradíme názvem hledaného softwaru
J.21 Jak najít nainstalované balíčky (snapy)? sudo snap list
J.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íž
J.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.
J.23 Jak vytvořit iso flašku?
J.24 Jak zjistím jakou mám verzi Javy? java -version
J.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/
J.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 (?)
J.27 Jak odinstalovat gscan2pdf?
  1. sudo apt get remove gscan2pdf
  2. y+enter
J.28 Jak nainstalovat program, který není ve snapu?
J.29 Jak nainstalovat Edge? Ověřené řešení viz: https://www.omgubuntu.co.uk/2021/01/how-to-install-edge-on-ubuntu-linux
J.30 Jak nainstalovat ET na Ubuntu 22?
J.31 Jak restartovat počítač?
J.32 Jak nainstalovat OBS Studio?
J.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
J.34 Jak nainstalovat aplikaci eObcanka?
J.35 Jak vyberu konkrétní screen, ke kterému se chci připojit?
J.36 Jak po napsání něčeho, rychle vložit již někde napsaný řetězec?
J.37 Jak vypsat soubory určitého typu na celém PC a zastavit vždy po pokrytí celé stránky?
J.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.

J.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.
J.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.
J.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
J.42 Jak zobrazit význam barev u příkazu ls?
J.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]...
J.44 Jak upgradovat Python?
J.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
J.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.
J.47 Jak zjistím, jaké verze Pythonu mám nainstalované? ls /usr/bin/python*
J.48 Jaký je rozdíl mezi knihovnami a binárními soubory?
J.49 Jak nainstalovat nejnovější verzi Python?
J.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
J.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
J.52 Jak vytvořit alias?
J.53 Jak updatovat informace o ppa balíčcích?
J.54 Jak převést pdf do OCR?
  1. stáhnout ocrmypdf, tesseract
  2. stáhnout češtinu pro tesseract
  3. doskákat do adresáře, kde je soubor
  4. ocrmypdf -l ces zdrojový soubor výchozí soubor
J.55 Jak vytvořit shortcut pro příkaz?
J.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ář?).
J.57 Jak smazat adresář?
  1. rmdir název adrešáře
  2. rm -r název adresáře
  1. adresář je prázdný
  2. adresáře není prázdný, atribut -r znamená rekurzivně, neboli opakovaně. Jinak řečeno, příkaz rm bude odstraňovat obsah adresáře tak dlouho, než ho celý odstraní. rm -r Tkinter2, tedy odstraňuje tak dlouho obsah adresáře Tkinter2, než ho celý odstraní. Na závěr odstraní i samotný adresář.
J.58 Jak nainstalovat software, který je pouze pro Windows?
J.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.
J.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
CHYBNÉ ŘEŠENÍ, FUNGUJE POUZE DOČASNĚ, NUTNÉ PŘEPSAT.
  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.
J.61 Jak spustit MATE Calculator? mate-calc
J.62 Jak přenést do popředí MATE Calculator po stisku klávesnice kalkulačka?
J.63 Jak zobrazím práva k souboru? ls -l název souboru
J.64 Jak zobrazím informace o balíčku apt? sudo apt-cache show název balíčku
J.65 Jak otevřít Visual Code Studio z terminálu? code
J.66 Jak vytvořit někde soubor?
J.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
J.68 Jak zadat zkratky CTRL+C a CTRL+V ve všech Bash shellech (např. i RStudio)?
J.69 Jak restartovat program?
J.70 Jak downgradovat program?
J.71 Jak vytvořit prázdný soubor? touch název soboru
J.72 Jak spočítat počet slov v textu?
J.73 Kde najdu soubory s rozložením klávesnic? Obvykle v /usr/share/X11/xkb/symbols.
J.74 Jak otevřít bashrc? název textového editoru ~/.bashrc Takže například micro ~/.bashrc, kde micro je název textového editoru ve kterém se bashrc otevře.
J.75 Jak zjistím, které rozložení právě používám? textový prohlížeč /etc/default/keyboard Tedy například micro /etc/default/keyboard.
J.76 Jak vyprázdnit paměť při kopírování?
J.77 Jak nainstalovat uživatelské rozvržení ze souboru v xkb?
J.78 Jak zkopírovat soubor z jednoho místa do druhého? cp cesta ke zdrojovému souboru cesta k cílovému souboru V praxi to může vypadat následovně: sudo cp diskD/Studium/Programování/cz-qwertz-prog-nnumbers-layout /usr/share/X11/xkb/symbols/. Tedy soubor cz-qwertz-prog-nnumbers-layout kopíruji z adresáře Programování do adresáře symbols. Sudo tam dávám proto, že do složky usr může kopírovat pouze admin.
J.79 Jak zobrazím obsah či inofrmace o knihovně libnotify? locate libnotify Vyjedou mi všechny adresáře a soubory obsahující řetězec libnotify. Mohu se tak i podívat co je v adresářích libnotify*.
J.80 Jak zjistím svůj default editor? sudo update-alternatives --config editor Default pro všechny uživatele má nejvyšší prioritu, pro konkrétnního uživatele je označen hvězdičkou. Zápis může vypadat následovně:
  Selection    Path               Priority   Status
------------------------------------------------------------
  0            /usr/bin/micro      100       auto mode
* 1            /bin/ed            -100       manual mode
  2            /usr/bin/code       0         manual mode
  3            /usr/bin/micro      100       manual mode
  4            /usr/bin/vim.tiny   15        manual mode
Tento seznamu ukazuje všechny editory přidané do update-alternatives. První editor je globální pro všechny uživatele což se pozná i tím, že má nejvyšší prioritu. Priorita se určuje při instalaci, nebo se dá dodatečně změnit. Druhý editor má hvězdičku, tzn. že se použije jako default, všude tam, kde ho použije aktuální přihlášený editor. Nicméně některé aplikace využívající administrátorská práva, mohou použít právě editor pod číslem 0. Záporná priority (v tomto případě editor ed -100) se dává těm editorům, které by se neměli stát defaultními.
J.81 Jak přidat Micro do výběru select-editor?
  1. whereis název editoru
  2. sudo update-alternatives --install /usr/bin/editor editor cesta k editoru 100
  1. Napřed si zjistím, kde se můj editor nachází
  2. Pak tuto cestu přidám do tohoto příkazu, takže to může vypadat následovně: sudo update-alternatives --install /usr/bin/editor editor /usr/bin/micro 100. Pokud zadám nejvyšší prioritu, bude tento editor defaultní i pro všechny uživatele (nehledě na to jaký editor bude vybrán pomocí update-alternatives (hvězdička)). Zadáním sudo update-alternatives --config editor si tedy mohu nejprve zjistit, jaké jsou priority jednotlivých editorů.
J.82 Jak vyextrahovat data z tabulky obsahující určitý řetězec?
  1. stáhnu tabulku například jako *.tsv
  2. cat zdrojovydokument.tsv | grep "heledaný řetězec" > "soubor s vyfiltrovanými daty.tsv"
  1. TSV soubor znamená soubor, kde jsou jednotlivé buňky/sloupce odděleny tabulátorem (z angl. Tab-Separated Values)
  2. Pokud by mi stačilo vypsat dané řádky do okna terminálu, stačí zadat pouze cat zdrojovydokument.tsv | grep "heledaný řetězec" a případně si hledaný řetězec mohu zvýraznit přes cat zdrojovydokument.tsv | grep --color "heledaný řetězec". Pokud chci výsledek vložit do dalšího dokumentu pro další zpracování, volím celý tento příkaz. Výsledný soubor, má jednotlivé hodnoty stále oddělené tabulátorem, takže mohu pak jednoduše opět převést do tabulky.
J.83 Jak odstranit z EXIFu fotky souřadnice?
J.84 Jak zmenšit rozlišení fotek?
  1. sudo apt update
  2. sudo apt install nautilus-image-converter
  3. killall nautilus
  4. nautilus
  5. označit a zvolit možnost změny rozlišení
  1. nejprve updatujeme informace o dostupných balíčcích
  2. poté naistalujeme Nautilus
  3. pak ho shodíme
  4. a znovu spustíme
  5. na Ubuntu 22.04.2 LTS (Debian) se nám otevře okno se složkami. Pak už stačí označit soubor, či soubory, kde chceme změnit rozlišení a kliknout na Resize images... (takže jde změnit rozlišení u jedné fotky, nebo u více fotek naráz). Je možné, že na jiných distribucích se neotevírá speciální okno se složkami, ale pouze se přidají nové možnosti do nabídky, která vyzkočí, při pravém pokliknutí na myš.
J.85 Jak zobrazit rozložení klávesových zkratek v terminálu?
J.86 Jak hledat v manuálu?
  1. /řetězec
  2. ?řetězec
  3. n
  4. N
  1. Najde řetězec vpřed
  2. Najde řetězec vzad
  3. další hledání vpřed v rámci 1, nebo 2
  4. další hledání vzad v rámci 2, nebo 1
J.89 Jak vyhledat nápovědu pro man(7)? man 7 man man man mi většinou hodí pouze sekci 1 manuálu k příkazu man. Pokud chci jinou sekci, jako například 7, musím psát man 7 man. Sedmá sekce se v manuálových stránkách označuje jako man(7).
J.90 Jak si vytisknout manuálovou stránku?
  1. lpstat -p
  2. zkopírovat název tiskárny
  3. man -t příkaz | lp -d název tiskárny
  1. zobrazí seznam dostupných tiskáren
  2. okopíruji si název tiskárny na které chci tisknout
  3. zadám nápovědu příkazu, který chci tisknout a pipnu to do příkazu pro tisk s názvem konkrétní tiskárny
J.91 Jak zobrazit dostupné tiskárny? lpstat -p
J.92 Jak vytisknout pouze část manuálové stránky?
J.93 Jak smazat soubor? rm název souboru Pokud jsem ve složce, kde je soubor umístěn, jinak se tam musím přemístit prostřednictvím cd.
J.94 Jak provést více příkazů po sobě a zadat to na jednom řádku? Ano, použitím logického operátoru &&. Ten zajistí, že provedení prvního příkazu, bude zajištěno až po zdárném provedení prvního příkazu. Syntax tedy je 1. příkaz && 2. příkaz. Příkladem může být skopírování souboru s jeho následným smazáním, tedy cp cesta k souboru cílový adresář souboru && rm cesta k původnímu souboru. Tedy po zadání cp "oznameni do okna.py" Tkinter/ && rm "oznameni do okna.py" příkaz cp zkopíruje soubor oznameni do okna.py do adresáře Tkinter a následně tento soubor v původním umístění smaže. Uživatel se tedy v tomto případě nacházel v adresáři, kde byl původní skript, proto nezadával cestu k souboru v případě příkazu rm, respetive cesta byl samotný název souboru.
J.95 Jak smazat soubor v jiném než aktuálním adresáři? Tak že se zadá cesta, např. rm Tkinter/vstup.py, smaže soubor vstup.py v adresáři Tkinter.
J.96 Jak založit adresář? mkdir název adresáře
J.97 Jak přejmenovat soubor? mv název souboru nový název souboru Např. mv test.py "kalkulacka pokus.py" přejmenuje soubor test.py na kalulacka pokus.py.
J.98 Jak nainstalovat Zotero?
  1. wget -qO- https://raw.githubusercontent.com/retorquere/zotero-deb/master/install.sh | sudo bash
  2. sudo apt update
  3. sudo apt install zotero
  1. První krok stáhne zatím prověřený instalátor
  2. druhý krok updatuje balíčky
  3. třetí krok instaluje zotero
J.99 Jak si zobrazit obsah terminálu i po jeho zavření?
J.100 Jak přidat tiskárnu?