Celá tato práce je zaměřena na praktické zvládnutí programování pod unixem. Proto i v této kapitole najdete jen stručný popis toho, co je potřebné zvládnout, abyste později mohli postoupit bez problémů k programování.
Proto zde popíąeme, jak se do systému přihlásit, jak získat on-line nápovědu, jaké jsou často pouľívané příkazy, jaké existují editory. V daląí části popíąeme základní práci s unixovým shellem.
root:C6JbDfHXftBkk:0:0:root:/root:/bin/bash ftp:*:14:50:FTP User:/home/ftp: xdobiasl::500:100:Ladislav Dobias:/home/xdobiasl:/bin/bash
Záznamy jsou celé řádky, poloľky v záznamech jsou odděleny dvojtečkou,
význam poloľek je takovýto:
username | : | password | : | UID | : | GID | : | poznámka | : | domovský adresář | : | shell |
Heslo je zakódované standardní funkcí crypt(3). Pokud je v poloľce hesla hvězdička, znamená to, ľe uľivatel nemá přístup do systému; pokud tam nic není, uľivatel se přihlásí bez hesla. UID je číslo uľivatele; GID je číslo skupiny, do které je uľivatel při přihláąení zařazen. shell určuje, který shell se spustí při přihláąení (O shellu viz kap. Shell). Sluľbami pro práci s tímto souborem se zabývá kapitola "Systémové soubory a informace".
Popis příkazů, funkcí, volání jádra, atd. lze získat z tzv. manuálových stránek. K nim se lze dostat pomocí příkazu man.
Manuálové stránky jsou rozděleny do několika částí. Např. část 1 obsahuje popis uľivatelských příkazů, část 2 systémových volání, část 6 obsahuje manuály k hrám, část 8 popis systémových příkazů.
Vyvolání manuálu např. k příkazu ls lze provést napsáním man 1 ls (popis příkazu ls je v sekci 1) nebo jen man ls.
Pokud nevíme přesně, jak se daná manuálová stránka jmenuje, pouľijeme příkaz man -k klíčové slovo, například man -k configur vypíąe různé příkazy a soubory, které slouľí k nějaké konfiguraci.
Pro rychlý přechod z DOSu do unixu uvádíme tabulku přibliľných ekvivalentních příkazů. Viz tabulku 1.
DOS | unix | Stručný popis |
---|---|---|
attrib | chmod | změna atributů souboru |
copy | cp | kopírování souborů |
date | date | zobrazení data |
del | rm | mazání souborů |
dir | ls -la | výpis adresáře |
echo | echo | zobrazení řetězce |
fc | diff | porovnání souborů |
help | man | nápověda o příkazu/programu/funkci/souboru |
mkdir | mkdir | vytvoření adresáře |
more | more | prohlíľení souboru po stránkách |
ren | mv | přejmenování/přesunutí |
rmdir | rmdir | smazání adresáře |
sort | sort | setřídění souboru |
time | date | zobrazení času |
type | cat | vypisování obsahu souboru |
V tabulce 2 jsou uvedeny některé daląí uľitečné unixové příkazy.
Příkaz | Stručný popis |
---|---|
awk | umí různě pracovat s textovými soubory |
cat | vypisuje obsah daných souborů |
compress | komprimuje soubor |
cut | vybírá určité části (např. sloupce) souboru |
df | zobrazuje volné místo na zařízeních (discích) |
du | ukazuje, kolik místa zabírají soubory/adresáře |
expr | počítá matematické výrazy |
file | hádá typ souboru podle jeho obsahu |
find | hledá soubory dle daných kritérií |
grep | mj. vybírá ze souboru dané řádky |
head | vypisuje začátek souboru |
kill | poąle procesu signál (o signálech viz kap. Signaly) |
ln -s | vytváří symbolický link (odkaz na soubor) |
make | ulehčuje kompilaci a sestavování programu v C |
mount | přidává zařízení do filesystému |
nroff | formátuje text, např. manuálové stránky |
passwd | mění heslo |
ps | vypisuje běľící procesy |
pwd | vypisuje aktuální adresář |
sed | neinteraktivní (proudový) editor |
sleep | čeká daný čas |
stty | nastavuje parametry terminálu |
sum | počítá CRC souboru |
tail | vypisuje konec souboru |
tar | archivuje soubory |
tee | vypisuje na standardní výstup a do souboru |
test | test pouľívaný hlavně podmínkách a cyklech |
tr | nahrazuje znaky jinými znaky |
uname | napíąe jméno systému |
uncompress | rozbaluje soubor |
wc | počítá řádky/slova/bajty |
who | vypisuje přihláąené uľivatele |
whoami | vypíąe, jak se jmenujeme v systému |
which | napíąe odkud se spouątí daný program |
Programátor často pouľívá nějaké textové editory, proto je dobré vědět, jak se jmenují a co umí:
Nejznámějąími variantami shellu jsou (řazeny dle data vzniku):
V shellu mají jisté znaky speciální význam. Pro rychlou orientaci v těchto znacích je připravena tabulka 3.
Kromě externích příkazů jdou v shellu pouľívat i vestavěné příkazy, např. cd, if, while, read, ...Jejich popis lze nalézt opět v manuálových stránkách (např. man ksh).
Speciální znaky | Význam |
---|---|
| | roura (pipe) --- řazení příkazů do kolony |
& | spuątění na pozadí |
; | ukončení příkazu |
( ) | spuątění v kopii shellu |
> | přesměrování standardního výstupu |
< | přesměrování standardního vstupu |
&& | spuątění při nulovém návratovém kódu |
|| | spuątění při nenulovém návratovém kódu |
$ | umoľňuje přístup k proměnným |
* ? [ ] | znaky pro expanzi jmen |
\ | potlačuje význam následujícího speciálního znaku |
' ' | potlačuje význam speciálních znaků |
" " | potlačuje význam speciálních znaků aľ na \, $ a ` ` |
` ` | vrátí standardní výstup příkazu |
Některé speciální znaky si spolu s jiľ uvedenými příkazy ukáľeme na příkladech -- viz tab. 4 a tab. 5.
who | wc -l | vypíąe počet přihláąených uľivatelů |
sh -c 'sleep 5;date'& echo Date: | vypíąe Date: a po 5 sekundách datum a čas |
cd;pwd(cd /etc;pwd)pwd | vypíąe název domovského adresáře, pak /etc a pak zase domovský adresář |
tr ay ya <in | tee out | v souboru in prohodí znaky a a y a výsledek vypíąe na obrazovku a do souboru out |
read DIR; test -d $DIR && echo $DIR je adresář | zjistí, zda $DIR je adresář |
tar cvf - $*$.[ch] | compress >etc.tar.Z | zabalí a zkompresuje soubory v aktuálním adresáři končící na .c a .h |
cat a b c > d | spojí soubory a, b, c do souboru d |
du -s $HOME | ukáľe, kolik místa zabírají naąe data |
find /etc -name '*' -exec grep -l xdobiasl {} \; | vypíąe soubory v adresáři /etc, které obsahují dané slovo (vypíąe asi /etc/passwd) |
more `which startx` | vypíąe soubor, kterým se spouątí X Window |
for i in *; do echo "Balim $i"; compress $i; done | v aktuálním adresáři zkompresuje kaľdý soubor zvláą» |
expr `cat /etc/passwd | sort -t : -k 3 -n | tail -1` + 1 | vypíąe UID o jedničku vyąąí, neľ je v systému nejvyąąí |
Ladislav Dobias