Ještě jednou o Terminálu…

1769__90x120_kartaeso jsme se tu několikrát pokoušeli o to, stát se přeborníky v používání Terminálu, ale stále tomu NĚCO chybí. To NĚCO, to je asi ten způsob myšlení, jsme prostě celkem zajedno s grafickým GUI prostředím a kvalitu distribuce hodnotíme podle toho, jak dobře se nám v grafickém prostředí pracuje. Podle mě je to celkem normální, jelikož se i já navzdory určitým vědomostem navíc, pokládám jen za  uživatele.

Na english Mintím webu jsem našel něco, co by se k tomu, o čem jsem napsal 3 články, mohlo ještě připojit. Vycházím ale z toho, že ne všichni česko-slovenští uživatelé Mintu jsou nejlepší kamarádi s angličtinou. Proto u nás mají právo, aby se k nim informace dostala v rodné řeči.

Tento článek má název ‚The 5-Minute Essential Shell Tutorial‘ a já jsem se ho pokusil přeložit, komentovat a lehce upravit pro naši potřebu.

Každý z nás se už ocitl tváří v tvář Terminálu, ale zpočátku bylo matoucí, že má více jmen: terminál, shell, konzola, nebo Windowsí ‚command prompt‘. Mnozí z nás si zvykli na zkratku Alt+F2 a též dostali „prompt“. Mě to nějakou dobu nešlo do hlavy, ale když jsem si uvědomil, že na křestním listu mám 3 jména a používám jen to první, tak proč by to nemohlo být i jinde…

 

°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°

 

Nejrychleji se k Terminálu dostaneme kliknutím pravým myšítkem na plochu a potvrdit „Otevřít v terminálu“. Totéž můžeme udělat v kterékoliv adresáři, nebo složce, chcete-li. I tady se setkáváme s dvojím pojmenováním – adresář a složka; v překladu jsem si vybral, co se právě hodilo k textu…

 

  • V podstatě můžeme udělat v terminálu totéž, co se dá provést v grafickém prostředí.
  • Většina terminálových příkazů je určena především pro práci v něm, až potom i v grafickém prostředí.
  • Základní pozice pro váš terminál pro otevření z menu je vaše domovská složka, známá jako „~“
  • Váš aktuální adresář je označen operátorem „.“
  • Příkazy, místa a soubory se označují „case sensitive“, což znamená, že malá a velká písmena nepředstavují totéž.
  • Používáním klávesy Tab můžeme kompletovat jména souborů nebo příkazů.
  • Téměř každý příkaz může být prozkoumán pro plné užití pomocí manuálové stránky nebo napsáním -h neb –help za příkazem. Tato syntaxe je tedy man command_name, command_name -h, nebo command_name –help.
  • Pro získání víc informací můžeme zkusit info. Vyhledání se použije v syntaxi info command_name.
  • Každý příkaz může být zobrazen explicitně s tím, co dělá. To se dělá obyčejně použitím parametru -v nebo –verbose (–po našem: užvaněný)
  • Můžeme specifikovat mnohé příkazové parametry najednou, abychom dostali více informací.
  • Jména příkazů nejsou vždy stručné, z důvodu omezeného prostoru v dřevných časech UNIXu byly kráceny a obvykle pak domýšlené.

 

V následující části si budeme vybrané příkazy cvičit a opakovat (matka moudrosti):

Příkazy :

cd -> Použití při navigaci v adresářích. Můžeme se  přesouvat do kteréhokoliv místa pomocí cesty.

1. cd Posune nás zpět do domovského adresáře, totéž jako cd ~

2. cd .. Tohle nás přesune zpět přesně o jeden adresář.

3. cd jméno_složky/ Tohle nás přesune dopředu do určené složky. Nezapomenout na prefix / je to důležité nevynechání znaku.

4. cd /něco/něco_jiného/cesta  Tak se označuje specifická cesta ke složce, předpokládá se že existuje tak, jak je napsaná. Nezapomeňte na kompletování pomocí klávesy Tab !

 

ls -> Použití na zobrazení obsahu složky. Můžeme vidět mnoho způsobů použitých atributů souborů a adresářů. (vzpomeňte si na příkaz sl).

1. ls Sám o sobě příkaz ukáže jednoduchý seznam všech souborů v určené složce.

2. ls -l Poskytuje delší formát seznamu včetně majitelů, práv, velikosti a data změny.

3. ls -a Zobrazí skryté soubory a složky jako při normálním zobrazení.

4. ls -al Kombinuje možnost zobrazit všechny, i skryté soubory v dlouhém formátu.

5. ls -h Zobrazí velikost souborů ve formátu „pro lidi“ tzn. k, M, Gbyte namísto v bytech.  Často používané ve spojení spolu s -l. (-hl)

