Pojem "skriptování prostředí" se často uvádí ve fórech Linux, ale mnoho uživatelů o něm není obeznámeno. Učení této jednoduché a výkonné programovací metody vám pomůže šetřit čas, učit se řádku příkazového řádku lépe a vyřadit únavné úkoly při správě souborů
Být uživatel Linuxu znamená, čára. Líbí se vám nebo ne, existují jen některé věci, které se díky tomuto rozhraní dávají mnohem snadněji než tím, že ukazují a kliknou. Čím více používáte a učíte se příkazovému řádku, tím více vidíte jeho potenciál. Příkazový řádek sám je program: shell. Většina linuxových distribucí dnes používá Bash a právě jste do něj zadali příkazy.
Nyní někteří z vás, kteří používali systém Windows před použitím Linuxu, si mohou pamatovat dávkové soubory. Jednalo se o malé textové soubory, které byste mohli plnit příkazy k provádění a Windows by je spustil. Byl to chytrý a elegantní způsob, jak si udělat nějaké věci, například spustit hry v počítačové laboratoři na střední škole, kdybyste nemohli otevírat systémové složky nebo vytvářet zkratky. Dávkové soubory ve Windows, přestože jsou užitečné, jsou levné imitace shell skriptů.
Shell skripty nám umožňují naprogramovat příkazy v řetězcích a nechat je spouštět jako skriptovaná událost, stejně jako dávkové soubory. Umožňují také mnohem užitečnější funkce, jako je například nahrazení příkazu. Můžete vyvolat příkaz, jako datum, a použít jeho výstup jako součást schématu pojmenování souborů. Můžete automatizaci záloh a každý z kopírovaných souborů může mít aktuální datum připojené na konec svého jména. Skripty nejsou jen invokace příkazů. Jsou programy samy o sobě. Skriptování umožňuje používat funkce programování - například smyčky "pro", příkazy if / then / else a tak dále - přímo v rozhraní operačního systému. A nemusíte se učit jinému jazyku, protože používáte to, co už víte: příkazový řádek.
Myslím, že to je opravdu síla skriptování. Můžete se naprogramovat pomocí příkazů, které už víte, zatímco učíte staples většiny hlavních programovacích jazyků. Potřebujete něco opakovat a nudit? Script to! Potřebujete zkratku pro opravdu komplikovaný příkaz? Script to! Chcete pro někoho vytvořit skutečně snadné rozhraní příkazového řádku? Skript
Než začneme naše skriptovací série, pojďme se podívat na některé základní informace. Budeme používat bash shell, který většina Linuxových distribucí používá nativně. Bash je k dispozici i pro uživatele Mac OS a Cygwin pro Windows. Jelikož je tak univerzální, měli byste být schopni psát bez ohledu na vaši platformu. Kromě toho, pokud existují všechny příkazy, na které odkazujeme, skripty mohou pracovat na více platformách s malým nebo žádným vyladěním.
Skriptování může snadno využívat oprávnění "administrátora" nebo "superuser", takže je nejlepší otestujte skripty dříve, než je uvedete do práce. Používejte také zdravý rozum, jako například ujistěte se, že máte zálohy souborů, na kterých se chystáte spustit skript. Je také opravdu důležité použít správné možnosti, jako je -i pro příkaz rm, aby se vaše interakce vyžadovala. To může zabránit některým ošklivým chybám. Jako takový si přečtěte skripty, které stáhnete, a buďte opatrní s daty, které máte, jen v případě, že se něco pokazí.
Jádrem jejich skriptů jsou pouze prosté textové soubory. K jejich psaní můžete použít libovolný textový editor: gedit, emacs, vim, nano ... Tento seznam pokračuje. Nezapomeňte ji uložit jako prostý text, ne jako bohatý text nebo dokument aplikace Word. Vzhledem k tomu, že mám rád snadné použití, které nano poskytuje, budu to používat.
Skripty jsou prováděny jako programy a pro to, aby se to stalo, musí mít správná oprávnění. Skripty lze spustit spuštěním následujícího příkazu:
chmod + x ~ / somecrazyfolder / script1
To umožní komukoli spouštět daný skript. Pokud chcete omezit jeho použití pouze na uživatele, můžete místo toho použít:
chmod u + x ~ / somecrazyfolder / script1
Pro spuštění tohoto skriptu byste museli cd do správného adresáře a spustit skript takto:
cd ~ / somecrazyfolder
./ script1
Chcete-li věci pohodlnější, můžete umístit skripty do složky "bin" ve vašem domovském adresáři:
~ / bin
V mnoha moderních distribucích není tato složka vytvořena ve výchozím nastavení, to. Obvykle se ukládají spustitelné soubory, které patří k vašemu uživateli, nikoli k ostatním uživatelům. Tím, že umístíte skripty, můžete je spustit zadáním jejich jména, stejně jako ostatní příkazy, namísto toho, abyste museli cd kolem a používat předponu './'.
Předtím, než pojmenujete skript, měli byste následující příkaz, který zkontroluje, zda máte nainstalovaný program, který používá toto jméno:
, které [příkaz]
Spousta lidí jmenuje své testy raných skriptů "a když se pokusí spustit v příkazovém řádku, nic se děje. Je to proto, že to je v rozporu s příkazem testu, který nečiní nic bez argumentů. Vždy se ujistěte, že vaše jména skriptů nejsou v rozporu s příkazy, jinak se může stát, že děláte věci, které nechcete dělat!
Jak jsem již zmínil, každý soubor skriptu je v podstatě prostý text. To neznamená, že bys mohl psát to, co chceš všechno beznadějně. Při pokusu o provedení textového souboru budou skořepiny analyzovat, zda se jedná o skripty či nikoliv, a jak je vše správně zpracovat.
Hash-Bang Hack
Když shell analyzuje textový soubor, nejpřímějším způsobem identifikace souboru jako skriptu je vytvořením prvního řádku:
# ! / bin / bash
Pokud použijete jiný shell, nahraďte jej zde. Řádky komentářů začínají s hashes (#), ale přidávají se tón (!) A cesta shell poté, co je to jakýsi hack, který obejde toto pravidlo komentáře a vynutit skript k provedení s shell, který tento řádek ukazuje.
Nová řádek = Nové příkazy
Každá nová řádek by měla být považována za nový příkaz nebo za součást většího systému. Příkazy if / else / else například přeberou více řádků, ale každá součást tohoto systému je v novém řádku. Nedovolte, aby příkaz přetočil do dalšího řádku, protože to může zkrátit předchozí příkaz a způsobit chybu na dalším řádku. Pokud to váš textový editor dělá, měli byste vypnout text wrapping být na bezpečné straně. Textové obtékání můžete vypnout v nano bitu stisknutím klávesy ALT + L.
Komentář Často s #s
Pokud spustíte řádek s #, linka bude ignorována. Tím se změní na řádek komentářů, kde si můžete připomenout, jaký byl výstup předchozího příkazu, nebo co další příkaz provede. Znovu vypněte zalomení textu nebo přerušujte komentář na více řádků, které začínají jako hash. Použití spousty komentářů je dobré zachovat, protože vám a ostatním lidem můžete snadno upravovat skripty. Jedinou výjimkou je výše uvedený Hash-Bang hack, takže sledujte # s s! S. ; -)
Příkazy jsou obklopeny závorami
Ve starších dnech byly příkazy nahrazeny jedinými značkami (', sdílí klíč ~). Nebudeme se k tomu ještě dotýkat, ale protože většina lidí odešla a prozkoumala poté, co se naučila základy, je asi dobrý nápad zmínit, že místo toho byste měli použít závorky. Je to hlavně proto, že když hnízdíte - vložit příkazy do jiných příkazů - závorky fungují lépe.
Začněme jednoduchým skriptem, který umožňuje kopírovat soubory a připojovat data do konce názvu souboru. Řekněme to "datecp". Nejprve zkontrolujte, zda je toto jméno v rozporu s něčím:
Uvidíte, že není žádný výstup tohoto příkazu, takže jsme všichni nastavili tento název.
Vytvořme prázdný soubor v ~ / bin:
dotkněte ~ / bin / datecp
A teď, změňte povolení nyní, než zapomeneme:
Pak začneme vytvářet náš skript. Otevřete soubor ve zvoleném textovém editoru. Jak jsem řekl, mám rád jednoduchost nano
nano ~ / bin / datecp
A jdeme jít dopředu a dát předpoklad první řádek a komentář o tom, co tento skript dělá.
deklarujeme proměnnou. Pokud jste někdy použili algebru, pravděpodobně víte, co to je. Proměnná nám umožňuje ukládat informace a dělat věci s nimi. Proměnné se mohou "rozšiřovat", když se na ně odkazují jinde. To znamená, že namísto zobrazení svého jména se zobrazí jejich uložený obsah. Lze později říct, že stejná proměnná ukládá různé informace a jakákoli instrukce, která nastane poté, co použije nové informace. Je to opravdu fantastický zástupný symbol.
Co budeme vkládat do proměnné? No, uložíme datum a čas! Chcete-li to provést, zavoláme příkazu Datum
Podívejte se na níže uvedený snímek, jak sestavit výstup datového příkazu:
To můžete vidět přidáním různých proměnných začínajících na%, můžete změnit výstup příkazu na to, co chcete. Pro další informace se můžete podívat na manuálovou stránku pro příkaz datum.
Použijeme poslední opakování příkazu datum, "datum +% m_% d_% y-% H.% M.% S" a použijte to v našem skriptu.
Kdybychom tento scénář teď uložili, mohli bychom ho spustit a dali by nám výstup datového příkazu, jak bychom očekávali:
Ale udělejte něco jiného. Pojďme jméno proměnné, jako datum_formátované na tento příkaz. Správná syntaxe pro toto je následující:
variable = $ (příkaz -options arguments)
A pro nás bychom to postavili takto:
date_formatted = $ (datum +% m_% d_% y-% H.% M.% S)
To je to, co nazýváme nahrazení příkazu. V podstatě říkáme, že vždy, když se zobrazí proměnná "date_formatted", spusťte příkaz uvnitř závorek. Poté je třeba místo názvu proměnné namísto názvu proměnné zobrazit "whatever_data".
Zde je příklad skriptu a jeho výstup:
Všimněte si, že na výstupu jsou dva mezery. Je zobrazen prostor v uvozovkách příkazu echo a prostor před proměnnou. Nepoužívejte mezery, pokud nechcete, aby se objevily. Také si povšimněte, že bez této přidané linky "echo" by skript neměl absolutně žádný výstup.
Pojďme se vrátit do našeho skriptu. Přidejme další část kopírovací části příkazu
cp -iv $ 1 $ 2. $ date_formatted
Tímto se vyvolá příkaz kopie s volbami -i a -v. Bývalý uživatel vás požádá o ověření před přepsáním souboru a ten bude zobrazovat, co se nachází na příkazovém řádku.
Nyní můžete vidět, že jsem přidal možnost "$ 1". Při skriptování bude znak dolaru ($) následovaný číslem označovat tento číslovaný argument skriptu, když byl vyvolán. Například v následujícím příkazu:
cp -iv Trogdor2.mp3 ringtone.mp3
První argument je "Trogdor2.mp3" a druhý argument je "ringtone.mp3".
skript, můžeme vidět, že odkazujeme na dva argumenty:
To znamená, že při spuštění skriptu budeme muset poskytnout dva argumenty, aby skript fungoval správně. První argument, $ 1, je soubor, který bude zkopírován a nahrazen jako první argument příkazu "cp -iv".
Druhý argument, $ 2, bude sloužit jako výstupní soubor pro stejný příkaz. Ale můžete také vidět, že je to jiné. Přidali jsme období a odkazovali jsme na proměnnou "date_formatted" shora. Zjistili jste, co se děje?
Zde je to, co se stane při spuštění skriptu:
Vidíte, že výstupní soubor je uveden jako cokoliv, co jsem zadal za $ 2, následovaný periodou, pak výstup datového příkazu ! Dává to smysl, že?
Nyní, když spustím příkaz timecp, spustí tento skript a dovolí mi zkopírovat libovolný soubor na nové místo a automaticky přidá datum a čas do konce názvu souboru. Užitečné pro archivaci!
Shell skriptování je jádrem toho, že vaše OS pracuje pro vás. Nemusíte se naučit nový programovací jazyk, aby se tak stalo. Vyzkoušejte skriptování s některými základními příkazy doma a začněte přemýšlet o tom, proč to můžete použít.
Skriptujete? Máte nějaké rady pro nováčky? Podělte se o své myšlenky v komentářích! V této sérii je toho víc!
Jak najít a odstranit duplicitní soubory v systému Mac OS X
Duplicitní soubory jsou ztrátou místa na disku, které spotřebovávají vzácný prostor SSD na moderním počítači Mac a nezasahují vaše zálohy Time Machine. Odeberte je, abyste uvolnili místo na vašem Macu. Existuje mnoho vyleštěných aplikací pro Mac - to jsou převážně placené programy. Tyto lesklé aplikace v obchodě s Macovými aplikacemi pravděpodobně fungují dobře, ale máme dobré možnosti, pokud nechcete, aby vaše kreditní karta vyrazila.
Co je nového v systému Windows 10 První velká novinová aktualizace
První velká aktualizace systému Windows 10, která by měla přijít dnes prostřednictvím služby Windows Update, řeší mnoho problémů se systémem Windows 10. Microsoft zjednodušuje aktivaci, obnovení barevných oken titulů, integraci Skype a zlepšení prohlížeče Edge. Ale oni také přidali reklamy do nabídky Start.