Domovská » jak » Průvodce pro začínající uživatele Shell Scripting 3 Další základní příkazy a řetězce

    Průvodce pro začínající uživatele Shell Scripting 3 Další základní příkazy a řetězce

    Naučili jste se vytvářet skripty, používat argumenty a vytvářet smyčky. Nyní se podívejme na některé další základní příkazy, manipulaci s textovými soubory a přesměrování vstupu a výstupu do souborů a dalších příkazů.

    Některé základní užitečné příkazy

    Již jsme vám poskytli základní rozpis shell skriptů a příkladový obrys pro smyčky, ale nezapomeňte se podívat na tyto články, pokud jste doposud zmeškali náš průvodce skriptováním shellů.

    Příkazový řádek je z mnoha důvodů skvělý a přesměrování je jedním z nejvýznamnějších. Kdybyste museli vzít na vědomí a reprodukovat výstup každého příkazu, abyste mohli podniknout další kroky nebo použít něco jiného, ​​pak bychom už dávno zbláznili. Přesměrování nám umožňuje použít tento výstup a uložit ho nebo ho okamžitě použít jako vstup pro jiný příkaz. Můžeme také použít soubory jako vstupy pro další příkazy.

    Než budeme pokračovat, pojďme pokrýt některé základní příkazy, které mohou být užitečné na mnoha různých místech.

    echo - Tento příkaz jednoduše vytiskne (zobrazí) celý argument na příkazovém řádku jako výstup

    echo argument s mezerami

    Jak můžete vidět, speciální znaky musí být "uniklé", takže se s nimi zachází normálně. To se provádí pomocí zpětného lomítka (\) před znakem. Je lepší představit si citace. Příkaz echo pracuje také s proměnnými.

    Jak můžete vidět, jednoduché a dvojité uvozovky se chovají jinak. Pro více informací se podívejte na Jaký je rozdíl mezi jednotlivými a dvojitými uvozovkami v Bash Shell?

    kočka - Tento příkaz zobrazí obsah textových souborů jako výstup.

    cat file_to_be_read

    Řekněme, že vytvoříme tento textový soubor v nano:

    Když použijeme příkaz cat na soubor, můžeme vidět jeho výstup.

    grep - Jedná se o jeden z nejsilnějších a nejužitečnějších příkazů, které máte k dispozici v Linuxu. Jedná se o globální / pravidelné výrazové tisky. Hledá soubor a vytiskne libovolný řádek, který odpovídá určitému vzoru. Vzhledem k tomu, že tento vzor je založen na "regulárním výrazu", stručná čára může přinést množství vzorů, které mají být splněny. Ne, ale můžete zadat tern pro hledání.

    grep pattern file

    Ujišťuji vás, že Grep může udělat víc, ale prozatím se držme jednodušších věcí.

    Přesměrování výstupů

    Chcete-li přesměrovat výstup příkazu do souboru, použijeme speciální znak, symbol větší (>.

    Změníme náš seznam nahoru, ano? Zadejte následující příkaz:

    echo pepperoni> seznam

    Můžete vidět, že ozvěna již linku nezobrazuje a když se podíváme na obsah souboru "seznamu", uvidíme, co tam zopakujeme.

    Také bere na vědomí, že předchozí obsah "seznamu" byl odstraněn. Zkus to znovu:

    To může být užitečné, pokud chcete soubor znovu použít, ale často chceme jen přidat do existujícího souboru. Za tímto účelem používáme dva po sobě jdoucí větší než symboly:

    echo žluté papriky >> seznam

    Snadný! Použijeme tento příkaz k vytvoření většího seznamu, my?

    Tam jedeme. Myslím, že můžete vidět, proč tolik geeků používá příkazový řádek pro seznamy úkolů a podobně, ale je ještě lepší.

    Vezměme výstup příkazu a vložíme jej do souboru:

    ls -al /> ~ / rootlist

    Vytváření seznamů souborů, jejich úpravy a spuštění příkazů na těch, které chcete, nebylo nikdy jednodušší. A když provádíme tyto základní funkce v příkazovém řádku, fungují to i ve skriptech.

    Potrubí nebo řetězec

    Potrubí je pojmenováno tak, že používá potrubí, (|, sdílené s klávesou \ na většině klávesnic). V podstatě trvá výstup jednoho příkazu a přenáší jej přímo do jiného. Můžete vytvářet dlouhé řetězce příkazů, abyste získali velmi specifický požadovaný výstup tímto způsobem a je to velmi výhodné pro příkazy jako grep.

    Funguje to hodně jako ">", kromě toho, že může být několikrát spojeno a jeho účinek je obecnější v tom, že nepotřebuje procházet textový soubor.

    Jak uvidíte, grep se rozlišuje malá a velká písmena. Příznak "-i" můžete použít k ignorování případu.

    Přesměrování vstupů

    Můžete také zadávat vstupy ze souborů příkazů pomocí symbolu méně než (<).

    kočka < list

    "To se nelíbí od použití argumentu!", Můžete říci. No, v tomto případě byste byl správný. Kde přesměrování vstupu skutečně přichází v pořádku, je to v řetězcích příkazů dohromady.

    Řekněme, že chceme filtrovat každé slovo, které má "pep" z aktuálního "seznamu" souboru do nového souboru s názvem "revize".

    grep pep revize

    Opakujme tento příkaz a přidáme nějaké řazení.

    grep pep revize

    Tímto způsobem se jako vyhledávací termín použije slovo "pep" ze vstupního souboru "list", zoradí se v abecedním pořadí (všechny výrazy s velkými písmeny, následované všemi malými písmeny) a poté se do souboru "revize".

    Chcete-li ilustrovat příkaz řazení, podívejte se na následující příklad:

    Jak vidíte, přidání příznaku "-f" příkazu řazení umožňuje ignorovat případ. Díky tomu je pro nás snadné alfabetizovat řádky v textových souborech a ignorovat písmená, když to nezáleží.

    Jednoduchý skript

    Vytvořme skript, který má následující formu:

    skript searchterm listfile

    Termín použije a použijete grep pro vyhledání souboru seznamu, řazení výsledků a jejich výstup do jiného souboru.

    Zde je adresář, který testujeme skript v:

    A můžeme vytvořit seznam toho, co tady, a pak spustit skript.

    Tady máš! Čím více se naučíte pravidel regulárních výrazů, tím přesněji vytvoříte příkaz pro vyhledávání. A všechno, co je platné v uvozovkách, může nahradit váš první argument!

    Pokud jde o třídění, můžete udělat víc než jen řazení podle abecedy. Podívejte se na manuálovou stránku pro některé z následujících příkazů:

    • tsort - pokročilejší topologická třídící funkce
    • tr - umožňuje mapovat specifické znaky jiným znakům a přepisovat mezi nimi.
    • uniq - odstraní všechny ne-jedinečné (čtení: duplicitní)
    • awk - skutečně pokročilý jazyk / funkce zpracování textu, které lze použít k oddělování polí v názvech souborů
    • cut, paste / join - příkazy užitečné pro oddělení polí z textových souborů a přidávání nových dat do sloupců
    • look - vyhledávání jako je grep, ale prohledává soubor slovníku (který může být uživatelem zadán)
    • wc - umožňuje získat počet slov, počet řádků, počet znaků a další

    Podívali jsme se na několik dalších základů, které mohou být užitečné na příkazovém řádku stejně jako v skriptech. Textová data jsou často jádrem věcí, které denně používáme, takže je s nimi možné pracovat, hledat je a manipulovat s nimi je klíčem.

    Jaké jsou některé z vašich oblíbených skriptů? Máte nějaké speciální skripty pro textové soubory? Sdílejte to, co znáte v komentářích!