6. ls ../ Dostaneme seznam souborů o jeden adresář výše. Takto můžeme vidět soubory v adresáři, ve kterém ještě nejsme.

 

cp -> Kopírování souborů

1. cp soubor /cesta/ke/složce – Kopíruje určený soubor na danou cestu.

2. cp -r složka / cesta/ke/složce  Kopíruje rekurzivně obsah jedné složky do druhé.

3. cp *.rozšíření /cesta/ke/složce  Kopíruje soubory s daným rozšířením do nové složky. Složka už musí předtím existovat.

4. cp jméno* /cesta/ke/složce  Kopíruje všechny soubory začínající na ´jméno´ do dané složky, která už existuje.

 

mv -> Přesouvá soubory

1. Syntaxe mv je podobná jako u použití příkazu cp. Pro detaily použijte ´man´ stránku.

 

rm -> Odstraňuje soubory

1. Přes všechny dobré úmysly a schopnosti, odstraňování souborů pomocí rm je definitivní. Nedají se už hledat v koši. Používejte s rozvahou a ujistěte se, zda je mazání skutečně přesně to, co chcete, ne co si jen myslíte. Pro jistotu se dá použít příkaz delete, tam je pravděpodobnost návratu snad možná.

2. rm soubor  Odstraní určený soubor ze systému.

3. rm -r adresář  Odstraní určenou složku ze systému.

4. rm -rf adresář  Odstraní násilně určenou složku. Tento příkaz může několikrát zlomit vaši konfiguraci, pokud je něco použité nesprávně, nezobrazuje se pokud se něco kritického má smazat. Pokud se rozhodnete k použití, vězte, že je to poslední možná metoda a není každému doporučovaná.

 

mkdir -> Vytvoří adresář

1. mkdir jméno_adresáře  Vytvoří adresář s určeným jménem.

2. mkdir -p /cesta/k/adresáři/jméno  Vytvoří každý adresář podle potřeby.

 

ps -> Vypíše seznam procesů

1. ps aux  Seznam všech procesů v detailech, které běží v systému, včetně uživatelů, PID a jména procesu. Jeho použitím můžeme vidět všechny procesy a pokud je třeba, tak následně zabít nepotřebné nebo zamrznuté procesy. Pro detaily použijte ´man´ stránku.

 

kill / killall / xkill -> Zabíjí zlobivé, zmrznuté a nepřizpůsobivé procesy.

1. kill PID  PID je číslo odkazující na proces. PID zjišťujeme po použití příkazu jako ps aux. Pokud process odmítá zemřít, alternativně použijeme kill 9 PID, který může zabít i problematický proces.

2. killall program  Killall zabíjí *podle jména* všechny výskyty uvedeného programu, Pokud jsou například 3 sezení Opera spuštěné, tak killall opera je zabije všechny. kill může i jednoduše vybrat specifické PID z nabízených Opera procesů a zabít jen ten jeden.

3. xkill  je cesta skrze grafické rozhraní: kliknout a zabít okno. Zapsáním xkill se ukáže ikona jako lebka se skříženými hnáty – a následně kliknutím na okno se toto zabije.

 

Pipes Trubka -> Nejčastěji používané věc, když se učíte *NIX. Přesměrování výstupu z programu na jiný vstup.

 

1. Trubka neboli Pipe je reprezentovaná svislou čárou, jinak známou jako klávesa ´|´.

2. Je používaná jako spojovací příkaz. Trubka vezme výstup z jednoho příkazu a použije ho jako druhý příkaz, který je zřetězen spolu s ním.

 

>and >>redirectors -> Pošle výstup do souboru místo na terminál.

1. >  je použitý na *přepsání* obsahu souboru a nahrazením výstupem z nového příkazu.

2. >> je použitý na *připojení* informace k současnému existujícímu souboru. Je to užitečné pro logování.

3. Příklad: ps aux > procesy.log. Pošle výstup z ps aux do souboru procesy.log pro prohlížení výstupu příkazu v textovém editoru a přepsání současného obsahu souboru.

 

tee -> Pošle výstup do terminálu i do souboru

1. tee se používá ve spojení s ´|´ v pořadí výstup příkazu a poslání ho někam. Je to užitečné, když je výpis chyby, který přeletí přes obrazovku tak rychle, že ho nestihneme přečíst; tohle je cesta, jak jej zachytit do souboru.

2. Příklad:  dmesg | tee boot.txt – spustí příkaz dmesg který ukáže initial boot info a trubka ´|´ pošle výstup do tee, který vykoná svoji práci odesláním do terminálu a do log souboru boot.txt.

 

Spouštění souboru ->

Může se soubor spustit z terminálu? Ujistěte se, jestli je označen jako spustitelný. Pokud není zkuste tip #4 dole.

