dalsi predchozi obsah
Dalsi: Programatorske zaklady Predchozi: Seznam tabulek

  Uzivatelske zaklady unixu





Uvod

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.



  Prihlaseni do systemu

Pro prihlaseni k systemu je potreba uvest sve uzivatelske jmeno a heslo. Tyto udaje jsou porovnany se zaznamy v souboru /etc/passwd. Pro predstavu zde uvedu ukazku tohoto souboru:

    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".



Online manual v unixu -- man

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.



Rychly start do unixu



Zakladni prikazy

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
Tabulka 1: Ekvivalenty nekterych DOSovych prikazu

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
Tabulka 2: Dalsi uzitecne unixove prikazy



Editory

Programator casto pouziva nejake textove editory, proto je dobre vedet, jak se jmenuji a co umi:

vi
je editor, ktery se objevuje snad ve vsech instalacich unixu. Je proto dobre se naucit alespon jeho zakladni prikazy (napr. ESC :x je ukonceni s ulozenim souboru a ESC :q! je ukonceni bez ulozeni). Pro dalsi seznameni (i v cestine) mohu doporucit [9].
joe
ma ovladani temer jako znamy editor Word Star. (Ale pro jistotu ^K H je help). Tento editor je volne siritelny i se zdrojovym kodem.
emacs
Emacs neni editor -- Emacs, to je nabozenstvi. Je napsan v jazyku LISP a jde do nej pridat spousta funkci. Tento editor je take volne siritelny.



  Shell

Shell plni podobnou funkci jako v DOSu program command.com -- tj. cte prikazy z terminalu nebo ze souboru a provadi je.

Nejznamejsimi variantami shellu jsou (razeny dle data vzniku):



Rychly uvod do shellu

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
Tabulka 3:Specialni znaky v shellu


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
Tabulka 4: Specialni znaky -- priklady


 

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
Tabulka 5: Prikazy -- priklady



Cviceni

  1. V jazyce prikazoveho interpretru shell napiste program, ktery zjisti pocet dopisu v souboru mailboxu. Jako standardni mailbox povazujte soubor /var/spool/mail/username. Pridejte moznost zadani alternativniho souboru mailboxu. Uvazujte, ze v jednom dopise se jen jednou objevuje retezec From: na zacatku radku.


dalsi predchozi obsah
Dalsi: Programatorske zaklady Predchozi: Seznam tabulek

Ladislav Dobias
Sat Nov 1 15:38:32 MET 1997