• O různých shellech Linuxu a Unixu. Příkazový shell pro UNIX

    =====================================================

    LABORATORNÍ PRÁCE č. 1 (čas na dokončení - 3 hodiny)

    Předmět: „Úvod doskořápka

    1. Úvod do shellu

    Shell je příkazový interpret (příkazový procesor), který funguje jako rozhraní mezi uživatelem a unixovým jádrem. Solaris nabízí tři hlavní shelly:

      Výchozí Bourne shell je /sbin/sh

      C shell -- /bin/csh

      Příkazový procesor Korn-- ./bin/ksh

    Kromě těch, které jsou uvedeny, Solaris poskytuje další shelly:

      J shell -- /sbin/jsh

      Omezený Korn l -- / usr/ bin/rsh

      T-shell -- /usr/bin/tcsh

      Znovu GNU Bourne -- /usr/bin/bash

      Z shell - usr/bin/zsh

    Výběr pláště je věcí osobních preferencí.

    2. Spusťte příkazy

    Jakýkoli příkaz v Unixu se skládá z názvu programu, který se má spustit (příkaz), voleb (přepínačů) a argumentů předávaných programu. Oddělovače příkazového řádku jsou mezery nebo tabulátory.

    Příklad

    $ /bin/ping –t 10 192.168.2.13

    argument

    shell prompt

    Pokud při spouštění programu není zadána cesta k programu spustitelný soubor, pak OS postupně prohledá adresáře zadané v proměnné PATH. Pokud je v prohlíženém adresáři program se stejným názvem, spustí se ke spuštění. Aktuální pracovní adresář se při hledání programů nevyhledává, pokud není nastaven v proměnné PATH.

    ! Z bezpečnostních důvodů se administrátorovi doporučuje nepřidávat aktuální adresář a domovské (osobní) adresáře uživatele do proměnné PATH.

    Příklady

    Spuštění programu s úplnou cestou

    $ / usr/ místní/ zásobník/ můj_ program

    Spuštění programu z vyššího (nadřazeného) adresáře

    $ ../ místní/ zásobník/ můj_ program

    Spuštění programu z aktuálního adresáře

    $ ./ můj_ program

    3. Speciální symboly ve skořápce

    Některé znaky ve skořápce mají speciální význam.

    3.1. Vzory generování názvu souboru

    ? (otazník) odpovídá libovolnému jednotlivému znaku kromě první tečky;

    (hranaté závorky) definovat skupinu symbolů (je vybrán jeden symbol ze skupiny);

    - (znaménko mínus") definuje rozsah platných znaků;

    ! (Vykřičník) odmítá skupinu znaků, která za ním následuje;

    * (symbol hvězdy) odpovídá libovolnému počtu znaků kromě první tečky.

    3.2. symboly přesměrování I/O

    < - přesměrování vstupu;

    >, >> - přesměrování výstupu;

    2>, 2>> - přesměrování chybových zpráv;

    | - dopravník.

    3.3. Symboly zástupných znaků

    $variable_nameq - variabilní substituce;

    $ (příkaz) nebo "příkaz" - substituce příkazů;

    ~ - tilda substituce.

    4. Hledat

    Pro rychlé hledání soubory a adresáře se používá příkaz whereis, pro hlubší příkaz find (hledání souborů splňujících zadané požadavky;).

    5. Textový editor vi

    Textový editor vi je univerzální textový editor, který lze nalézt na jakémkoli Unixu. Kromě úprav textových souborů lze editor vi použít k úpravě příkazového řádku.

    Editor vi má 3 provozní režimy (viz obrázek).

    Vstup do editoru vi

    Odejít z vi

    Znak „~“ (tilda) na první pozici označuje prázdné (neexistující) řádky souboru.

    Hlavním režimem je příkazový, ve kterém se příkazy zadávají stisknutím určité sekvence kláves (nejsou nijak zobrazeny na obrazovce).

    Pohyb v textu v příkazovém režimu se provádí pomocí šipek a kláves (vlevo, odjet) (dolů), (nahoru), (doprava).

    Některé příkazy vi jsou uvedeny v tabulce.

    Smazat aktuální řádek

    Zkopírujte aktuální řádek do schránky

    Pohyb kurzoru

    Vkládání znaků označených kurzorem do vyrovnávací paměti

    Vložit nový řádek zespodu

    Nahoře vložte nový řádek

    Přidat za kurzor

    Připojit za aktuální řádek

    Vložit před kurzor

    Vložit před aktuální řádek

    Nahrazení znaku znakem zadaným z klávesnice

    Vložte text ze schránky

    . (tečka)

    Znovu proveďte poslední provedený příkaz

    Zrušit poslední příkaz

    Vrátit zpět všechny změny na aktuálním řádku

    Smazat znak nad kurzorem

    V režimu zadávání se do textu vkládají všechny znaky napsané na klávesnici.

    V režimu poslední řádek zadávaný příkaz se zobrazí na posledním řádku obrazovky.

    6. Pomoc

    Unix má elektronický manuál, který obsahuje popis účelu příkazů, jejich syntaxi, příklady použití atd. Manuál se volá příkazem man:

    7. Základní příkazy skořápka

    SZO– zobrazování informací o aktivních uživatelích;

    echo– výstup zpráv na terminál;

    prapor– výstup zpráv na terminál velkými písmeny;

    muž– volání do systému online nápovědy;

    datum – výstup aktuálního data;

    napsat– přenos zpráv na terminál jiného uživatele;

    zpráva– povolení/zákaz zobrazování zpráv od jiných uživatelů;

    pošta– odesílání/příjem pošty;

    zprávy- seznámení s novinkami systému;

    pwd– zobrazit absolutní cestu k aktuálnímu pracovnímu adresáři;

    CD– změna pracovního adresáře;

    ls– zobrazení informací o obsahu adresáře;

    mkdir- vytvoření adresáře;

    rmdir– smazání adresáře;

    dotek– aktualizace časového razítka souboru;

    cp– kopírování souborů;

    kočka- slučování a zobrazování obsahu souborů;

    více– stránkování obsahu souboru.

    mv – přesun nebo přejmenování souboru;

    rm– smazání souboru;

    alias– vytvoření pseudonymu;

    tr– transformace postavy;

    výstup- dokončení proudu skořápka-A;

    tričko– zachycení výsledků potrubí;

    střih – výběr polí z řetězce;

    grep– vyhledávání podle vzoru;

    pr– výstup souboru na standardní výstup ve stanoveném formátu;

    třídit- třídění;

    hlava– výstup prvních řádků souboru;

    ocas- výstup posledních řádků souboru;

    toaleta- počítání počtu znaků, slov a řádků;

    číst, echo - čtení a zobrazování hodnot proměnných;

    test- hodnocení hodnoty výrazu;

    expr, nechat- výpočet aritmetických výrazů;

    8. Shell- programy

    Shell umožňuje uložit sekvenci příkazů do souboru a poté jej provést. Chcete-li spustit soubor s programem shell pro spuštění, musíte k přístupovým právům přidat oprávnění ke spuštění:

    $ chmod +x název_souboru_programu

    Větvení v programech shellu je organizováno pomocí operátorů:

    Jestliže pak jinak

    Příkazy smyčky:

    CVIČENÍ

    1. Který z následujících příkazů způsobí zobrazení uvítací zprávy na obrazovce? co nejsou? Proč?

    $ echo ahoj

    $ echo ahoj

    $ echo AHOJ, SVĚTE

    $ prapor Ahoj

    $ PRAPOR AHOJ, SVĚT

    2. Pomocí příkazů vytiskněte zprávu z více řádků echo A prapor.

    3. Vypište datum do dvou řádků: na první řádek - den, měsíc, rok, na druhý řádek - aktuální čas, výstup opatřete komentářem.

    4. Použití příkazu napsat, odešlete zprávu do konzole. Odesílejte zprávy na více terminálů současně.

    5. Použití příkazu zpráva, určit, zda jsou na vašem terminálu povoleny zprávy. Zakázat zprávy. Jaká bude reakce systému, když se vám někdo pokusí poslat zprávu?

    6. Pojmenujte své DOMOV-katalog.

    7. Procházejte podstrom adresářů počínaje adresářem /export/home pomocí příkazů cd, ls A pwd.

    8.. Vytvořte ve svém DOMOV-adresářové podadresáře formuláře:

    ovocné květy

    jablko hruška hrozny růže fialka pampeliška

    tmavozelený

    9. Být ve svém DOMOV-adresář, vytvořte následující podadresáře pomocí jediného příkazového řádku:

    ABECEDA

    10. Být ve svém DOMOV-adresář, smaže všechny podadresáře adresáře A.

    11. Být in DOMOV-adresář, vytvořte soubor macintosh ve stávajícím katalogu jablko a několik souborů v adresářích temný A zelená. Zadejte adresář Fsnižuje. Být v adresáři Fsnižuje, zkopírujte všechny podadresáře Fruity spolu se soubory, které obsahují, do speciálně vytvořeného adresáře košík.

    12. Být v katalogu Fsnižuje, odstranit adresář Fruity.

    13. Přečtěte si soubor .profil pomocí příkazů kočka A více.

    14. Vytvořte v DOMOV- textový soubor adresáře můj soubor z více řádků pomocí příkazu kočka. Vytvořte textový soubor MyFile, zapsáním stejných řádků do něj. Kolik souborů jste získali? Proč?

    15. Prohlédněte si obsah souboru vytvořeného v úloze 2.2 můj soubor. Zkopírujte soubor můj soubor do souboru mycopy. Prohlédněte si obsah obou souborů.

    16. Přesuňte soubor mycopy do katalogu květiny.

    17. Být in DOMOV-adresář, vytvořte odkaz myodkaz na soubor mycopy umístěný v adresáři květiny. Zobrazit soubor s odkazem.

    18. Přidejte do souboru řádek můjodkaz. Který ze souborů můjodkaz, můjkopírovat, můjsoubor změnil? Proč?

    19. Jaký příkaz lze použít k určení počtu odkazů? Určete počet odkazů pro soubory můjodkaz, můjkopírovat, můjsoubor.

    Smazat soubor mycopy. Co se stalo se souborem odkazu? Určete počet odkazů pro soubory můjodkaz, můjsoubor.

    20. Vytvořte alias dir An, která vytiskne obsah aktuálního adresáře v rozšířeném formátu.

    21. Odhlaste se a znovu se přihlaste. Funguje alias? dir? Co je třeba udělat, aby se alias mezi relacemi „neztratil“?

    22. Vytvořte alias směřovat, který vytiskne seznam souborů v pracovním adresáři, jejichž názvy začínají tečkou.

    23. Použití příkazu dotek, vytvořte soubory v novém adresáři s názvy tak, aby současně:

    Šablona A* shodných 5 souborů;

    Šablona * A odpovídající 4 soubory;

    Šablona ??.? odpovídající 3 soubory;

    Šablona * aa* odpovídající 2 soubory;

    Šablona??? odpovídá 1 souboru.

    24. Jaký příkaz byste měli zadat, abyste provedli následující:

    a) zobrazit názvy všech souborů začínající tečkou;

    b) zobrazit názvy všech souborů končících na „.txt“;

    c) vytisknout názvy všech souborů obsahujících slovo "můj";

    25. Změňte všechna malá písmena na velká v jednom souboru, všechna velká písmena na malá v jiném. Odstraňte ze souboru všechny duplicitní mezery.

    26. Vytvořte soubor s názvem * . Smažte pouze tento soubor. Buďte opatrní při používání znaků pro generování názvu souboru!

    27. Vytvořte soubor se znakem mezery v názvu. Jak takový soubor smazat?

    28. Použití příkazu kočka zdvojnásobí obsah souboru připojením původního obsahu na konec stejného souboru. Přejděte do adresáře květiny. Přidat do souboru seznam vypsat obsah adresáře květiny. Zobrazení obsahu souboru

    29. Zkuste číst pomocí příkazu kočka neexistující soubor. Jaká je reakce systému? Udělejte totéž přesměrováním chybových zpráv do souboru moje chyba. Co vidíte na obrazovce? Prohlédnout soubor moje chyba.

    30. Vytvořte kanál pro seznam pouze jmen a oprávnění souborů, které jsou v tento moment jsou ve vašem pracovním adresáři.

    31. Změňte sestavený kanál tak, aby byl seznam uložen v souboru seznam Tvůj jeho DOMOV-adresář a byl zobrazen pouze počet souborů v seznamu.

    32. Zobrazte obsah souboru /etc/passwd, seřazené podle pole uživatelského jména.

    33. Vytvořte alias přihlášenna, který zobrazí abecedně seřazený seznam jmen aktuálně přihlášených uživatelů do systému.

    33. Pomocí příkazů zobrazte aktuální datum velkými písmeny datum A prapor.

    34. Přiřadit k proměnné JSEM Vaše registrační jméno. Spusťte další skořápka. Vidíte tuto proměnnou? Co je potřeba udělat, aby to bylo vidět ve vygenerovaném skořápka? Změňte hodnotu proměnné JSEM v generované skořápka. Exit se vytvořil skořápka. Podívejte se na hodnotu této proměnné v originále skořápka. Vysvětlete výsledek.

    35. Napište skořápka-program info, který vyzve uživatele k zadání jména, adresy, dne, měsíce a roku narození a zobrazí tyto informace v opačném pořadí

    36. Napište skořápka- program, který zobrazí výzvu k zadání čísla, zadané číslo uloží do proměnné Y a vytiskněte zprávu "Y je větší než 7", pokud hodnota Y větší než 7 a "Y jene větší než 7” v opačném případě.

    37. Napište program shellu, který zobrazí následující statistiky:

    a) vaše jméno;

    b) počet argumentů, se kterými je spuštěn;

    c) vypíše každý z jeho argumentů a délku argumentu ve znacích;

    38. Napište skořápka- program, který určuje počet argumentů v příkazový řádek a vyvolá chybovou zprávu, pokud počet argumentů není tři, nebo samotné argumenty, pokud je jejich počet tři.

    39. Pište skořápka- program, který zobrazí výzvu k zadání ID uživatele, zkontroluje, zda ID vyhovuje těm, které se používají v systému, a zobrazí celé jméno DOMOV-adresář nebo v případě neplatného identifikátoru vydat chybové hlášení.

    40. Napište shellový program Ahoj, poskytující následující odpověď na argumenty příkazového řádku:

    Argument "-d"- program provede příkaz datum;

    Argument "-l"- program zobrazí obsah aktuálního adresáře;

      pokud na příkazovém řádku nejsou žádné nebo neplatné argumenty, program zobrazí nápovědu o svých možnostech.

    41. Napište program slova, která uživatele vyzve k zadání jednoho slova po druhém, dokud slovo nezadá konec. Zapamatujte si všechna zadaná slova. Po zadání slova konec zobrazit všechna zadaná slova na obrazovce.

    42. Změňte systémovou výzvu tak, aby obsahovala úplnou cestu k aktuálnímu pracovnímu adresáři .

    43. Napište program virus, která vytvoří spustitelnou kopii sebe sama s jiným jménem a poté se smaže.

    44. Napište program virus2 , který vyhledá v aktuálním adresáři programy příkazového jazyka a přidá do jejich textu příkaz pro zobrazení slova infikovaný!”.

    45. Napište program virus3 , která do nalezených programů v příkazovém jazyce přidává svůj vlastní kód, aby infikovala jiné programy.

    46. ​​Napište program virus4 úpravou vašeho viru tak, aby při infikování byl infikující kód odstraněn z infikujícího programu.

    47. Napište program antivirus, který by našel všechny programy prostředí infikované vaším virem.

    48. Upravte vyvinutý program tak, aby infikované programy nejen našel v jím určeném adresáři, ale také je „vyléčil“ uložením infikované verze do nového souboru s koncovkou . vir a odebráním atributu vykonat z takového souboru.

    49. Napište program virus5 , které by:

    a) by infikoval programy shellu v aktuálním adresáři a jeho podadresářích virem pouze v případě, že by uživatel zadal příkaz ls;

    b) chovat se jako tým ls, aniž by cokoli rozdali na terminálu své práce.

    50. Napište virus6 program založený na programech virus2 -virus5 , jehož infikující kód nemohl být detekován vámi vyvinutým programem antivirus a k infekci by došlo při jakékoli hodnotě proměnné CESTA.

    51. Napište program supervirus, jehož spuštění infikuje vaše soubory virem vyvinutým v předchozí úloze a pokaždé, když se přihlásíte do systému, dojde k pokusu infikovat soubory vašich spolubojovníků. Program supervirus vymaže se po prvním spuštění.

    52. Napište program superantivirus, který detekuje a kompletně „vyléčí“ (pokud je uvedena příslušná volba) všechny soubory v zadaném adresáři a jeho podadresářích od všech vyvinutých virů.

    Příkazový shell v UNIXu je rozhraní příkazového řádku Unixové operační systémy, to znamená, že provádí příkazy zadané uživatelem nebo které jsou načteny ze souborů. Takové soubory jsou příkazy shellu se nazývají shell skripty (skripty, programy). Tyto skripty nejsou kompilovány, ale jsou interpretovány shellem. To znamená, že shell čte skript od začátku do konce, řádek po řádku, hledá tam zadané příkazy a provádí je; na rozdíl od tohoto přístupu překladač převede celý program do podoby vhodné pro strojové spuštění - pak lze soubor s takovým kódem použít v shell skriptu. Vlastnosti jazyk shellu - mnoho operací, které jsou zabudovány v tradičních programovacích jazycích, se provádí voláním externích programů.

    Jednou z úloh shellu je poskytnout uživatelské prostředí, které lze přizpůsobit pomocí konfiguračních souborů.

    Typy mušlí

    UNIX poskytuje na výběr několik různých shellů:

    sh nebo Born shell ( Bourne Shell) je jedním z prvních shellů, které se používají v prostředích podobných UNIXu. Toto je základní skořepina, malá a s malou sadou funkcí. Je to de facto standardní shell a je přítomen na každém systému UNIX. V Linuxu může být /bin/sh symbolickým odkazem na bash. To se provádí pro zajištění kompatibility s aplikacemi UNIX. bash nebo nová skořápka Born ( Bourne znovu Shell) standardní prostředí Linuxu. Většina uživatelů Linuxu má přesně nainstalovaný standardní shell bash. Svým způsobem bash- jedná se o nadstavbu sh, soubor dodatků a přídavné moduly. Nový Bourne shell je tedy kompatibilní s běžným Bourne shell: spuštěné příkazy sh, bude fungovat také v bash, ale ne nutně naopak. csh, nebo C-orientovaný shell ( C Shell) syntaxe tohoto shellu je podobná programovacímu jazyku C. Programátoři obvykle používají tento shell. tcsh nebo vylepšený obal orientovaný na C ( Turbo C Shell) nadstavba přes csh. ksh nebo Korn shell ( Korn Shell) byl napsán na začátku 80. let a využíval nejlepších vlastností Bourne shellu a csh té doby. Existuje doplněk pro shell Bourne a zaručuje provádění skriptů napsaných pro shell Bourne. Standard POSIX je omezený shell Korn.

    Soubor /etc/shells obsahuje informace o shellech přítomných v systému:

    Mia: ~> cat /etc/shells /Bin/bash /Bin/sh /Bin/tcsh /Bin/csh

    Uživatelský shell se nastavuje v souboru /etc/passwd. Například řetězec uživatele mia který má nainstalovaný shell bash :

    Mia: L2NOfqdlPrHwE: 504:504: Mia Maya:/home/mia:/bin/bash

    Přepínání mezi mušlemi

    Uživatel může kdykoli spustit další shell. Pokud například běží ve výchozím nastavení pod ovládacími prvky bash, a je pro něj pohodlnější provádět některé akce pod skořápkou csh, spustí tento shell

    Mia:~>csh

    Abych se dostal zpět pod kontrolu bash musíte zadat příkaz exit.

      přání (UNIX shell)- Tento termín má jiné významy, viz Přání. wish (Windowing Shell) je jednoduchý skriptovaný nebo interaktivní příkazový shell UNIX pro X Window System a Mac OS X. Poskytuje uživatelům možnost ovládat komponenty ... ... Wikipedia

      příkazový shell- Shell operačního systému skořápka) interpret příkazů operačního systému (OS), který poskytuje rozhraní pro interakci uživatele se systémovými funkcemi. Obecně se shelly rozlišují se dvěma typy rozhraní pro ... Wikipedia

      UNIX shell

      Unixový shell- UNIX příkazový shell (anglický unixový shell, často jen "shell" nebo "sh") příkazový interpret, používaný v operačních systémech rodiny kompatibilních shellů POSIX, pocházející z Bourne shellu, který se objevil v Unixu verze 7. Obsah 1 ... ... Wikipedia

      Unix Shell- UNIXový shell (anglicky Unix shell, často jen "shell" nebo "sh") je příkazový interpret používaný v operačních systémech rodiny kompatibilních shellů POSIX pocházející z Bourne shellu, který se objevil v Unixu verze 7. Obsah 1 . ... Wikipedie

      Příkazový řádek- Požadavek na interpret příkazového řádku je přesměrován sem. Je potřeba samostatný článek na téma "Interpret příkazového řádku". Vzhled mušle (eng. Co ... Wikipedia

      UNIXový systém V- Mnoho potomků Systému V ... Wikipedie

      Unixový systém V- Mnoho potomků System V AT T UNIX System V je jednou z verzí operačního systému v roce 1989. Existovaly 4 hlavní verze Release 1, 2, 3 a 4. System V Release 4 (SVR4) byl nejúspěšnější a nejpopulárnější a sloužil jako zdroj pro ... ... Wikipedii

      UNIX - Rodokmen UNIXové systémy UNIX (čti Unix) je rodina přenosných, multitaskingových a víceuživatelských ... Wikipedia

      Unix- Genealogický strom UNIXových systémů UNIX (čti Unix) je skupina přenosných, multitaskingových a víceuživatelských operačních systémů. První UNIXový systém byl vyvinut v roce 1969 v divizi Bell Labs společnosti AT T. Od té doby byl vytvořen ... Wikipedia

    knihy

    • Shell skripty. Linux, OS X a Unix. Průvodce, Taylor Dave. Skripty Shell pomáhají správci systému a programátory k automatizaci rutinní úkoly od doby, kdy se objevily první počítače. Od vydání prvního ... Koupit za 1217 UAH (pouze Ukrajina)
    • Shell skripty. Linux, OS X a Unix, Taylor Dave, Perry Brandon. Skripty Shell pomáhají systémovým administrátorům a programátorům automatizovat rutinní úlohy již od prvních počítačů. Od vydání prvního…
    • tutorial

    Proč a pro koho je článek určen?

    Zpočátku to byla připomínka pro studenty, kteří začínají pracovat se systémy podobnými unixu. Jinými slovy, článek je určen pro ty, kteří nemají žádné předchozí zkušenosti s unixovým příkazovým řádkem, ale z toho či onoho důvodu se chtějí nebo potřebují naučit, jak s ním efektivně pracovat.

    Převyprávění manů (dokumentace) nebude a článek jejich čtení nijak neruší ani nenahrazuje. Místo toho budu mluvit o hlavních věcech (příkazy, triky a principy), kterým musíte rozumět od samého začátku práce v unixovém shellu, abyste pracovali efektivně a příjemně.

    Článek se zabývá plnohodnotnými unixovými prostředími, s plně funkčním shellem (nejlépe zsh nebo bash) a poměrně širokou sadou standardní programy.

    Co je shell

    Shell (shell, aka „příkazový řádek“, aka CLI, aka „konzola“, aka „terminál“, aka „černé okno s bílými písmeny“) je textové rozhraní pro komunikaci s operační systém(No, přísně vzato, je program, která takové rozhraní poskytuje, ale nyní tento rozdíl není významný).

    Obecně práce přes shell vypadá takto: uživatel (tedy vy) zadá příkaz z klávesnice, stiskne Enter, systém příkaz provede, výsledek provedení zapíše na obrazovku a opět čeká na další příkaz být zadán.

    Typický vzhled skořepiny:

    Shell je hlavní způsob interakce se všemi serverovými systémy typu Unix.

    Kde se nacházejí systémy příkazového řádku?

    Kde na vás může čekat unixový shell, oblíbené možnosti:
    • macOS (bash);
    • vzdálený přístup k serveru pro práci nebo pro osobní webový projekt;
    • domácí souborový server se vzdáleným přístupem;
    • Ubuntu, PC-BSD na notebooku/stolním počítači – systémy podobné Unixu se dnes snadno instalují a používají.

    Jaké úlohy je rozumné řešit pomocí shellu?

    Přirozené úkoly, pro které je skořápka vhodná, užitečná a nepostradatelná:
    • interaktivní práce v terminálu:
      • kompilace, spouštění úloh prostřednictvím make;
      • porovnávání textových souborů;
      • rychlá ad-hoc analýza dat (počet jedinečných IP v logu, rozdělení záznamů po hodinách/minutách atd.);
      • jednorázové hromadné akce (zabít mnoho procesů; pokud pracujete se systémem správy verzí, zvrátit nebo vyřešit spoustu souborů);
      • diagnostika toho, co se děje v systému (semafory, zámky, procesy, deskriptory, místo na disku atd.);
    • skriptování:
      • nastavovací skripty, u kterých se nemůžete spolehnout na spuštění jiných interpretů – ne pro začátečníky;
      • funkce pro přizpůsobení interaktivního shellu (ovlivnění výzvy, změna adresáře, nastavení proměnných prostředí) - také ne úplně pro začátečníky;
      • jednorázové skripty, jako je hromadné překódování souborů;
      • makefiles.

    Absolutně první kroky

    Začínáme: Přihlášení a odhlášení

    Ujistěte se, že přesně víte, jak spustit shell a jak jej opustit.

    Pokud používáte počítač s nainstalovaným Ubuntu, budete muset spustit program Terminál. Na konci práce můžete okno jednoduše zavřít.

    V systému MacOS také spusťte Terminál.

    Pro přístup ke vzdálenému serveru použijte ssh (pokud máte MacOS, Ubuntu nebo jiný unixový systém lokálně) nebo putty (pokud máte Windows).

    kdo jsem, kde jsem?

    Spusťte následující příkazy:
    • hostname - zobrazuje název stroje (serveru), na kterém se právě nacházíte;
    • whoami - zobrazí vaše přihlašovací jméno (vaše jméno v systému);
    • tree -d / |less - pseudografický obraz stromu adresářů na počítači; výstup z rolování - q ;
    • pwd - zobrazí adresář, ve kterém se právě nacházíte; na příkazovém řádku nemůžete být "jen tak", nutně jste v nějakém adresáři (=aktuální adresář, pracovní adresář). Pravděpodobně je aktuální pracovní adresář zobrazen ve vaší výzvě (prompt).
    • ls - seznam souborů v aktuálním adresáři; ls /home - seznam souborů v zadaném adresáři;

    Historie příkazů (historie)

    Důležitou vlastností plnohodnotného příkazového řádku je historie příkazů.

    Spusťte několik příkazů: hostname , ls , pwd , whoami . Nyní stiskněte klávesu nahoru. Předchozí příkaz se objevil ve vstupním řádku. Klávesy nahoru a dolů lze použít k pohybu vpřed a vzad v historii. Když přejdete na název hostitele , stiskněte klávesu Enter - příkaz bude proveden znovu.

    Příkazy z historie lze nejen znovu spouštět, ale i upravovat. Projděte historií k příkazu ls, přidejte k němu klávesu -l (ukázalo se ls -l , před mínusem je mezera, za ním ne). Stiskněte Enter - upravený příkaz bude proveden.

    Listování historií, editace a opětovné spouštění příkazů jsou nejtypičtější akce při práci v příkazovém řádku, zvykněte si.

    kopírovat vložit

    Příkazový řádek je velmi textově orientovaný: příkazy jsou textové, vstupními daty pro většinu standardních programů je text, výsledkem práce je nejčastěji také text.

    Na textu je hezké, že jej lze kopírovat a vkládat, a to platí i pro příkazový řádek.

    Zkuste spustit datum +"%y-%m-%d, %A"
    Zadali jste to úplně ručně nebo jste to zkopírovali z článku? Ujistěte se, že jej můžete zkopírovat, vložit do terminálu a spustit.

    Poté, co se naučíte používat man ", ujistěte se, že můžete zkopírovat a spustit ukázkové příkazy z nápovědy. Chcete-li to zkontrolovat, podívejte se do nápovědy pro datumový program pro sekci PŘÍKLADY, zkopírujte a spusťte první uvedený příklad (stačí v případ: znak dolaru není součástí příkazu , jedná se o podmíněný obrázek vstupní výzvy).

    Jak přesně zkopírovat text z terminálu a vložit jej do terminálu, záleží na vašem systému a jeho nastavení, tak dejte univerzální návod bohužel to nepůjde. Na Ubuntu vyzkoušejte toto: kopírování je pouze výběr myší, vkládání prostředním tlačítkem myši. Pokud to nefunguje, nebo máte jiný systém - podívejte se na internet nebo se zeptejte zkušenějších přátel.

    Klávesy a možnosti

    Při zkoumání historie příkazů jste se již setkali s tím, že příkaz ls má minimálně dvě možnosti. Pokud to nazvete jen tak, vytiskne jednoduchý seznam:

    [e-mail chráněný]: ~/shell-survival-quide> ls Makefile shell-first-steps.md shell-first-steps.pdf shell-survival-quide.md shell-survival-quide.pdf
    Pokud přidáte přepínač -l, zobrazí se podrobné informace pro každý soubor:

    [e-mail chráněný]: ~/shell-survival-quide> ls -l celkem 332 -rw-rw-r-- 1 akira akira 198. února 13 11:48 Makefile -rw-rw-r-- 1 akira akira 15107 14. února 22:26 shell -first-steps.md -rw-rw-r-- 1 akira akira 146226 13. února 11:49 shell-first-steps.pdf -rw-rw-r-- 1 akira akira 16626 13. února 11:45 shell-survival -quide.md -rw-rw-r-- 1 akira akira 146203 13. února 11:35 shell-survival-quide.pdf
    Toto je velmi typická situace: pokud jsou do volání příkazu přidány speciální modifikátory (přepínače, volby, parametry), chování příkazu se změní. Porovnejte: strom / a strom -d / , název hostitele a název hostitele -f .

    Kromě toho mohou příkazy jako parametry používat názvy souborů, adresářů nebo pouze textové řetězce. Snaž se:

    ls -ld /home ls -l /home grep root /etc/passwd

    muž

    man - Nápověda k příkazům a programům dostupným na vašem počítači, stejně jako systémová volání a standardní knihovna C.

    Zkuste: man grep , man atoi , man chdir , man man .

    Posouvání vpřed a vzad se provádí pomocí tlačítek „nahoru“, „dolů“, „PageUp“, „PageDown“, opuštění zobrazení nápovědy se provádí tlačítkem q. Hledání konkrétního textu v článku nápovědy: stiskněte / (lomítko), zadejte hledaný text a stiskněte Enter. Přejít na další výskyty - klávesa n.

    Všechny články nápovědy jsou rozděleny do kategorií. Nejdůležitější:

    Je nutné uvést, z jaké kategorie se má nápověda zobrazovat v případě shody jmen. Například man 3 printf popisuje funkci ze standardní knihovny C a man 1 printf popisuje konzolový program stejného jména.

    Pomocí příkazu man -k můžete zobrazit seznam všech článků nápovědy dostupných na počítači. (tečka je také součástí týmu).

    méně

    Když je potřeba zobrazit velmi dlouhý text (obsah souboru, dlouhý muž atd.) v malém okně terminálu, používají se speciální programy „pager“ (od slova page / page, tedy stránkování). Nejoblíbenější scroller je méně a je to to, co vám poskytuje rolování, když čtete mans.

    Zkuste a porovnejte chování:

    cat /etc/bash.bashrc cat /etc/bash.bashrc |méně

    Soubor můžete okamžitě přenést do scrolleru v parametrech:

    Méně /etc/bash.bashrc

    Listování nahoru a dolů - tlačítka "nahoru", "dolů", "PageUp", "PageDown", exit - tlačítko q. Vyhledání konkrétního textu: stiskněte / (lomítko), zadejte hledaný text a stiskněte Enter. Přejít na další výskyty - klávesa n. (Poznáváte poučení o člověku? Není divu, méně se také používá k zobrazení nápovědy.)

    Práva

    S jakýmkoli souborem nebo adresářem je spojena sada „práv“: právo číst soubor, právo zapisovat do souboru, právo soubor spustit. Všichni uživatelé jsou rozděleni do tří kategorií: vlastník souboru, skupina vlastníků souboru, všichni ostatní uživatelé.

    Oprávnění k souboru můžete zobrazit pomocí ls -l . Například:

    > ls -l Makefile -rw-r--r-- 1 akira studenti 198 13. února 11:48 Makefile
    Tento výstup znamená, že vlastník (akira) může číst a zapisovat soubor, skupina (studenti) může pouze číst a všichni ostatní v uživateli mohou také pouze číst.

    Pokud se vám při práci zobrazí zpráva o odmítnutí oprávnění, znamená to, že nemáte dostatečná oprávnění k objektu, se kterým jste chtěli pracovat.

    Přečtěte si více v man chmod.

    STDIN, STDOUT, potrubí (potrubí)

    Každý vykonávaný program má přiřazeny 3 standardní datové toky: vstupní datový tok STDIN , výstupní datový tok STDOUT , chybový tok STDERR .

    Spusťte program wc, zadejte Good day today , stiskněte Enter, napište good day , stiskněte Enter, stiskněte Ctrl+d. Program wc zobrazí statistiku počtu písmen, slov a řádků ve vašem textu a ukončí se:

    > wc dobrý den dnes dobrý den 2 5 24
    V tento případ zadali jste dvouřádkový text STDIN programu a ve STDOUT jste obdrželi tři čísla.

    Nyní spusťte příkaz head -n3 /etc/passwd , měl by vypadat nějak takto:

    > head -n3 /etc/passwd root:x:0:0:root:/root:/bin/bash démon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin bin:x: 2:2:bin:/bin:/usr/sbin/nologin
    V tomto případě program head nečetl nic ze STDIN, ale zapsal tři řádky do STDOUT.

    Představte si to takto: program je potrubí, do kterého proudí STDIN a vytéká STDOUT.

    Nejdůležitější vlastností unixové příkazové řádky je, že „potrubí“ programy mohou být vzájemně propojeny: výstup (STDOUT) jednoho programu může být předán jako vstup (STDIN) jinému programu.

    Taková konstrukce propojených programů se anglicky nazývá pipe (pipe), v ruštině - dopravník nebo potrubí.

    Sloučení programů do potrubí se provádí pomocí symbolu | (svislý pruh)

    Spusťte příkaz head -n3 /etc/passwd |wc , dostanete něco takového:

    > head -n3 /etc/passwd |wc 3 3 117
    Stalo se toto: program head vytiskl tři řádky textu do STDOUT, který se okamžitě dostal do vstupu wc programu, který zase spočítal počet znaků, slov a řádků v přijatém textu.

    Můžete kombinovat tolik programů, kolik chcete, do potrubí. Můžete například přidat další program wc do předchozího kanálu, který bude počítat, kolik slov a písmen bylo ve výstupu prvního wc:

    > head -n3 /etc/passwd |wc |wc 1 3 24

    Kompilace kanálů (pipes) je velmi běžná věc při práci na příkazovém řádku. Příklad, jak se to dělá v praxi, naleznete v části Sestavení jednolinkového potrubí.

    Přesměrování I/O

    Výstup (STDOUT) programu může být nejen přesměrován do jiného programu, ale jednoduše zapsán do souboru. Toto přesměrování se provádí pomocí > (znaménko větší než):

    Datum > /tmp/today.txt
    V důsledku provedení tohoto příkazu se na disku objeví soubor /tmp/today.txt. Prohlédněte si jeho obsah pomocí cat /tmp/today.txt

    Pokud soubor se stejným názvem již existoval, jeho starý obsah bude zničen. Pokud soubor neexistuje, bude vytvořen. Adresář, ve kterém je soubor vytvořen, musí existovat před provedením příkazu.

    Pokud nechcete soubor přepsat, ale přidat výstup na jeho konec, použijte >> :

    Datum >> /tmp/today.txt
    Zkontrolujte, co je nyní zapsáno v souboru.

    Kromě toho můžete programu předat jakýkoli soubor místo STDIN. Snaž se:

    toaleta

    Co dělat, když něco není jasné

    Pokud narazíte na chování systému, kterému nerozumíte, nebo chcete dosáhnout určitého výsledku, ale nevíte jak, doporučuji vám postupovat v následujícím pořadí (mimochodem, to platí nejen pro shelly):
    • formulujte otázku nebo úkol co nejjasněji - není nic těžšího než vyřešit „nevím co“;
    • nezapomeňte, zda jste se již setkali se stejným nebo podobným problémem - v tomto případě stojí za to vyzkoušet řešení, které fungovalo minule;
    • přečtěte si příslušné man-s (pokud rozumíte, kteří man-s jsou ve vašem případě vhodné) - můžete najít vhodné příklady použití příkazů, potřebné volby nebo odkazy na další příkazy;
    • zamyslete se: je možné úkol trochu změnit? - možná mírnou změnou podmínek získáte problém, který již víte, jak vyřešit;
    • položte svou dobře definovanou otázku ve vyhledávači - možná odpověď najdete na Stack Overflow nebo jiných stránkách;
    Pokud nic z výše uvedeného nepomohlo - vyhledejte radu od učitele, zkušeného kolegy nebo přítele. A nebojte se klást „hloupé“ otázky – není ostuda nevědět, je ostuda se nezeptat.

    Pokud jste vyřešili obtížný problém (sami, pomocí internetu nebo jiných lidí) - zapište si své řešení pro případ, že byste vy nebo vaši spolubojovníci měli znovu stejný problém. Můžete nahrávat do jednoduchého textového souboru, v Evernote, publikovat na sociálních sítích.

    Pracovní metody

    Kopírování a vkládání- z man-s, z článků na StackOverflow atd. Příkazový řádek se skládá z textu, použijte toto: zkopírujte a použijte příklady příkazů, zapište si úspěšné nálezy do paměti, publikujte je na twitteru a blozích.

    Vytáhněte předchozí příkaz z historie, přidejte další příkaz do potrubí, spusťte, opakujte.Cm. Viz také část "Sestavení jednolinkového potrubí".

    Základní příkazy

    • změna adresáře: cd ;
    • prohlížení obsahu souborů: kočka , méně , hlava , ocas ;
    • manipulace se soubory: cp , mv , rm ;
    • výpis adresáře: ls , ls -l , ls -lS ;
    • adresářová struktura: strom , strom -d (můžete předat adresář jako parametr);
    • hledání souboru: najít . -název ... ;

    Analytics

    • wc, wc-l;
    • sort -k - řazení podle zadaného pole;
    • sort -n - číselné řazení;
    • diff - porovnání souborů;
    • grep , grep -v , grep -w , grep "\ " , grep -E - hledání textu;
    • uniq , uniq -c - jedinečné řetězce;
    • awk - ve variantě awk "(tisk $1)" pro ponechání pouze prvního pole každého řádku lze $1 změnit na $2 , $3 atd.;

    Diagnostika systému

    • ps axuww - informace o procesech (spuštěných programech) běžících na stroji;
    • top - interaktivní pohled na procesy nejvíce náročné na zdroje;
    • df - použité a volné místo na disku;
    • du - celková velikost souborů v adresáři (rekurzivně s podadresáři);
    • strace , ktrace - který systém nazývá procesem;
    • lsof - jaké soubory proces používá;
    • netstat -na , netstat -nap - jaké porty a zásuvky jsou v systému otevřené.

    Některé programy možná nemáte, musíte je nainstalovat dodatečně. Některé možnosti těchto programů jsou navíc dostupné pouze privilegovaným uživatelům (root "y").

    Hromadné a poloautomatické provádění

    Nejprve tuto část přeskočte, tyto příkazy a konstrukce budete potřebovat, až se dostanete k jednoduchému skriptování shellu.
    • test - podmínky kontroly;
    • při čtení - cyklování řádků STDIN ;
    • xargs - náhrada řetězců ze STDIN do parametrů zadaného programu;
    • seq - generování posloupností přirozených čísel;
    • () - kombinovat výstup několika příkazů;
    • ; - dělat jeden po druhém;
    • && - provést, pokud byl první příkaz úspěšně dokončen;
    • || - provést, pokud selže první příkaz;
    • tee - duplicitní výstup programu do STDOUT a do souboru na disku.

    Smíšený

    • datum - aktuální datum;
    • curl - stáhne dokument na zadané adrese URL a zapíše výsledek do STDOUT;
    • dotyk - aktualizovat datum změny souboru;
    • zabít - poslat signál procesu;
    • true - nedělá nic, vrací true, užitečné pro organizování věčných smyček;
    • sudo - spusťte příkaz jako root "a.

    Sestavení jednovrstvého potrubí

    Podívejme se na příklad skutečné úlohy: chceme zabít všechny procesy task-6-server běžící jménem aktuálního uživatele.

    Krok 1.
    Pochopte, který program produkuje přibližně potřebná data, i když ne v jejich čisté podobě. Pro náš úkol se vyplatí získat seznam všech procesů v systému: ps axuww. Běh.

    Krok 2
    Podívejte se na přijatá data očima, vymyslete filtr, který vám některá nepotřebná data vyhodí. Často je to grep nebo grep -v . Pomocí klávesy "Nahoru" vytáhněte předchozí příkaz z historie, přiřaďte mu vymyšlený filtr a spusťte jej.

    Ps axuww |grep `whoami`
    - pouze procesy aktuálního uživatele.

    Krok 3
    Opakujte krok 2, dokud nezískáte čistá data, která chcete.

    "
    - všechny procesy s požadovaným názvem (plus možná nadbytečné jako vim task-6-server.c atd.),

    Ps axuww |grep `whoami` | grep "\ " | grep -v vim ps axuww |grep `whoami` | grep "\ " | grep -v vim | grep -v less
    - pouze procesy s požadovaným názvem

    Ps axuww |grep `whoami` | grep "\ " | grep -v vim |grep -v less |awk "(tisk $2)"

    Pids požadovaných procesů, krok 3 dokončen

    Krok 4
    Použijte vhodný konečný manipulátor. Pomocí klávesy "Nahoru" vytáhneme předchozí příkaz z historie a přidáme zpracování, které dokončí řešení problému:

    • |wc -l pro počítání počtu procesů;
    • >pids pro zápis pids do souboru;
    • |xargs kill -9 procesů ukončení.

    Úkoly na školení

    Chcete si procvičit nové dovednosti? Vyzkoušejte následující úkoly:
    • získat seznam všech souborů a adresářů ve vašem domovském adresáři;
    • získat seznam všech mužských článků z kategorie 2 (systémová volání);
    • spočítejte, kolikrát se slovo grep objeví na manuálové stránce grep;
    • spočítat, kolik procesů aktuálně běží jako root;
    • zjistit, který příkaz se vyskytuje v maximálním počtu kategorií nápovědy (man);
    • spočítejte, kolikrát se slovo var vyskytuje na stránce ya.ru.
    Nápověda: budete potřebovat find , grep -o , awk "(tisk $1)" , regulární výrazy v grep , curl -s .

    Co dál studovat?

    Pokud se vám začne líbit příkazový řádek, nepřestávejte, neustále zlepšujte své dovednosti.

    Zde je několik programů, které se určitě budou hodit, pokud žijete na příkazovém řádku:

    • najít se složitými možnostmi
    • vhodný
    • lokalizovat
    • telnet
    • netcat
    • tcpdump
    • rsync
    • obrazovka
    • zgrep, zless
    • visudo
    • crontab -e
    • poslat mail
    Časem se také vyplatí naučit se skriptovací jazyk, jako je perl nebo python, nebo dokonce oba.

    kdo to potřebuje?

    Vyplatí se dnes učit skriptování příkazového řádku a shellu? Rozhodně to stojí za to. Uvedu jen pár příkladů požadavků Facebooku na kandidáty, kteří chtějí získat práci na FB.

    Anotace: Koncept příkazového shellu. Přehled příkazových shellů. příkazový shell bash. Funkce práce (historie příkazů, operátor "!", akce po stisknutí klávesy ). Multitasking v konzoli. Úkoly. Správa úkolů. Proměnné prostředí půlnočního velitele

    Postup lekce

    1. Ve světě Linuxu a Unixu je práce na počítači neoddělitelně spjata s pojmem příkazový shell- program, který umožňuje uživateli komunikovat se systémem zadáváním a prováděním příkazů. Nicméně, příkazový shell je pravidelný program. Můžete to dokázat nastavením jako výchozí shell v souboru passwd pro uživatele jiný program. Ale aby to systém poznal jako shell, musíte přidat absolutní název souboru /etc/shells.

    Linux je dodáván s několika příkazovými shelly, jejich složení se může lišit v závislosti na distribuci, ale vždy můžete najít:

    Bourne Shell (sh) - nejstarší a nejběžnější příkazový shell pro unixové systémy. Neexistuje jediný unixový systém, kde by se nepoužíval.

    Bourne Again Shell (bash) - rozšířený Bourne Shell. Má spoustu příjemných předností, a proto je v poslední době tak populární. Je to "výchozí" shell pro téměř všechny distribuce Linuxu.

    Populární skiny jsou také:

    csh- shell, jehož příkazový systém je blízký programovacímu jazyku C

    tcsh je shell, jehož příkazový systém je blízký programovacímu jazyku Tcl.

    zsh je pravděpodobně nejvýkonnější shell. Jedná se o rozšíření sh (bourne shell) .

    Vzhledem k tomu, že Linux používá bash "ve výchozím nastavení", budeme o něm mluvit.

    2. příkazový shell bash byl původně freewarová alternativa k Bourne Shell. Později, když jeho schopnosti rostly, pak začal být považován za samostatný produkt. Hlavní rysy bash jsou:

    Tabulka 1.1.
    Příležitost Komentář
    1 Editace čar Možnost upravit zadaný příkaz místo jeho opětovného přepisování
    2 Organizace kanálu Příležitost I/O přesměrování, organizování kanálů mezi úkoly
    3 Snadnost použití Použití aliasů příkazů, historie příkazů, automatické dokončování
    4 Řízení práce Schopnost vytvářet a spravovat úlohy na pozadí
    5 Flexibilita Použití souborů přihlašovacích skriptů pro každého uživatele zvlášť, proměnné prostředí

    Přesměrování I/O a kanály budou popsány později v lekci 8. Proto tento bod vynecháme. Ale pojďme se bavit o funkcích práce v bash, o výhodách, které poskytuje.

    Bash automaticky zapisuje všechny příkazy zadané uživatelem do souboru ~/.bash_history. Ke správě tohoto souboru se používá příkaz historie. historie je vestavěný příkaz bash. To znamená, že neexistuje žádný spustitelný soubor odpovídající tomuto příkazu. Sebe příkazový shell provádí všechny akce. Zadáno bez voleb, jednoduše vypíše všechny příkazy uložené v tomto souboru a je identické s cat ~/.bash_history .

    Historie příkazů slouží ke zjednodušení sady často používaných příkazů. Historii příkazů lze v seznamu třídit pomocí kláves <вверх>A<вниз> .

    Další způsob je napsat ! a povel start a stiskněte . Bude proveden poslední příkaz z historie, jehož první písmena odpovídají zadaným písmenům. Například:

    $ !/usr /usr/bin/perl ./ptest.pl OK $ !xfonts bash: !xfonts: událost nenalezena $

    Jak ale zrychlit zadávání, když příkaz, který potřebujeme, ještě není v historii? V tomto případě nám pomůže klíč . Po zadání několika prvních písmen příkazu (nebo cesty k souboru) stiskněte A bash automaticky dokončí váš příkaz (nebo prvek cesty). V případě, že se shoduje několik souborů nebo se neshoduje žádný soubor, systém vydá zvukový signál. Pokud tlačítko stiskněte znovu, když se vejde několik souborů - systém zobrazí seznam, a když žádný - zopakujte pípnutí

    3. Od první lekce byste si měli pamatovat, že Linux je multitaskingové prostředí. Dosud jste však stále nemohli využívat jeho multitasking. Na první pohled se zdá, že konzole neumožňuje využívat multitaskingové možnosti systému a pouze v grafickém prostředí lze spouštět dva a více programů současně. Ale není! Konzole je také multitaskingová.

    Za prvé, můžete otevřít více konzol otevřením programu v každé z nich. Přepínání mezi konzolami bude probíhat pomocí kláves ctrl+ , Kde X je číslo konzole.

    A dokonce i v jedné konzoli s pomocí příkazů pro řízení úloh můžete plně využít všech výhod multitaskingového systému.

    - kombinace kláves, která vysílá nezachytitelný signál do procesu sigstop. Umožňuje zastavit provádění procesu a přenést řízení na příkazový řádek.

    příkaz & - symbol & za příkazem umožňuje jeho spuštění na pozadí.

    joby – Zobrazí seznam aktuálních úloh prostředí.

    bg<#j>– staví úlohu #j do pozadí. Předtím musí být úloha zastavena kombinací kláves . Pokud má v tuto chvíli tlumočník pouze jeden úkol, lze číslo vynechat.

    fg<#j>- přepne úlohu #j do režimu provádění na popředí. Úloha musí být zastavena kombinací kláves nebo být v pozadí. Pokud má v tuto chvíli tlumočník pouze jeden úkol, lze číslo vynechat.

    $ man bash ^Z + Stopped man bash $ vim ^Z vim + Stopped vim $ bg 1 + man bash & $ jobs + Stopped man bash + Stopped vim $ fg 2 + vim $ fg + man bash $

    4. Proměnné prostředí– systémové informace udávající vaše preference, jako např textový editor výchozí, hledat cesty pro spustitelné soubory atd., stejně jako identity uživatelů, systému a prostředí, jako je Uživatelské jméno, verze Linuxu atd. používané shellem a dalšími programy.

    Proměnné běžně používané uživatelem jsou:

    PATH - proměnná obsahuje cesty, ve kterých má systém hledat spustitelné soubory, pokud je plná resp relativní cesta jim.

    PWD - proměnná obsahuje celý název aktuálního adresáře.

    HOME - proměnná obsahuje úplnou cestu domovský adresář uživatele.

    HOSTNAME - proměnná obsahuje název počítače.

    LOGNAME - obsahuje Uživatelské jméno

    SHELL - obsahuje název příkazového shellu spuštěného v aktuální relaci.

    USER - obsahuje Uživatelské jméno Relace, která je aktuálně otevřená.

    Seznam proměnných nainstalovaných v systému lze zobrazit příkazem export, zadaným bez parametrů.

    Bash shell má své vlastní proměnné. Aby se z lokálních proměnných staly systémové proměnné, musí být exportovány pomocí stejného exportního příkazu. Například:

    $ export deklarovat -x HOME="/home/gserg" deklarovat -x HOSTNAME="WebMedia" deklarovat -x LANG="cs_RU.KOI8-R" deklarovat -x LOGNAME="gserg" deklarovat -x PATH="/bin: /usr/bin:/usr/local/bin:/home/gserg/bin" deklarovat -x PWD="/home/gserg" deklarovat -x SHELL="/bin/bash" deklarovat -x TERM="Eterm" deklarovat -x USER="gserg" $ EDITOR=/bin/vim $ export EDITOR $ export deklarovat -x EDITOR="/bin/vim" deklarovat -x HOME="/home/gserg" deklarovat -x HOSTNAME="WebMedia" deklarovat -x LANG="ru_RU.KOI8-R" deklarovat -x LOGNAME="gserg" deklarovat -x PATH="/bin:/usr/bin:/usr/local/bin:/home/gserg/bin:" deklarovat - x PWD="/home/gserg" deklarovat -x SHELL="/bin/bash" deklarovat -x TERM="Eterm" deklarovat -x USER="gserg" $

    tým odstaveno odstraní systémovou proměnnou. Například:

    $ unset EDITOR $ export deklarovat -x HOME="/home/gserg" deklarovat -x HOSTNAME="WebMedia" deklarovat -x LANG="cs_RU.KOI8-R" deklarovat -x LOGNAME="gserg" deklarovat -x PATH=" /bin:/usr/bin:/usr/local/bin:/home/gserg/bin:" deklarovat -x PWD="/home/gserg" deklarovat -x SHELL="/bin/bash" deklarovat -x TERM= "Eterm" deklaruje -x USER="gserg" $

    5. V dnešní lekci vám představíme další, trochu nestandardní, příkazový shell půlnoční velitel. Není příkazový shell v obvyklém smyslu. Jedná se o správce textových souborů - analogový velitel Norton nebo Daleko. půlnoční velitel spusťte příkazem mc. Budeme mluvit o jeho schopnostech.

    Obrazovka Půlnoční velitel" rozdělena na dvě části. Téměř celý prostor obrazovky zabírají dva panely se seznamem adresářů a souborů. Ve výchozím nastavení je druhý řádek ve spodní části obrazovky příkazový řádek, kde můžete spouštět normální příkazy shellu, a spodní řádek zobrazuje rady funkčních kláves ( F1-F10). Horní řádek symbolů obsahuje nabídku, pomocí které lze provádět mnoho funkcí. Chcete-li použít nabídku, můžete kliknout na požadovanou položku nebo stisknout klávesu F9 a pomocí kláves ovládání kurzoru vyberte požadovanou položku.

    Panely půlnoční velitel umožňují prohlížení dvou adresářů současně. Jeden z panelů je aktivní (ve smyslu, že uživatel může provádět určité akce se soubory a adresáři, které se v něm nacházejí). V aktivním panelu je zvýrazněn název jednoho ze souborů nebo adresáře a název panelu v horním řádku je zvýrazněn barevně. Název titulu je stejný jako název aktuálně zobrazeného adresáře. Téměř všechny operace se provádějí v aktivním panelu. Některé operace jako převod resp kopírování souborů použijte pasivní panel jako místo pro kopírování, přenos atd.

    Nyní si povíme něco o základních klávesových zkratkách, které vám pomohou pracovat Půlnoční velitel "ohm.

    klávesy se používají ke změně aktivního panelu nebo +

    pro označení souboru stiskněte nebo +

    klikněte pro pomoc

    vyvolá prohlížeč souborů

    používáním upravíte soubor

    vám umožní zkopírovat soubor.

    přesunout nebo přejmenovat soubor

    vytvořit adresář

    Klíč smaže soubor a/nebo adresář

    , jak již bylo zmíněno, otevírá přístup do menu.

    - umožňuje opustit půlnoční velitel.

    přesune ukazatel na začátek seznamu souborů,

    - naopak - až na konec seznamu.

    A změní polohu indikátoru na stránce nahoru a dolů.

    Klíč <*> na další klávesnici vám umožní invertovat výběr souborů (neovlivňuje adresáře)

    Klíč <+> na přídavné klávesnici vám umožní označit soubory maskou a <-> zrušte zaškrtnutí souborů podle masky.

    + - aktualizovat obsah adresáře (přečtením z disku nebo ze sítě)

    + - vyměňte pravý a levý panel.

    + - odstranit/vrátit panely.

    Zatímco klávesové zkratky jsou nejlepším nástrojem, jak věci zvládnout Půlnoční velitel "ohm co nejrychleji a nejpohodlněji, pro začátečníky je docela obtížné naučit se je všechny najednou. Chcete-li vyplnit tuto mezeru a přidat další funkce, které nemají klávesové zkratky, půlnoční velitel má menu (volané pomocí F9).

    Menu se skládá z položek: "Levý panel", "Soubor", "Příkaz", "Nastavení", "Pravý panel".

    "Levý/pravý panel"- tyto položky nabídky jsou naprosto stejné. Rozdíly mezi nimi jsou pouze v tom, že provedené akce budou adresovány levému nebo pravému panelu.

    "Formát seznamu"- otevře dialogové okno, ve kterém můžete vybrat pohled, ve kterém se zobrazí seznam souborů / adresářů. Vybírat můžete ze standardních, krátkých a rozšířených formátů. Uživatel v tomto okně však může definovat vzhled panelu i tak, že mu bude vyhovovat zaškrtnutí přepínače "Definováno uživatelem".

    "Rychlý pohled"- přepne panel do režimu automatického prohlížení souborů vybraných na sousedním panelu. Zaostření se automaticky přepne na protější panel.

    "Informace"- přepne panel na zobrazení informací o souboru zvýrazněného v sousedním panelu, jako je umístění, přístupová práva a vlastník, souborový systém a zařízení, na kterém se nachází, počet pevných odkazů spojených s tímto souborem a také informace o zařízení, na kterém je soubor umístěn.

    "Strom"- překládá půlnoční velitel do režimu podobného režimu Průzkumník z OC Windows. V panelu, na který je příkaz aplikován "Strom", je vytvořen adresářový strom, ve kterém se lze pohybovat pomocí šipek ovládání kurzoru, klíče PageUp, PageDown, Home, End. Další panel zobrazuje obsah adresáře zvýrazněného ve stromu.

    "Pořadí řazení"- otevře dialogové okno, ve kterém můžete vybrat atribut, podle kterého budou soubory a adresáře řazeny v seznamu, např. název, přípona, čas úpravy, čas přístupu, čas úpravy atributu, velikost, uzel (na kterém se soubor nachází ). Soubory můžete také ponechat neseřazené, rozlišovat malá a velká písmena nebo řadit v obráceném pořadí.

    "Filtr"- umožňuje vybrat názvy souborů, které se zobrazí v panelu pomocí regulárního výrazu zadaného v dialogovém okně.

    "FTP připojení"- pomocí tohoto příkazu můžete navázat spojení se vzdáleným (nebo i místním) počítačem pomocí protokolu ftp. Pokud je zadána pouze adresa vzdáleného serveru, pak půlnoční velitel se pokusí navázat anonymní spojení. Celý řádek, kterým je uzel určen, je následující:

    ftp:uživatelské_jméno:heslo@adresa_serveru:port/adresář_na_serveru

    Po navázání spojení pracujte s vzdálený souborový systém probíhá podobně jako při práci s místním FS.

    "Spojení shell"- umožňuje otevřít síťové připojení protokolem RYBA (Přenos souborů přes SHell– přenos souborů přes shell). RYBA používá protokoly RSH (Remote SHell)– vzdálený shell ) nebo SSH (Secure Shell)- chráněný plášť, analog RSH, ale s podporou šifrování přenášených dat). Úplný řetězec, pomocí kterého může uživatel určit vzdáleného hostitele, je:

    sh:uživatelské_jméno@adresa_serveru:možnosti/adresář_serveru

    Parametr Uživatelské jméno, možnosti a adresář_na_serveru není požadováno. Li Uživatelské jméno není tedy specifikováno půlnoční velitel se pokusí přihlásit do vzdáleného systému pomocí uživatelského jména používaného na místním počítači.

    "Znovu navštívit"- podobně jako klávesové zkratky + - způsobí aktualizaci seznamu souborů a adresářů v aktuálním panelu jejich opětovným načtením z disku nebo přes síť.

    "Soubor"- sekce menu, jejíž položky poskytují základní funkce pro zpracování souborů a adresářů, jako jsou:

    "Uživatelské menu"- umožňuje vyvolat menu, které si nastavuje uživatel sám. Vyvoláno také klíčem .

    "Prohlédnout soubor"- analog funkce prováděné při lisování . Umožňuje zobrazit zvýrazněný soubor (nebo zadat adresář). Podporuje mnoho formátů, jako jsou textové formáty, archivy, Winword DOC, spustitelné soubory pro Linux atd.

    "Prohlédnout soubor..."- stejné jako v předchozím odstavci, ale neovlivňuje zvýrazněný soubor, ale ten, jehož název a cesta budou zadány v dialogovém okně.

    "Týmový pohled"- umožňuje provést příkaz a zobrazit jej standardní výstup v režimu prohlížení souborů.

    "Editace"- otevře soubor pro úpravy. Jednoduché inline textový editor má dostatečnou sadu vestavěných funkcí pro editaci konfiguračních souborů, zdrojových textů programu atd. a vestavěnou automatickou zvýraznění syntaxe díky nim jsou úpravy pohodlnější a upravitelné texty jsou čitelnější.

    "Kopírovat"- zkopíruje soubor z aktivního panelu do pasivního. Analog funkce volané pomocí . Ve výchozím nastavení je soubor (nebo skupina souborů) zvýrazněný v aktivním panelu považován za zkopírovaný a cílem je adresář otevřený v pasivním panelu. To lze změnit opravou hodnot polí v dialogovém okně, které se otevře po zavolání tohoto příkazu.

    "oprávnění"- umožňuje změnit oprávnění pro soubor (nebo skupinu souborů) v dialogovém okně.

    "Symbolický odkaz"- vytváří symbolický odkaz. Ve výchozím nastavení je soubor zvýrazněný v aktivním panelu považován za adresovatelný a vytvořený odkaz bude mít stejný název a bude umístěn v adresáři otevřeném v pasivním panelu. Uživatel to může změnit v dialogovém okně, které se otevře.

    "Vlastník/skupina"- změní vlastníka a/nebo skupinu, do které soubor/adresář patří.

    "Oprávnění (pokročilé)"- umožňuje současně změnit přístupová práva k souboru a jeho vlastníka a/nebo skupiny. Oprávnění jsou reprezentována jako tři sekvence rwx pro vlastníka, skupinu a všechny uživatele.

    "Přejmenovat"- umožňuje přejmenovat/přesunout soubor . Analog funkce volané pomocí . Ve výchozím nastavení je soubor (nebo skupina souborů) zvýrazněný v aktivním panelu považován za přesunutý/přejmenovaný a cílem je adresář otevřený v pasivním panelu. To lze změnit opravou hodnot polí v dialogovém okně, které se otevře po zavolání tohoto příkazu.

    "Vytvořit adresář"- vytvoří adresář. Analog funkce volané pomocí . Ve výchozím nastavení je adresář vytvořen v adresáři otevřeném v aktivním panelu. To lze změnit zadáním úplné cesty k adresáři, který se má vytvořit v dialogovém okně, které se otevře.

    "Vymazat"- smaže soubor/skupinu souborů/adresář. Analog funkce volané pomocí .

    "Změnit adresář"- změní aktuální adresář. Podobně jako příkaz cd v prostředí Bash. V dialogovém okně se zadá požadovaný adresář.

    "Označit skupinu"- Označí skupinu souborů maskou v adresáři otevřeném v aktivním panelu. Analog funkce volané pomocí <+> na volitelné klávesnici.