1. Potřebujeme spustit soubor v daném adresáři potom, co je označen jako spustitelný (executable)?

./ operátor může spustit soubor jako obyčejný uživatel, umožňující mu nepotřebovat práva roota.

./ jinak „v daném adresáři“ znamená, že to nefunguje mimo tento adresář.

 

2. Potřebujeme spustit soubor, ale NE v tom daném adresáři? Pak musíte přejít na cestu na správný spouštěcí program. Pokud je to python, bude to python /cesta/k/souboru a jestliže je to shell soubor, tak je to sh /cesta/k/souboru jako příklad. Je kopa jiných programů, tohle snad pro začátečníky bude stačit.

 

3. Potřebujete spustit soubor s právy roota, protože jste dostali hlášku, že nemáte povolení? Prefixujte příkaz se sudo. To podle předcházejícího příkladu, bude sudo python /cesta/k/souboru a script bude (po zapsání hesla) vykonán s právy roota.

 

4. Potřebujete spustit GUI program z terminálu? Jednoduše napište jméno programu (pozor na velká písmena) a bude spuštěn. To způsobí, že daný terminál bude nepoužitelný. Zavření terminálu dokud spuštěný program je otevřen, zabije program. Lepší cesta je spustit program na pozadí, použitím jméno_programu & a napsat slovo exit do terminálu pro jeho zavření a nechat proces běžet.

 

5. Potřebujete spustit GUI program z terminálu s právy roota?  Prefixujte program s gksudo nebo gksu a not sudo.

 

6. Mějte na mysli, že vše co děláte s právy roota, může na špatném místě absolutně rozbít systém! Výstraha být větší už nemůže! Ujistěte se, že vaše soubory pocházejí z důvěryhodných zdrojů !

 

Rychlé tipy :

1. Ztratili jste se v adresáři? Nevíte jistě kde jste? Napište pwd (print working directory)

2. Chcete si rychle vypočítat místo na vašem disku ? df -h  dá rychlou odpověď.

3. Chcete rychle spočítat velikost adresáře nebo souboru ? du -cksh jméno_cíle  a máte přesnou odpověď. Chcete spočítat velikost daného adresáře ? du -cksh

4. Potřebujete označit soubor jako spustitelný ? Napište chmod +x jméno_souboru. Napříště uvidíte soubor který chcete spustit a on není spustitelný, teď už víte, jak na to.

5. Chtěli byste připojit iso jako Daemon-Tools ve Windows? Linux má tuto funkci zabudovanou. Jednoduše někde vytvoříte adresář, třeba /home/bobby/isomount a obsah se připojí do této složky.

6. Spustit předcházející příkaz a chcete ho znovu spustit, ale nedovedete si vzpomenout, jak to má být přesně? Napište history do terminálu a vytiskne vám historii příkazů. Chcete vyčistit vaši historii? history -c vymaže všechny historické informace.

 

1770__200x260_kartaking

 

Doufám, že po dnešní lekci už skoro každý z vás bude KING … a  žaludovej …

 

1.   Průvodní obrázky mají souvislost s existencí privátního „Karban Klubu“ v Přerově, jehož jsem byl členem (1954-1956) a propagátorem Mariáše, kteroužto hru pokládám za vynikající     prostředek na zvyšování IQ, především v mladém věku.

2.   Pokud se vám podaří pomocí terminálu a práv roota znehybnit svůj systém, berte to jako zkušenost a napište o tom do fóra nebo sem. Nic tak nepotěší duši českého člověka, jako sousedovo neštěstí …

3.   Abych nezapomněl, pokud moje snaha o publicitu Terminálu nebyla marná, očekávám, jak už to v kulturní společnosti bývá zvykem, tisíce děkovných dopisů…

 

Štítky , , , .Záložka pro permanentní odkaz.

