Cvičení 3
Třídění, dělení a spojování souborů. Výpis po sloupcích. Filtry.
Proudové editory. Editor vi. Editor GNU/Emacs.
Spuštění X serveru. Vzdálené spouštění X klientů. Nastavení
displaye. Základní metody autentisace. Nastavování aplikačních zdrojů.
Práce se síťovými klienty. Přenos dat mezi počítači. Meziuživatelská
komunikace.
1. Práce s textovými soubory
V úvodní části hodiny si studenti procvičí používání textových
utilit
more(1),
less(1),
head(1),
tail(1),
cut(1),
paste(1),
sort(1),
uniq(1),
wc(1).
Programy more(1) a
less(1) slouží k prohlížení obsahu
textových souborů, přičemž druhý z nich má mnohem větší
možnosti (třeba posun v textu zpět). Ukončují se stiskem
klávesy q.
Programy head(1) a
tail(1) vypíší prvních/posledních n
řádků souboru.
$ head -n 5 ~/MOTTO
"Anything is good and useful if it's made of chocolate."
"To Boot or not to Boot, that's the question." [WD1270 Caviar]
The box said 'Requires Windows 95 or better', so I bought a Macintosh |
|
Program cut(1) slouží k rozdělení
souboru do sloupců. Příklad rozdělí soubor /etc/passwd
podle sloupcového oddělovače „:“
a vypíše první a pátý sloupec.
$ cut -d : -f 1,5 /etc/passwd
root:root
msql:Mini SQL Database Manager
operator:Operator
gnats:Gnats Bug-Reporting System (admin)
novakj:Jan Novák
... |
|
Inverzní program paste(1) naopak
skládá sloupce z více souborů do jednoho výstupu.
$ cat data
prvni
druhy
treti
$ cat hodnoty
37
nejaky text
47
$ paste -d = data hodnoty
prvni=37
druhy=
treti=nejaky text
=47 |
|
Programem wc(1) můžete zjistit počet řádek,
slov a znaků v souboru.
$ wc /etc/passwd
27 37 1193 /etc/passwd |
|
$ tail -n 10 /etc/passwd | wc -l -w
10 17 |
|
Úkol 1.
Vytvořte soubor obsahující tři sloupce dat. Soubor setřiďte,
zrušte duplicitní řádky a rozdělte na tři soubory tak, aby
v každém souboru byl jeden sloupec dat. Soubory spojte
do původní podoby, ale invertujte pořadí sloupců.
2. Proudové editory
Proudové editory sed(1) a
awk(1) slouží k úpravě a analýze dat
protékajících těmito editory.
sed(1) se používá hlavně k nahrazování
řetězců, nebo filtrování řádků. Regulární výrazy používané pro
hledání vzorků jsou shodné s regulárními výrazy editoru
ed(1).
$ echo "One ring to rule them all..." |sed s/ring/unix/g
One unix to rule them all... |
|
Další příklad odfiltruje z výstupu programu last všechny
řádky, ve kterých se vyskytuje slovo root.
$ last |sed /root/d
mck pts/7 michelle Mon Sep 3 17:53 - 18:52 (00:58)
kurem pts/7 michelle Mon Sep 3 17:52 - 17:53 (00:00)
kurem pts/2 :0 Mon Sep 3 17:47 still logged in
... |
|
awk(1) slouží spíše k výběru
sloupců a agregaci dat. Jako oddělovač sloupců se
standardně předpokládá tabulátor nebo mezera. Na jednotlivé
sloupce se odkazujeme ve tvaru $číslo_sloupce.
$ ls -l |awk '{ print $1, $9}'
drwxr-sr-x bin
drwxr-sr-x debian
-rw-r----- diary
drwxr-sr-x doc
-rw-rw-r-- elisp-vyuka
... |
|
Následující, na první pohled složitý, příklad nejdříve nastaví
oddělovač polí na dvojtečku (část BEGIN).
Potom se čte řádek po řádku zesouboru /etc/passwd
a pro každý vyhovující se vytiskne upravený řádek.
Nakonec (část END) se vytiskne počet
zpracovaných řádků (proměnnou NR
si awk(1) udržuje sám).
$ awk 'BEGIN {FS = ":"}
> {printf "Login: %s UID: %s Jmeno: %s\n", $1, $3, $5}
> END { print "celkem zaznamu: " NR }' /etc/passwd
Login: root UID: 0 Jmeno: root
Login: daemon UID: 1 Jmeno: daemon
Login: bin UID: 2 Jmeno: bin
Login: novakj UID: 1000 Jmeno: Jan Novák
...
celkem zaznamu: 27 |
|
Úkol 2.
Na příkazu last si vyzkoušejte různé možnosti obou
editorů. Inspirujte se výše uvedenými příklady.
3. Textové editory
V této části cvičení si studenti vyzkouší práci
s nejznámějšími celoobrazovkovými unixovými editory
vi(1)
a emacs(1).
Seznam některých klávesových zkratek pro
emacs
a pro vi.
Spuštění editoru a zárověň načtení souboru:
Editor vi ukončíte příkazem „:q“.
Ukončení emacsu se provede stiskem C-x C-c.
Úkol 3.
Vytvořte soubor cviceni3.txt a napište dva krátké
odstavečky. Vyzkoušejte si nahrazování v textu, opravy chyb,
kopírování a přesouvání textu. Totéž proveďte s druhým
editorem.
4. X Window System
X klienty můžeme spouštět vzdáleně tak, že povolíme přístup ze
vzdáleného počítače na náš display, připojíme se na vzdálený
počítač, nastavíme proměnnou DISPLAY, aby ukazovala na náš
lokální display a spustíme aplikaci.
linux01$ xhost +phoenix.inf.upol.cz
phoenix.inf.upol.cz being added to access control list
linux01$ ssh phoenix.inf.upol.cz
novakj@phoenix.inf.upol.cz's password:
...
phoenix$ export DISPLAY="linux01.inf.upol.cz:0.0"
phoenix$ xv & |
|
Další možnost spouštění vzdálených X klientů je obdobná, ale
používá jemnější rozlišení přístupu (pro jednotlivé
uživatele).
linux01$ xauth extract - $DISPLAY \
> | ssh phoenix.inf.upol.cz "/usr/bin/X11/xauth merge -"
novakj@phoenix.inf.upol.cz's password:
linux01$ ssh phoenix.inf.upol.cz
novakj@phoenix.inf.upol.cz's password:
...
phoenix$ export DISPLAY="linux01.inf.upol.cz:0.0"
phoenix$ xv & |
|
Variantou předchozího je využití „přeposílání X sezení“
zabudované přímo v ssh, které nastaví vše potřebné, ale je
mírně pomalejší.
$ ssh -X phoenix.inf.upol.cz
novakj@phoenix.inf.upol.cz's password:
...
phoenix$ xv & |
|
Nastavení aplikačních zdrojů se provádí v souboru
~/.Xresources. Zde je malá ukázka:
Eterm*shade: 40
Eterm*menubar: off
Eterm*trans: true
XTerm*font: -*-*-medium-r-semicondensed-*-*-*-*-*-*-*-iso8859-2
rxvt*font: 7x13-2
emacs*Background: DarkSlateGray
emacs*Foreground: Wheat
emacs*pointerColor: Orchid
emacs*cursorColor: Orchid
emacs*bitmapIcon: on
emacs*font: tektite-2 |
|
Změny nastavení aplikačních zdrojů se aktivují příkazem
xrdb(1).
$ xrdb -load ${HOME}/.Xresources |
|
Úkol 4.
Spusťte si několik X aplikací (každou na jiném počítači v
učebně). Pak si zkuste nastavit vzhled programu
xcalc(1).
5. Práce se síťovými klienty
Probírány jsou konzolové aplikace
ssh(1),
telnet(1),
ftp(1),
lynx(1),
links(1),
wget(1),
talk(1).
K připojování na vzdálené počítače slouží programy
ssh(1) a
telnet(1) (možnost odchycení
nešifrovaného hesla).
$ ssh phoenix
novakj@phoenix's password:
Last login: Fri Aug 31 14:19:15 2001 on pts/4
...
No mail.
$ |
|
lynx(1) a
links(1) jsou textové webové
prohlížeče, se kterými se stránky (zvláště na modemových
spojeních) načítají velmi rychle.
links(1) je novější, umí zobrazovat
rámy, tabulky, barvu a rozumí CSS.
Seznam některých klávesových zkratek je
zde.
Úkol 5.
Připojte se k jinému počítači na učebně. Podívejte se textovým
webovým prohlížečem na naše katedrální stránky. Zkuste si se
sousedem popovídat programem talk.