Základní příkazy Úvod do Unixu man: příkaz pro zobrazení nápovědy k danému příkazu, programu (pokud je k dispozici), např. man cp vypíše nápovědu o příkazu cp, manuálová stránka se ukončí stisknutím klávesy q pwd: vypíše cestu k aktuální pozici ls: zobrazí obsah adresáře (řazený podle abecedy), s přepínačem -l je výpis bohatší, -r způsobí opačné řazení a -t řazení podle data poslední změny, často se hodí příkaz ls -lrt, který seřadí obsah adresáře podle data poslední změny souborů tak, že nejnovější soubory jsou na konci výpisu (užitečné např. pro přehledný výpis nově vzniklých souborů při výpočtech) mkdir: make directory (tvorba adresářů), použití mkdir jméno adresáře cd: změna pracovního adresáře, pozor, v Unixu (narozdíl od Windows) se pro oddělování adresářů používá /, použití pro vstup do adresáře /usr/bin cd /usr/bin použití pro vstup o úroveň výš cd.. samotné cd nás vrátí do domovského adresáře (/home/student) cp: copy (kopírování souborů, adresářů), přepínač -r zde (i u jiných příkazů) zajistí rekurzivní použití, to znamená kopírování adresářů s kompletním obsahem (soubory uvnitř adresáře, podadresáře atd.), použití cp [-r] cesta k objektu cesta kam 1
mv: move (přesunutí souborů, adresářů), použití stejné jako cp, jen není potřeba používat přepínač -r pro přesouvání adresářů mv cesta k objektu cesta kam tento příkaz se používá také k přejmenovávání mv staré jméno nové jméno rm: remove (odstranění souborů, adresářů), s přepínači -rf se systém na nic neptá a maže soubory, adresáře i všechen jejich obsah (rekurzivně), použití rm -rf cesta k objektu tail: vypíše posledních 10 řádek ze zadaného souboru, užitečné je tail -f jméno souboru, kde přepínač -f přidává řádky, jak přibývají do souboru, hodí se k online sledování výpočtu grep: vypíše, které soubory v sobě obsahují zadaný řetězec, např. grep "ahoj" * vypíše jména souborů z aktuálního adresáře, které obsahují řetězec ahoj, a vždy celou řádku s daným řetězcem, * představuje všechny soubory (obecně v Unixu * představuje libovolný počet libovolných znaků) cat: lze použít k slepení souborů s výpisem na stand. výstup, pokud bychom chtěli slepit dva soubory a vytvořit z nich třetí, použijeme přesměrování cat první soubor druhý soubor > třetí soubor k horizontálnímu slepení souborů lze použít příkaz paste hledat soubory můžeme v Linuxu pomocí příkazu locate zjištění volného místa na discích pomocí příkazu df -h zjištění kolik místa na disku zabírá daný adresář (v kb) pomocí příkazu du -h adresář chmod: změna přístupových práv u souborů a adresářů, užitečný je příkaz chmod a+x jméno souboru, 2
kterým všem uživatelům dovolíme spouštět soubor jméno souboru, vhodné při tvorbě skriptů (když si uděláme skript a chceme ho spustit, musíme před jeho spuštěním udělat právě toto) silnou zbraní příkazového řádku Unixu je spojování příkazů pomocí (= roura, pipe), která přesměruje výstup z jednoho příkazu do druhého, např. ls -lrt less kde less umožní zobrazit celý výstup příkazu ls -lrt, pohybovat se v něm a vyhledávat (užitečné v případě, kdy je výstup příkazu delší než umožňuje zobrazit monitor) Příkazy pro práci na vzdáleném počítači ssh: remote login program, přihlášení na stroj u4 jako uživatel student provedeme příkazem ssh student@u4 jestliže se chceme přihlásit na stroj mimo naší sít, musíme specifikovat celé jméno počítače, např. přihlášení jako uživatel student na stroj nickel.jh-inst.cas.cz provedeme ssh student@nickel.jh-inst.cas.cz pokud chceme povolit X11 forwarding, tzn. používat nějaké programy běžící pod X serverem (s graf. výstupem, např. Molden), musíme přidat přepínač -X ssh student@u4 -X scp: secure copy, program ke kopírování ze vzdáleného počítače, nebo na vzdálený počítač, pro zkopírování souboru h2o.com z aktuálního adresáře do adresáře /tmp/h2o počítače u4 (náš uživatelský účet musí mít práva zápisu do daného adresáře) použijeme scp h2o.com student@u4:/tmp/h2o v případě, že to chceme udělat opačně, tedy zkopírovat soubor h2o.com ze zmíněného adresáře /tmp/h2o na stroji u4 do našeho aktuálního adresáře, použijeme příkaz scp student@u4:/tmp/h2o/h2o.com. kde. znamená aktuální adresář, příklad obecného použití scp user name@server1:path1 user name@server2:path2 Další (možná) užitečné příkazy date: výpis přesného času a data cal: kalendář 3
top: zobrazí tabulku procesů seřazeným podle toho, jak vytěžují procesor a pamět kill, killall: zabíjení procesů w: ukáže, kdo je přihlášen k počítači a co zrovna dělá Skriptování (v bashi) skript: dávkový soubor - skládá se z jednotlivých příkazů, které se postupně vykonají první řádka obsahuje #!/bin/bash jedná se o specifikaci interpretu shellu po vytvoření skriptu je potřeba změnit práva k souboru - umožnit spuštění (viz. výše) spuštění skriptu./muj skript Proměnné proměnnou zavedeme tím, že jí použijeme x=1 y=$x echo "y =" $y pro návratovou hodnotu proměnné je potřeba použít $ Parametry skriptu pokud zavoláme skript s parametry./muj skript parametr1 parametr2 parametr3 můžeme k nim uvnitř skriptu přistupovat pomocí $X, kde X je číslo parametru, $0 vrací název skriptu 4
For cyklus - užitečná konstrukce cyklus se provádí pro určené hodnoty for i in 1 2 3 4 5 do echo $i done velmi užitečná je konstrukce for i in * která za i dosadí názvy všech souborů v aktuálním adresáři Klávesové kombinace ctrl+c: klávesová kombinace pro násilné ukončení programu ctrl+d: klávesová kombinace pro ukončení stand. vstupu, hodí se také k rychlému vypnutí terminálu nebo odhlášení od vzdáleného počítače v historii příkazů zadaných na příkazovém řádku se lze pohybovat pomocí šipek nahoru a dolů Tab v prostředí příkazové řádky bashe doplní příkaz/cestu pokud je jen jedna možnost, případně nám dá vybrat (stisk Tab dvakrát) Editor VIM poměrně komplikovaný na ovládání, je dobré vědět, že se vypíná stisknutím kláves :q! :-) klávesou i se dostaneme do režimu psaní (na spodu terminálu se objeví INSERT) klávesa Esc nás vrátí opět do režimu prohlížení a zadávání příkazů :w! vynucené uložení souboru 2* stisk klávesy d smaže daný řádek :XX, kde XX je číslo, posune kurzor na řádek č. XX hledání řetězce pomocí lomítka /: /string hledá v textu string 5