Cela tato prace je zamerena na prakticke zvladnuti programovani pod unixem. Proto i v teto kapitole najdete jen strucny popis toho, co je potrebne zvladnout, abyste pozdeji mohli postoupit bez problemu k programovani.
Proto zde popiseme, jak se do systemu prihlasit, jak ziskat on-line napovedu, jake jsou casto pouzivane prikazy, jake existuji editory. V dalsi casti popiseme zakladni praci s unixovym 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
Zaznamy jsou cele radky, polozky v zaznamech jsou oddeleny dvojteckou,
vyznam polozek je takovyto:
username | : | password | : | UID | : | GID | : | poznamka | : | domovsky adresar | : | shell |
Heslo je zakodovane standardni funkci crypt(3). Pokud je v polozce hesla hvezdicka, znamena to, ze uzivatel nema pristup do systemu; pokud tam nic neni, uzivatel se prihlasi bez hesla. UID je cislo uzivatele; GID je cislo skupiny, do ktere je uzivatel pri prihlaseni zarazen. shell urcuje, ktery shell se spusti pri prihlaseni (O shellu viz kap. Shell). Sluzbami pro praci s timto souborem se zabyva kapitola "Systemove soubory a informace".
Popis prikazu, funkci, volani jadra, atd. lze ziskat z tzv. manualovych stranek. K nim se lze dostat pomoci prikazu man.
Manualove stranky jsou rozdeleny do nekolika casti. Napr. cast 1 obsahuje popis uzivatelskych prikazu, cast 2 systemovych volani, cast 6 obsahuje manualy k hram, cast 8 popis systemovych prikazu.
Vyvolani manualu napr. k prikazu ls lze provest napsanim man 1 ls (popis prikazu ls je v sekci 1) nebo jen man ls.
Pokud nevime presne, jak se dana manualova stranka jmenuje, pouzijeme prikaz man -k klicove slovo, napriklad man -k configur vypise ruzne prikazy a soubory, ktere slouzi k nejake konfiguraci.
Pro rychly prechod z DOSu do unixu uvadime tabulku pribliznych ekvivalentnich prikazu. Viz tabulku 1.
DOS | unix | Strucny popis |
---|---|---|
attrib | chmod | zmena atributu souboru |
copy | cp | kopirovani souboru |
date | date | zobrazeni data |
del | rm | mazani souboru |
dir | ls -la | vypis adresare |
echo | echo | zobrazeni retezce |
fc | diff | porovnani souboru |
help | man | napoveda o prikazu/programu/funkci/souboru |
mkdir | mkdir | vytvoreni adresare |
more | more | prohlizeni souboru po strankach |
ren | mv | prejmenovani/presunuti |
rmdir | rmdir | smazani adresare |
sort | sort | setrideni souboru |
time | date | zobrazeni casu |
type | cat | vypisovani obsahu souboru |
V tabulce 2 jsou uvedeny nektere dalsi uzitecne unixove prikazy.
Prikaz | Strucny popis |
---|---|
awk | umi ruzne pracovat s textovymi soubory |
cat | vypisuje obsah danych souboru |
compress | komprimuje soubor |
cut | vybira urcite casti (napr. sloupce) souboru |
df | zobrazuje volne misto na zarizenich (discich) |
du | ukazuje, kolik mista zabiraji soubory/adresare |
expr | pocita matematicke vyrazy |
file | hada typ souboru podle jeho obsahu |
find | hleda soubory dle danych kriterii |
grep | mj. vybira ze souboru dane radky |
head | vypisuje zacatek souboru |
kill | posle procesu signal (o signalech viz kap. Signaly) |
ln -s | vytvari symbolicky link (odkaz na soubor) |
make | ulehcuje kompilaci a sestavovani programu v C |
mount | pridava zarizeni do filesystemu |
nroff | formatuje text, napr. manualove stranky |
passwd | meni heslo |
ps | vypisuje bezici procesy |
pwd | vypisuje aktualni adresar |
sed | neinteraktivni (proudovy) editor |
sleep | ceka dany cas |
stty | nastavuje parametry terminalu |
sum | pocita CRC souboru |
tail | vypisuje konec souboru |
tar | archivuje soubory |
tee | vypisuje na standardni vystup a do souboru |
test | test pouzivany hlavne podminkach a cyklech |
tr | nahrazuje znaky jinymi znaky |
uname | napise jmeno systemu |
uncompress | rozbaluje soubor |
wc | pocita radky/slova/bajty |
who | vypisuje prihlasene uzivatele |
whoami | vypise, jak se jmenujeme v systemu |
which | napise odkud se spousti dany program |
Programator casto pouziva nejake textove editory, proto je dobre vedet, jak se jmenuji a co umi:
Nejznamejsimi variantami shellu jsou (razeny dle data vzniku):
V shellu maji jiste znaky specialni vyznam. Pro rychlou orientaci v techto znacich je pripravena tabulka 3.
Krome externich prikazu jdou v shellu pouzivat i vestavene prikazy, napr. cd, if, while, read, ...Jejich popis lze nalezt opet v manualovych strankach (napr. man ksh).
Specialni znaky | Vyznam |
---|---|
| | roura (pipe) --- razeni prikazu do kolony |
& | spusteni na pozadi |
; | ukonceni prikazu |
( ) | spusteni v kopii shellu |
> | presmerovani standardniho vystupu |
< | presmerovani standardniho vstupu |
&& | spusteni pri nulovem navratovem kodu |
|| | spusteni pri nenulovem navratovem kodu |
$ | umoznuje pristup k promennym |
* ? [ ] | znaky pro expanzi jmen |
\ | potlacuje vyznam nasledujiciho specialniho znaku |
' ' | potlacuje vyznam specialnich znaku |
" " | potlacuje vyznam specialnich znaku az na \, $ a ` ` |
` ` | vrati standardni vystup prikazu |
Nektere specialni znaky si spolu s jiz uvedenymi prikazy ukazeme na prikladech -- viz tab. 4 a tab. 5.
who | wc -l | vypise pocet prihlasenych uzivatelu |
sh -c 'sleep 5;date'& echo Date: | vypise Date: a po 5 sekundach datum a cas |
cd;pwd(cd /etc;pwd)pwd | vypise nazev domovskeho adresare, pak /etc a pak zase domovsky adresar |
tr ay ya <in | tee out | v souboru in prohodi znaky a a y a vysledek vypise na obrazovku a do souboru out |
read DIR; test -d $DIR && echo $DIR je adresar | zjisti, zda $DIR je adresar |
tar cvf - $*$.[ch] | compress >etc.tar.Z | zabali a zkompresuje soubory v aktualnim adresari koncici na .c a .h |
cat a b c > d | spoji soubory a, b, c do souboru d |
du -s $HOME | ukaze, kolik mista zabiraji nase data |
find /etc -name '*' -exec grep -l xdobiasl {} \; | vypise soubory v adresari /etc, ktere obsahuji dane slovo (vypise asi /etc/passwd) |
more `which startx` | vypise soubor, kterym se spousti X Window |
for i in *; do echo "Balim $i"; compress $i; done | v aktualnim adresari zkompresuje kazdy soubor zvlast |
expr `cat /etc/passwd | sort -t : -k 3 -n | tail -1` + 1 | vypise UID o jednicku vyssi, nez je v systemu nejvyssi |
Ladislav Dobias