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.
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ář Vytvoření nového adresáře. popd 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 Aktuální zastavený proces se znovy spustí na pozadí. fg Přesune proces do popředí. jobs 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 Vypíše procesorový čas spotřebovaný daným programem. top Vypisuje průběžně seznam procesů setříděných podle různých kritérií. Pošle aktuálnímu procesu na popředí signál SIGTERM. 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] Aktuální nastavení síťových rozhraní. mount Bloková zařízení zapojená v souborovém systému. route 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
X−Window App.
with Files
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