9 reakcí na Ještě jednou o Terminálu…

  1. jarek163 říká:

    První z mnoha.
    Děkuji, za tvoji snahu a kvalitní čánky, teď ještě nebejt línej a nalejt si to do hlavy…

  2. Anonym říká:

    Dobrý den, pane. Já jsem teprve začátečník a pokusím se vás „zneužít“ prosbou o radu: mám linux Mint15 Cinnamon a při jeho najíždění se mi občas stane, že najede jen jádro linuxu a zůstane stát na černé obrazovce bliká kurzor a čeká na jakýsi příkaz pro najetí grafického prostředí. Ten příkaz bych rád použil, ale neznám jej, buďte prosím tak dobrý a prozraďte mi ho, abych nemusel natvrdo resetovat PC, když nevím co je třeba udělat. Děkuji Vám stotisíckrát a ještě jednou …

  3. Old Bobby říká:

    Děkuji za důvěru,nicméně tato otázka patří spíše do fóra.
    Protože neznám více podrobností, je to nějaká systémová chyba nebo nekompatibilita s hardwérom. Osobně Cinnamon nepoužívám, na všech strojích mám MATE.
    Jako nouzové řešení, pokud „černá obrazovka“ ukazuje ´prompt´, tedy výzvu na zadání příkazu, zkuste napsat příkaz
    ´startx´
    (bez těch uvozovek) a GUI by mělo naběhnout.
    Každopádně však doporučuji prozkoumat systém, kde asi může být chyba.
    Anebo přejít na MATE ;°)
    Good Luck ! Old Bobby

  4. vladacr říká:

    Díky za snahu, dovolím si jen v rychlosti několik poznámek:

    –help správně je –help podobně –verbose má být –verbose – pozor, jsou tam dva znaky hyphen, nilkoliv jedna dlouhá pomlčka (n-dash)

    Jestli se neurazíte, poopravil bych překlad a doplnil z vlastní zkušenosti:
    Take note of the missing prefix / it is an important omission. → Nezapomenout na prefix / je to důležité nevynechání znaku. → Pozor, u názvů adresářů není na začátku zpětné lomítko u názvů adresářů – je to jedna z nejčastějších chyb. Pokud jsem v adresáři /home/vlad a chci se přepnout do adresáře Plocha, musím napsat cd Plocha/ bez zpětného lomítka před názvem složky (Plocha). Pokud ale chci z mého domovského adresáře jít mimo něj, například do usr/share/, pak úvodní backslash dát musím. Např.:

    vlad@t61:~/Plocha$ cd /usr/share/
    vlad@t61:/usr/share$

    cp *.extension /path/to/folder  Copies files matching the given extension to the new folder.  extension je přípona

    Pipes – Trubka -> Nejčastěji používané věc, když se učíte *NIX. Přesměrování výstupu z programu na jiný vstup.

    Například potřebuji zjistit, jaké ID má relace conky běžící na pozadí, použiji příkaz ps s argumenty aux a pipe s příkazem grep

    vlad@t61:/usr/share$ ps aux | grep conky
    vlad 4906 1.9 0.1 843124 6552 ? Sl 09:45 5:30 conky -c /home/vlad/.conky.rc
    vlad 9253 0.0 0.0 9592 944 pts/1 S+ 14:30 0:00 grep –colour=auto conky

    Pokud bych někdy v budoucnu mohl být nápomocen s překladem či jinak, dejte vědět.

  5. Ondřej Kolín říká:

    @vladacr Nejvíce práce s překlady je na launchpadu a transifexu (viz „komunita“-> Překlady). Pokud by jste měl zájem podpořit překlady pro články a nevíte, co třeba přeložit tak nám napište na info(at)linux-mint-czech.cz, ono se třeba něco najde

    Jinak poznámka k terminologii nepoužívá se označení složka, ale adresář, termín složku založil Billův OS

  6. vladacr říká:

    Jo, slovo složky mi tam jednou uniklo…

  7. ulo říká:

    Já např. slovo „složka“ používám záměrně, protože spousta nováčků, kteří přejdou z Windows na Mint, tak slovo adresář nemusí znát nebo správně a hned pochopit. Složku znají všichni (a to i zasloužilí linuxáři). Jinak souhlasím, že v *nixech nazývat jedině adresář 🙂

  8. Ondřej Kolín říká:

    Jako zase člověk musí jít W. naproti, takže je to v pohodě když to používá, protože pokud si budeme hrát na naprosto zbytečný perfekcionalismus, tak i přes všechny kvality Mintu nemáme šanci ho nikomu ukázat 🙂

  9. Old Bobby říká:

    @vladacr Děkuji za příspěvek a drobnou opravu překladu; je úžasné, že fungujeme jako team. Právě nedávno jsem psal, že naše KOMUNITA je něco extra !

    Trochu jsem v rozpacích, ale chybička (backslash) se asi vloudila:

    „Pokud jsem v adresáři /home/vlad a chci se přepnout do adresáře Plocha, musím napsat cd Plocha/ bez zpětného lomítka před názvem složky (Plocha). Pokud ale chci z mého domovského adresáře jít mimo něj, například do usr/share/, pak úvodní backslash dát musím“

    The term „backslash“ is on of the most incorrectly used terms in computing. People often refer to forward slashes as backslashes, especially when referring to URLs. Web addresses (URLs), such as http://pc.net/helpcenter/, contain forward slashes, rather than backslashes. The difference between a backslash and a forward slash is defined below:
    Backslash:
    Forward Slash: /
    A good way to remember the difference between a backslash and a forward slash is that a backslash leans backwards ( ), while a forward slash leans forward ( / ).

    Ostatním přispěvatelům děkuji za připomínky a konstruktivní diskuzi.