UĹž je docela dost pozdÄ a dnes byl naĹĄtÄstĂ uĹž pĹedposlednĂ dlouhatĂĄnskĂ˝ pondÄlek od (pĹednĂĄĹĄky a jedno cviÄenĂ – prĂĄvÄ z unixu) od 7:30 do 19:30. Pravda, dnes jsme skonÄili asi o tĹi ÄtvrtÄ hodinku dĹĂv, protoĹže mĂsto poslednĂ pĹednĂĄĹĄky se ve velkĂŠ posluchĂĄrnÄ K1 psal zĂĄpoÄtovĂ˝ test a ten byl jen na 40 minut (pĹŻvodnÄ ĹĂkal Ĺže na 30 minut, ale trochu nastavoval).
Ten test byl – jak bych to jen Ĺekl – ne zrovna ŞådnĂĄ trivka. V linuxu uĹž dÄlĂĄm nÄjakĂ˝ ten pĂĄtek, ale s nÄkterĂ˝mi vÄcmi jsem mÄl docela problĂŠmy. CelĂ˝ test byl na oboustrannÄ potisklĂŠ A4, pĹiÄemĹž odpovÄÄ byla vÄtĹĄinou jen pĂĄr slov, maximum snad byl skriptĂk v awku na 3 ĹĂĄdky. OtĂĄzky byly hlavnÄ z pĹednĂĄĹĄek a vÄtĹĄinou ne zrovna vÄci na prvnĂ pohled zĹejmĂŠ.
No pravda – mohli jsme pouĹžĂvat jakoukoli literaturu a sakra bylo znĂĄt, Ĺže jsem si vytiskl pĹednĂĄĹĄky a dopĹedu jsem si dal program pĹednĂĄĹĄek (harmonogram z webu). Pak u otĂĄzky jako tĹeba co znamenajĂ promÄnnĂŠ prostĹedĂ a) ? b) * c) 1 d) $ nalistovat osmou pĹednĂĄĹĄku a napsat a) nĂĄvratovĂ˝ kĂłd b) parametry c) prvnĂ parametr d) ÄĂslo procesu pid.
PodobnÄ sem ĹeĹĄil tĹeba otĂĄzku: napiĹĄte 4 pĹĂkazy, kterĂŠ musĂte provĂŠst pro pĹidĂĄnĂ uĹživatele bez pouĹžitĂ pĹĂkazu adduser (pĹednĂĄĹĄka 9, slajd 2) nebo Ăşprava pĹĂkazu p1 | p2 tak aby p2 dostĂĄval chybovĂ˝ vĂ˝stup p1 a standardnĂ vĂ˝stup p1 se zahazoval. VĂce mĂŠnÄ jsem to pĹesmÄrovĂĄnĂ tuĹĄil, ale vĹŻbec jsem si nebyl jistĂ˝ jak majĂ bĂ˝t na ĹĂĄdce za sebou ty pĹesmÄrovĂĄnĂ. PĹednĂĄĹĄka 2 slajd 15 to naĹĄtÄstĂ vyĹeĹĄil:
p1 2>&1 1>/dev/null | p2
PĹesmÄrovĂĄvĂĄnĂ se totiĹž vyhodnocuje zleva do prĂĄva. Kdybych to udÄlal obrĂĄcenÄ, tak bych nejdĹĂv smĂchal chybovĂ˝ vĂ˝stup s standardnĂm a pak bych je oba zahodil.
Pak tam byly nÄjakĂŠ vÄci co jsem dal z voleje, jako tĹeba ÄĂm shell nahradĂ $HOME, *, $(date) a jeĹĄtÄ cosi. Pak tam taky bylo napsat skript, kterĂ˝ vrĂĄtĂ nejvyĹĄĹĄĂ GID pouĹžitĂŠ v passwd. JĂĄ to ĹeĹĄil pomocĂ awku (hlavnÄ Ĺže jsem si ĹĂkal, Ĺže pokud to jen bude moĹžnĂŠ budu se snaĹžit awku vyhnout, protoĹže jsem v nÄm nikdy nic poĹĂĄdnĂŠho nenapsal). UdÄlal jsem to takhle:
$ awk -F: ‚BEGIN{GID=0}
> { if (GID < $4) GID = $4}
> END{print GID+1}‘ /etc/passwd
Pro ty, kdo by snad awk neznaly: parametr -F udĂĄvĂĄ separĂĄtor sloupcĹŻ. Vzhledem k tÄmto separĂĄtorĹŻm pak budou naplnÄny promÄnnĂŠ $1 $2 $3 a mnou pouĹžitĂĄ $4 atd. Pokud si prohlĂŠdnete passwd tak hned pochopĂte proÄ. Sekce BEGIN se provede pĹed zpracovĂĄnĂm vstupu, dalĹĄĂ sekce nenĂ nÄjak omezena pĹedchĂĄzejĂcĂmi regulĂĄrnĂmi vĂ˝razy nebo ÄĂsly ĹĂĄdkĹŻ a tak je jimi zpracujĂ vĹĄechny ĹĂĄdky co pĹijdou na vstup a sekce END se vykonĂĄ aĹž po zpracovĂĄnĂ vĹĄech ĹĂĄdkĹŻ. Jak jednoduchĂŠ, Ĺže?
Na dalĹĄĂ pĹĂklady si uĹž nepamatuji a uĹž se mi klĂŞà kukadla, takĹže toho pro dneĹĄek nechĂĄm. Tohle teÄ pĂĹĄu na svĂŠm terminĂĄlu a nemĂĄm to tedy jak vlepit do blogu, takĹže to tam dĂĄm zĂtra.
Napsat komentář
Pro přidávání komentářů se musíte nejdříve přihlásit.