1 Základní příkazy UNIXu Pro všechny příkazy jsou k dispozici podrobné manuálové stránky, proto zde pouze upozorníme na nejčastě používané přepínače. Dohledání jejich významu je na každém uživateli. 1.1 Práce se soubory cat [soubor] Překopíruje obsah zadaného souboru na stdout. Pokud není soubor uveden, kopíruje stdin na stdout. cp [-a] maska_zdrojového_souboru cílový_soubor Kopírování souborů. Pokud použijeme masku, musí být cílem adresář. find adresář -name "maska_souboru" [-print] [-exec proces {} \;] Hledání souborů v adresářovém stromě od zadané úrovně. Pokud je jméno souboru dáno hvězdičkovou konvencí, musí být v uvozovkách. Příkaz taky dovoluje, aby se pro požadované programy spustil požadovaný proces. file maska_soubor Vypíše informaci o typu souboru. grep [-irl] vzor mask_souboru Prohledávání souborů na zadaný vzor. less [soubor] Prohlížení souboru, název je slovní hříčkou programu more. Vypisuje obsah souboru po stránkách. Pokud není soubor uveden, je vstup ze stdin. ls [-lard] maska_souboru Výpis souborů. more [maska_souboru] Prohlížení souborů po stránkách. Klasická verze programu známá ze všech verzí UNIXů. mv maska_zdrojového_souboru cílový_soubor Přesun souboru. rm [-rf] maska_souboru Smazání jednoho nebo více souborů. tac [maska_souboru] 1
Vypíše obsah soubory od konce. tail [-f] [maska_souboru] Vypíše konce souboru. tee [soubor] Filtr kopíruje data ze stdin na stdout. Pokud uvedeme soubor, data ze stdin se současně kopírují i do něj. touch maska_souboru Nastaví čas modifikace souboru na aktuální čas a datum. Pokud soubor neexistuje, vytvoří se nový prázdný soubor. <CTRL-D> Při zadávání dat ze stdin znamená uvedená klávesová zkratka konce souboru. 1.2 Práce s adresáři cd [adresář] Změní aktuální adresář. Pokud není adresář uveden, přepne uživatele do jeho domácího adresáře. du [-s] [maska_adresáře_souboru] Vypíše součet velikostí souborů. mkdir adresář popd Vytvoření nového adresáře. Z vrcholu vnitřního zásobníku prostředí se vyjme jméno adresáře a nastaví se jako aktuální. pushd adresář Uloží aktuální adresář na vrchol vnitřního zásobníku prostředí a nastaví požadovaný aktuální adresář. pwd Vypíše aktuální pracovní adresář. rmdir adresář Zrušení prázdného adresáře. 2
1.3 Práce s procesy bg fg jobs Aktuální zastavený proces se znovy spustí na pozadí. Přesune proces do popředí. Vypíše procesy na pozadí. kill [-l] [-signal] PID Zašle procesu s daným PID požadovaná signál. Není-li uveden signál, zašle procesu signál SIGTERM. killall [-signal] jméno_procesu Zašle signál všem procesům s daným jménem. nice [-priorita] příkaz Spustí proces s požadovanou priritou. Pokud neuvedeme prioritu, proces se spustí s nějnižší prioritou. ps [uax] Vypíše spuštěné procesy. time program top Vypíše procesorový čas spotřebovaný daným programem. Vypisuje průběžně seznam procesů setříděných podle různých kritérií. <CTRL-C> Pošle aktuálnímu procesu na popředí signál SIGTERM. <CTRL-Z> Aktuální proces na popředí obdrží signál SIGSTOP. 3
1.4 Systémové příkazy df Použité místo na aktuálních blokových zařízeních zapojených v souborovém systému. ifconfig [-a] [interface] mount route Aktuální nastavení síťových rozhraní. Bloková zařízení zapojená v souborovém systému. Aktuální síťové směrovací tabulky. 1.5 Přístupová práva chgrp [-R] skupina maska_souboru Nastaví vlastnictví souboru požadované skupině. chmod [-R] UGO maska_souboru Nastaví přístupovou masku danou třemi oktalovými číslicemi požadovaným souborům. chown [-R] uživatel[:skupina] maska_souboru Nastaví vlastnictví souboru danému uživateli a případně i skupině. umask MMM Tří (nebo čtyř) místné oktalové čislo. Při vytváření nového souboru se z přístupové masky souboru odstraní zadané bity. 1.6 Environment - prostředí export PROMĚNNÁ Uvedená proměnná se předá i podřízeným procesům. set [PROMĚNNÁ=...] Uvedené proměnné se v prostředí nastaví požadovaná hodnota. Bez parametrů se vypíší všechny aktuálně nastavené proměnné. 4
1.7 Archivace gzip maska_souboru gunzip maska_souboru Standardní kompresní a dekompresní utilita. Pracuje s jednotlivými soubory. bzip2 maska_soubrou bunzip2 maska_souboru Modernější kompresní program. Náhrada gzip/gunzip. tar -[zjcxtv]f archiv maska_souboru Archivační program pracující rekurzivně i přes podadresáře. Uvedeme příklad na vytvoření a rozbalení archívu. tar -zcf archiv.tgz adresář_projekt Vytvoří se archiv.tgz do kterého se rekurzivně vloží všechny soubory z uvedeného adresáře. Pro kompresi se použije gzip - parametr z. tar -jxf archiv.tar.bz2 Uvedený archiv se rozbalí a pro dekompresi se použije program bunzip2 - parametr j. 1.8 Připojení k serverům Netware ncpmount -U os_číslo.stu.fei -S server [path/]mount_dir ncpumount [path/]mount_dir Příkazem ncpmount je možné připojit do požadovaného adresáře souborový systém vybraného serveru s OS Netware. Je možné si připojit libovolné množství serverů. Příkazem ncpumount připojený server odpojíme. 1.9 Příkazový řádek Používání shellu je v samostatném manuálu. Zde jen stručně k přesměrovávání. program > soubor Přesměruje stdout do souboru. program >> soubor Přesměruje stdout na konec uvedeného souboru. program 2> soubor Přesměrování stderr do souboru. program 2>&1 Přesměrování stderr na stdout. program < soubor Jako stdin programu bude uvedený soubor. program1 program2 Přesměrování stdout prvního programu do stdin programu druhého. 5
1.10 Komunikace mezi UNIXy - SSH, Telnet, FTP, SCP ssh [user@]hostname Provede připojení vzdáleného terminálu k počítači hostname jako uživatel user. Navázané spojení je kryptované. Program ssh slouží i jako vzdálený shell. Je tak možno spouštět příkazy vzdáleně. To by samo o sobě nebylo tak přínosné. Co je na vzdáleném spouštění příkazů důležité, to je přesměrování lokálního stdin zařízení na vzdálený počítač a stdout výstup vzdáleného procesu je přesměrován zpět na lokální počítač. Můžeme tak realizovat například následující příkazy: ssh [user@]hostname "ls -l /etc " grep conf ls -l ssh [user@]hostname "grep cpp" less První příkaz vypíše obsah adresáře /etc na vzdáleném počítači a lokální proces grep vybere jen ty soubory mající v názvu conf. Druhý příkaz vypíše obsah aktuálního adresáře, výstup je přesměrován do programu grep na vzdáleném počítači, vybere ty soubory, které mají v názvu cpp a výstup pošle zpět do lokálního procesu less. Tyto přiklady mají jen demonstrovat možnosti použití programu ssh. V praxi je vhodné je použít například při zálohování, kdy využijeme výpočetní výkon lokálního i vzdáleného počítače. Např.: tar -c /databaze ssh hostname "gzip > /backup/databaze.tgz" ssh hostname "tar -c /data" gzip > /backup/data.tgz kde jeden počítač provádí archivaci pomocí tar a druhý provádí komprimaci dat. scp [-r] [user@][hostname:]path/src_file [user@][hostname:]path/dest_file Kopírování souborů mezi systémy. Vždy musí být jeden, ať už zdroj nebo cíl lokální. Nelze kopírovat mezi dvěma externími systémy. Přenos souborů je kryptován. telnet hostname [port] Připojení vzdáleného terminálu k počítači hostname. Spojení není kryptované. Program lze požít i pro diagnostické a testovací účely k připojení na HTTP, POP3 servery. 6
X Window App. Interface Title Disk with Files X Window App. Running App. X Server DISPLAY XHOST Obrázek 1: X-Window aplikace a její rozklad 1.11 XWindow Grafický systém X-Window představuje univerzální grafické rozhraní, nezávislé na platformě a používané v současnosti zejména v oblasti počítačů založených na OS UNIX. Prostředí X-Window je dobře dokumentováno a nebudeme popisovat detaily. Soustřeďmě se jen na podstatné vlastnosti důležité pro uživatele již hotových aplikací. Každou aplikaci si můžeme rozdělit na 4 základní části. Obrázek 1 znázorňuje jednotlivé části přehledně s návaznostmi. První části je spustitelná aplikace. Ta může být na lokálním nebo vzdáleném disku. Spuštění aplikace provede uživatel obvyklým způsobem. Spuštěná aplikace se spustí, vytvoří tak běžící proces a následné vytvoří okno. Aplikace ovšem není zodpovědná a ani schopná toto okno zobrazit. Zodpovídá jen za jeho obsah. Samotné zobrazení grafického okna přísluší poslední části, a to je X-Server. Jde o počítač s grafickým rozhraním, který přijímá žádosti o zobrazení grafických prvků podle protokolu rozhraní X-Window. Celý systém se tedy skládá ze dvou aktivních částí: počítače se spuštěnou aplikací a X-Serveru, který umí zobrazovat grafické prvky. Pro uživatele z výše uvedeného plynou dva požadavky. Zaprvé je nutno před spuštěním jakékoliv X-Window aplikace říci, kdo a kde bude grafické prvky zobrazovat. K tomu slouží proměnná prostředi DISPLAY. Její formát je jednoduchý: 7
X Windows Usage 1. File CPU Window X Server 2. File CPU Window X Server 3. File CPU Window X Server 4. File CPU Window X Server Obrázek 2: Možné varianty spouštění X-Window aplikací DISPLAY=[hostname]:D.S DISPLAY=linux456:0.0 Kde hostname je jméno počítače. Není-li uvedeno, předpokládá se lokální počítač. Číslo D udává číslo X-Serveru na požadovaném počítači a poslední číslo S číslo obrazovky. Ve většině případů uvádíme identifikaci : 0.0. A druhý požadavek musí řešit uživatel na straně X-Serveru. Není samozřejmě možné, aby si libovolná aplikace v síti zobrazovala zvé výstupy na libovolném X-Serveru. Proto každý X-Server na počátku povoluje pouze zobrazení lokálním aplikacím na daném počítači. Pokud chceme povolit zobrazování i aplikacím z jiných počítačů, musíme použít příkaz xhost. xhost + Tento příkaz povolí zobrazování všem počítačům (klientům) v síti. xhost +hostname xhost -hostname Přidání nebo odebrání počítače ze seznamu oprávněných klientů. xhost Příkaz bez parametrů vypíše seznam počítačů majících povoleno zobrazovaní na příslušném X-Serveru. Veškerá omezení se týkají jen počítačů, protokol X-Window systému nerozlišuje mezi jednotlivými uživateli. 8
Jen pro názornost si ještě můžeme uvést možnosti, jak jsou X-Window aplikace rozloženy mezi počítače na obrázku 2. Čárkovaným obdélníkem je označeno, co je na samostatném počítači. 9