Co se dá provést v příkazové řádce? Všechno, co umíte v grafickém prostředí, a ještě daleko víc. Spravovat adresáře, kopírovat soubory, přidělovat práva k práci se soubory, spravovat procesy.
Tyto úkoly jsou pro studenta informatiky pravděpodobně běžnou praxí, nad kterou dlouze nerozmýšlí.
Při prvním osahání se zdá, že zkopírovat soubor odněkud někam je v příkazové řádce těžkopádné, musím definovat cesty odkud kam co kopíruju, musím mít jasno v adresářové struktuře a ideálně
ji znát aspoň částečně zpaměti. Časově jsou oba úkony řekněme podobné, někdo umí psát rychleji, někdo klikat ještě rychleji — leč třeba si přiznat, že klikání je snadné, to zvládne každý a navíc
jednou rukou, kdežto průměrnému uživateli jde psaní jak psovi pastva.
Nicméně, příkazová řádka je velmi mocná. Především použití tzv. regulárních výrazů (tedy zástupných znaků, které umožňují pokročilý výběr) je zcela nesrovnatelné s tím, co můžete označit myší
a očima s nutností vybírat vlastními silami. Navíc má řádka obvykle daleko více prostředků pro manipulaci, které jsou pro běžného uživatele v grafickém prostředí skryty až hluboko pod povrchem nebo chybí úplně.
Řádka je zkrátka silná, ale jen v rukou toho, kdo ví, jak v ní pracovat.
A to hlavní. Řádka umožňuje algoritmizaci problému, tedy libovolně náročný úkol mohu automatizovat. Přikládám příklady:
Kopíruju soubory stažené z internetu a potřebuju ke všem přidat do názvu dnešní datum.
Chci, aby se mi každou půlnoc zkontrolovaly logovací soubory vybraných procesů a zazálohovaly se na internet.
Po spuštění notebooku by se mi hodilo, kdyby si sám překontroloval, kde je, jestli má připojený boční monitor a podle toho přenastavil prostředí a spustil specifické aplikace.
Mám několik adresářů s fotkami, ale asi jsem tam kopírovala několikrát a mám stejné fotky pod různými názvy. Potřebovala bych zjistit, které jsou stejné a ty redundantní vymazat.
Vím, že jsem si někam psala poznámky k úkolu, a nemůžu najít, do kterého souboru. Nechám prohledat všechny soubory, jestli neobsahují konkrétní text, který jsem tam určitě dávala.
Kam za příkazovou řádkou
Příklady zde jsou psané pro shell bash na stroji s OS Linux. Možností, kde procvičit praktické úkoly, je několik.
Studentský server
Pokud jste pro potřeby absolvování předmětu dostali přístup ke studentskému serveru, je určitě rozumné ho využít.
+ Nemusíte nic instalovat, vše je pro vás připraveno
+ Ozkoušíte si pohyb v multiuser prostředí
- Nedostanete rootovský přístup
Vyučující může znát Vaši aktivitu
Pro předmět NTI/SH se vydejte na server perun.nti.tul.cz, přístupové údaje dostanete na prvním cvičení.
Vlastní počítač, OS *NIX
Na vlastním počítači s operačním systémem *nixového najděte terminál nebo konzoli.
+ Okamžitý přístup
+ Dostupný rootovský účet
+ Možnost naučit se hlouběji se systémem z pozice administrátora
- Nemusítě mít stejnou verzi systému, ačkoli je tento kurz zaměřený dost obecně, nemusí vám vše fungovat stejně
- Můžete si nenávratně rozhasit systém
- Je to zbytečně komplikované, pokud potřebujete k životu aplikace pro OS Windows a k tomu máte jen jeden počítač.
Vlastní počítač, jiný OS
Pro Windows 10 je možné použít Windows subsystem pro Linux, čímž využijete plnohotnotný bash. Vlastnosti viz. předchozí odstavec. Pro jiné verze Windows než 10 je možné získat přístup do bashe, ale
to už ztrácí výhodu oproti připojení na studentský server.
online simulátory
Na webu je větší množství simulátorů bash, které se hodí především pro ladění skriptů. Uvedu příklad několika projektů: